在前幾天的學習中,我們已經掌握了多種取得目標主機「立足點」(Initial Access)的技巧。然而,無論是透過 Metasploit 或 Web 漏洞取得的 Shell,我們通常都只有最低的權限。真正的控制權,屬於 root(最高管理員)。
今天,我決定專門學習滲透測試中最困難、也是最關鍵的技術:提權(Privilege Escalation)。我完成了 TryHackMe 上 "Linux Privilege Escalation" 的入門房間學習,這為我接下來的實戰(例如 Vulnversity)做好了準備。
提權的本質並非尋找高深莫測的漏洞,而是細緻地尋找系統管理員的疏忽或配置錯誤。整個過程被稱為列舉(Enumeration)。
在實務中,駭客會使用自動化腳本如 LinEnum 或 Linpeas 來快速掃描系統,找出潛在的提權線索。但作為學習者,我們必須先理解這些工具背後的原理。
我學到了兩種最直接、最常見的提權方式:
原理: 某些可執行檔案被設置了 SUID 位元,允許任何低權限使用者在執行時,暫時擁有該檔案所有者的權限。如果該檔案的所有者是 root,那麼我們就有了提升權限的機會。
掃描指令: 我們會使用 find / -perm -u=s -type f 2>/dev/null 來找出所有設置了 SUID 位元的檔案。
原理: 系統管理員可能為了方便,允許某些低權限使用者在不輸入密碼的情況下執行特定的 sudo 指令。
駭客利用: 我們會使用 sudo -l 檢查當前使用者有哪些指令可以免密碼執行。如果允許執行一個可以開啟 Shell 的程式(例如 vi、nmap 或 find),我們就可以利用這些高權限程序來建立一個 root Shell。
提權的學習讓我明白,細心和耐心是駭客的最高素養。它要求我們將 Day 3、Day 4(Linux 基礎)和 Day 18(日誌分析)學到的所有知識融會貫通。當我進入一個系統後,我現在知道要優先做什麼:從頭到尾檢查所有的權限和配置檔案。