HackTheBox - DevArea
三句話摘要
Hack The Box靶機Dev Area的完整滲透測試演練,涵蓋JAR反編譯、XXE漏洞利用、多層服務提權至root。 深度漏洞組合與symlink檢查繞過技巧是此靶機的核心,強調「不要急著開發目標,先全面偵察系統架構」的滲透測試哲學。 多層服務偵察的重要性:盒子提供FTP、HTTP、Jetty(8080)、Hoverfly(8888)等多個入口,演講者強調需要系統性地枚舉所有開放端口,避免只盯著表面漏洞而忽視其他提權路徑。
重點整理
重點- 1
多層服務偵察的重要性:盒子提供FTP、HTTP、Jetty(8080)、Hoverfly(8888)等多個入口,演講者強調需要系統性地枚舉所有開放端口,避免只盯著表面漏洞而忽視其他提權路徑。
- 2
反編譯與庫漏洞分析:雖然JAR檔案本身沒有自訂漏洞,但依賴的Apache CXF 3.2.14存在XXE漏洞,使用Maven檢查pom.xml可快速列舉所有依賴版本,再透過CVE Details查詢相應漏洞。
- 3
XXE文件讀取的實際應用:透過修改SOAP請求的Content-Type和Payload格式,可自動化讀取任意檔案(如/etc/hosts、/proc/*/cmdline),演講者用Claude生成Python自動化腳本而非盲目執行第三方POC。
- 4
認證繞過與提權鏈:Hoverfly凭證來自/opt/hoverfly服務啟動配置、Flask應用透過Syswatch用戶執行,而最終RCE來自symlink指向/etc/shadow,演講者強調需要跨越多個服務層進行組合攻擊。
實用技巧與重點
乾貨- 開放端口與服務
- FTP (21):anonymous登入,/pub目錄可讀
- HTTP (80):dev area.htp,Apache預設頁面
- SSH (22):Ubuntu伺服器
- Jetty (8080):版本資訊洩露,6年過期(2020年)
- Hoverfly (8888):版本資訊洩露
- CVE與漏洞
- Apache CXF 3.2.14:XXE漏洞(利用multipart/form-data和XML解析繞過)
- Hoverfly:CVE-1113(Command Injection於middleware端點)
- 自動化工具與技巧
- SOAP UI:生成WSDL初始請求範本
- Burp Repeater:測試XML Payload
- Flask-Unsign:偽造Flask Session Cookie(格式:user_id=1, username=admin)
- Symlink雙層轉向:ln -s /etc/shadow porn.log → ln -s porn.log please_sub.log,繞過路徑檢查
- 命令執行限制繞過
- 禁止字元:大寫字母、`/`、`..`、`>`、`<`、`&`、`;`
- 允許字元:`|`、`$`、`()`、hex編碼
- Payload示例:echo [hex命令] | xxd -R -P | bash
- 讀取檔案路徑
- /proc/[PID]/cmdline:列舉進程命令列
- /opt/hoverfly:管理員凭證(username、password)
- /opt/syswatch:Python Flask應用源碼與.env檔案
- /etc/shadow:目標檔案,透過symlink繞過檢查
結論
結論“深度漏洞組合與symlink檢查繞過技巧是此靶機的核心,強調「不要急著開發目標,先全面偵察系統架構」的滲透測試哲學。”
完整解析
詳細Dev Area靶機設計用來考驗深度偵察與多層漏洞組合的能力。演講者首先透過nmap掃描發現六個開放端口,其中Jetty(8080)和Hoverfly(8888)成為主要突破口。
起點是反編譯從FTP匿名下載的employee-service.jar檔案。使用JetXR工具解包後,演講者在Visual Studio Code中透過Sneak code scanner尋找漏洞。雖然應用本身代碼無明顯自訂漏洞,但Sneak掃描檢出Apache CXF 3.2.14—— 一個已知存在XXE漏洞的舊版本庫。演講者轉向CVE Details網站搜尋相應公開漏洞,找到利用multipart/form-data格式繞過XML解析保護的POC。
透過SOAP UI生成初始SOAP請求後,演講者在Burp Repeater中反覆調整Payload格式。關鍵發現是multipart Content-Type會觸發特殊解析邏輯,加入精心構造的XXE載荷後,伺服器回傳Base64編碼的檔案內容。為提高效率,演講者請Claude生成Python腳本自動化此流程,避免手工逐次測試。
有了XXE原始檔案讀取能力後,演講者利用/proc虛擬檔案系統列舉所有執行中的進程。其中發現hoverfly服務在後台運行,並從/opt/hoverfly/啟動配置中提取admin凭證。登入Hoverfly Web UI後,版本資訊洩露顯示存在CVE-1113,此漏洞允許在特定middleware端點執行系統命令。演講者將認證標頭從瀏覽器開發者工具複製到Burp,發送PUT請求觸發RCE,成功執行id命令驗證漏洞有效。
获得初步shell後,演講者關注到sudo -l輸出允許dev_ryan用戶以root身份執行/opt/syswatch/syswatch腳本。但此腳本本身無shell,需從另一個用戶syswatch的Flask應用入手。通過讀取/opt/syswatch/.env檔案獲得admin密碼後發現認證失敗,改而利用Flask-Unsign工具偽造session cookie(user_id=1, username=admin),成功登入Syswatch GUI。
在Syswatch應用中,「Check System Service」功能執行systemctl status [service]命令。程式雖試圖透過正規表達式過濾危險字元(禁止`/`、`.`、`;`等),卻允許管道符`|`。演講者利用此漏洞執行shell命令,獲得syswatch用戶身份的反向shell。
最後且最巧妙的步驟涉及syswatch的「View Logs」功能。此功能讀取日誌檔案時試圖透過awk檢查symlink(防止目錄遍歷),但檢查邏輯存在缺陷——僅檢查單層symlink的目標。演講者創建雙層symlink鏈(porn.log → /etc/shadow → please_sub.log),成功繞過檢查,最終以root身份讀取/etc/shadow檔案和root用戶的ED25519私鑰。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

