一、 初步偵察與服務探測
1.1 端口掃描與服務識別
首先,對目標主機 192.168.163.39
進行一次全面的端口掃描,以識別其上運行的各項服務。
sudo nmap 192.168.163.39 -p- --min-rate=5000 -A
圖 1: Nmap 掃描結果,顯示開放 80、445 和 995 等端口
掃描結果顯示,目標主機開放了多個端口,包括 HTTP (80)、SMB (445) 和 POP3S (995)。我們將從最常見的攻擊面——Web 服務和 SMB 服務入手。
1.2 服務枚舉
首先對 SMB 服務進行信息枚舉,但并未發現可利用的共享或敏感信息。
圖 2: SMB 枚舉未發現有用信息
接下來,將注意力轉向 80 端口的 Web 服務。訪問該網站,發現其運行的是一個名為 CS-Cart 的電子商務平臺。頁面上有一個管理員登錄框,抱著試一試的心態,輸入了常見的弱口令 admin:admin
,竟意外登錄成功。
圖 3: 成功使用弱口令 admin:admin 登錄后臺
二、 CS-Cart 漏洞利用與初始訪問
2.1 漏洞識別與驗證
在獲得管理員權限后,我們在后臺進行了初步探索,但未能直接找到顯示當前 CS-Cart 具體版本號的信息。因此,我們轉向搜索 CS-Cart 的歷史漏洞,并發現一個需要后臺管理員權限的遠程代碼執行(RCE)漏洞,這與我們當前的處境完美契合。
圖 4: 發現 CS-Cart 的一個已授權 RCE 漏洞
查閱該漏洞的詳細信息,其利用方式是通過后臺的模板編輯功能,上傳一個包含后門代碼的 .phtml
文件,從而繞過文件上傳限制,實現代碼執行。
圖 5: 漏洞利用詳情描述
2.2 漏洞利用獲取 Webshell
根據漏洞描述,我們導航到后臺的模板編輯頁面,并上傳了一個預先準備好的 PHP 反彈 Shell,將其命名為 .phtml
后綴。
圖 6: 在模板編輯頁面上傳 .phtml 后門文件
系統提示文件上傳成功,這表明漏洞確實存在且可被利用。
圖 7: 確認后門文件已成功上傳
接著,在瀏覽器中訪問該后門文件的路徑,同時在本地啟動 Netcat 監聽。成功接收到反彈 Shell,獲得了一個 Web 服務(www-data
)的普通用戶權限。
圖 8: 成功獲取 www-data 權限的 Shell
三、 信息收集與權限提升
3.1 用戶枚舉與憑據搜尋
在獲得的初始 Shell 中,首先查看系統用戶列表,發現一個名為 patrick
的普通用戶,這成為了我們橫向移動的目標。
圖 9: 發現系統用戶 patrick
為了獲取 patrick
的登錄憑據,我們回到 Web 應用的目錄,尋找可能包含敏感信息的配置文件。在 Web 應用根目錄下的 config.php
文件中,我們找到了數據庫的連接憑證,用戶名為 root
,密碼也為 root
。
圖 10: 在配置文件中發現數據庫憑證
數據庫中通常存儲著用戶信息。利用找到的憑證連接到數據庫,在用戶表中發現了一個名為 customer
的用戶。其密碼是加密存儲的,看起來像是 MD5 哈希。
圖 11: 數據庫中發現 customer 用戶的 MD5 密碼哈希
通過在線 MD5 解密工具,我們破解出該哈希對應的明文密碼為 customer
。
圖 12: 成功解密出密碼為 customer
3.2 憑據猜測與橫向移動
至此,我們觀察到一個有趣的模式:
- 管理員
admin
的密碼是admin
。 - 數據庫用戶
customer
的密碼是customer
。
基于這個規律,我們有理由大膽猜測,系統用戶 patrick
的密碼可能也是 patrick
嗎?嘗試使用此憑據進行 SSH 登錄,果然成功了!
圖 13: 成功使用猜測的密碼登錄 patrick 用戶
四、 Sudo 提權至 Root
成功登錄 patrick
用戶后,我們立即檢查其 sudo
權限。
圖 14: patrick 用戶擁有完全的 sudo 權限
sudo -l
的輸出顯示,用戶 patrick
擁有 (ALL : ALL) ALL
權限,這意味著他可以以任何用戶(包括 root)的身份執行任何命令,且無需輸入密碼。
這使得提權變得輕而易舉。我們直接執行 sudo su root
命令切換到 root 用戶。
sudo su root
圖 15: 成功提權至 root
成功獲取 root 權限,至此完成了對目標主機的完全控制。