一、 初步偵察與服務探測
1.1 端口掃描與服務識別
首先,對目標主機 192.168.163.98
進行全面的端口掃描,以識別所有開放的服務。
sudo nmap 192.168.163.98 -p- --min-rate=5000 -A
圖 1: Nmap 掃描結果,顯示多個開放端口
掃描結果表明,目標主機開放了多個端口,包括 SMB (445)、ZooKeeper (2181) 和一個運行在 8080 端口上的 Jetty Web 服務器。值得注意的是,8080 端口上運行著一個名為 Exhibitor 的應用,這是一個用于 ZooKeeper 的監控和管理工具。
1.2 服務枚舉與信息收集
SMB 服務
嘗試對 SMB 服務進行枚舉,以發現可能存在的共享目錄或敏感信息,但未獲得有價值的發現。
enum4linux-ng 192.168.163.98
圖 2: SMB 枚舉未發現有用信息
Exhibitor Web 應用
接著,訪問 http://192.168.163.98:8080
上的 Exhibitor 應用。從界面右上角可以識別出其版本號為 1.0。
圖 3: Exhibitor Web 界面,版本號為 1.0
二、 Exhibitor 漏洞利用與初始訪問
2.1 漏洞識別與驗證
針對已識別的 Exhibitor 版本,搜索相關的歷史漏洞。很快,一個編號為 CVE-2019-5029 的遠程代碼執行(RCE)漏洞引起了注意。 該漏洞影響版本為 1.0.9 至 1.7.1 的 Exhibitor,描述指出攻擊者可以通過在配置界面中注入惡意命令來實現 RCE。 盡管目標版本為 1.0,低于受影響的最低版本 1.0.9,不管怎樣,先試試再說。
圖 4: CVE-2019-5029 漏洞信息
2.2 漏洞利用獲取 Shell
根據漏洞描述,該 RCE 通過在 Exhibitor 的配置頁面中注入由反引號或 $()
包裹的 Shell 命令來觸發。 當 Exhibitor 進程啟動 ZooKeeper 時,這些命令會被執行。
在 Exhibitor 的 “Config” 選項卡中,找到可以插入命令的配置項,并填入反彈 Shell 的 payload,然后提交配置。
圖 5: 在 Exhibitor 配置中插入反彈 Shell 命令
成功觸發漏洞,在本地監聽的端口上接收到來自目標主機的 Shell,當前用戶為 charles
。
圖 6: 成功獲取 charles 用戶的反彈 Shell
三、 信息收集與權限提升
3.1 Sudo 權限分析
獲得初始 Shell 后,首要任務是檢查當前用戶的 sudo
權限,以尋找提權的途徑。
sudo -l
圖 7: charles 用戶的 sudo 權限
sudo -l
的輸出顯示,用戶 charles
可以免密以 root 權限執行 /usr/bin/gcore
命令。
3.2 gcore
命令功能與提權思路
通過搜索得知,gcore
是一個用于生成正在運行進程的核心轉儲文件(core dump)的工具。 這些轉儲文件是進程在某一時刻的內存快照,通常包含大量敏感信息,如密碼、密鑰或配置文件內容。 利用 sudo
權限執行 gcore
,意味著我們可以轉儲系統上任何用戶的任何進程的內存。
圖 8: gcore 命令功能說明
GTFOBins 的提權輔助網站也提供了利用 gcore
進行提權的方法,其原理正是通過轉儲高權限進程的內存來獲取敏感數據。
圖 9: GTFOBins 上關于 gcore 的提權方法
3.3 鎖定目標進程并轉儲內存
提權的關鍵在于找到一個內存中可能包含 root 憑據的進程。通過 ps aux
命令查看系統當前所有進程,發現一個名為 password-store
的可疑進程。 “password-store” 是一款遵循 Unix 哲學的密碼管理器,它通常會將密碼加密后存儲。 這使得轉儲其內存以獲取明文密碼成為可能。
圖 10: 發現可疑的 password-store 進程
確定目標進程的 PID(本例中為 513)后,使用 sudo gcore
命令對其進行內存轉儲。該命令會生成一個名為 core.513
的文件。
sudo gcore 513
strings core.513
使用 strings
命令在轉儲文件中查找可讀字符串,很快便發現了 root 用戶的密碼:ClogKingpinInning731
。
圖 11: 從內存轉儲中獲取 root 密碼
四、 切換用戶并獲取 Root 權限
4.1 切換至 Root 用戶
使用剛剛獲取的密碼,通過 su
命令嘗試切換到 root 用戶。
su root
圖 12: 成功切換到 root 用戶,完成提權
輸入密碼 ClogKingpinInning731
后,成功切換為 root 用戶,至此完成了對目標系統的完全控制。