重要聲明:本培訓中提到的技術僅適用于合法ctf比賽和獲得合法授權的滲透測試,請勿用于其他非法用途。如有違規,與本文作者無關。今天我們將學習一些理論知識,大家可以利用這段時間好好練習實戰操作。
假設大家已經成功進入了一臺服務器或獲得了部分權限,否則就無法進行后滲透攻擊。
后滲透攻擊應該做什么呢?
權限提升,簡稱“提權”,是通過各種方法和漏洞,提高在服務器中的權限,以便控制所有資源。比如在windows中獲得System權限,在linux中獲得root權限。
常見的提權方法包括系統漏洞提權、數據庫提權、權限繼承類提權、第三方軟件/服務提權等。
那么,我們如何提權呢?
Linux系統提權:
Linux系統漏洞的exp通常按照內核版本命名,如2.6.18-194或2.6.18.c等。形如2.6.18-194的exp可以直接執行,而形如2.6.18.c的exp需要在目標機器上編譯后運行以提權。也有少部分exp是按照發行版版本命名的。
提權exp的基本使用方法是執行這個可執行文件。通常情況下,Linux的本地提權需要使用nc反彈出來,因為提升權限后得到的是交互式shell,需要反彈才能執行下一步命令。
如何選擇合適的exp來提權呢?使用uname -a命令或cat /proc/version來判斷系統的內核情況,然后使用相對應的exp進行提權。在提權過程中,需要為exp賦予權限,使用chmod命令。但在許多Linux服務器上,管理員會設置目錄權限,無法修改。然而,通常/tmp目錄不會被設置權限,這與Windows下的tmp和回收站類似。
Windows系統提權:
Windows的提權exp通常格式為MS08067.exe。Windows系統漏洞的命名格式為MS16-001,其中MS是microsoft的縮寫,16表示年份(如2016年),001表示當年度發布的第1個漏洞。
Windows提權exp的使用方法是執行exp,通常使用cmd.exe來執行。在日常滲透測試中,我們常常先獲得webshell,然后進行提權,因此提權腳本也常常在webshell中運行。
如何選擇合適的exp來提權呢?使用systeminfo命令或查看補丁目錄,查看補丁記錄,判斷哪些補丁未打,然后使用相對應的exp進行提權(過程看似簡單,實則繁瑣)。
一般的提權過程是:先找到可寫目錄,上傳cmd.exe、提權exp等文件,然后使用exp進行提權,接著可以進行添加賬號等操作。
數據庫提權:
數據庫提權是利用執行數據庫語句、數據庫函數等方式提升服務器用戶的權限。mysql的提權通常使用自定義函數提權或mof提權,而mssql的提權通常調用xp_cmdshell函數。
數據庫提權的前提是能夠登錄數據庫。因此,通常在獲得webshell后,需要在網站目錄中查找數據庫連接文件,常見于xxx.conf或conf.xxx文件中。數據庫提權的方法多種多樣,這里不一一列舉,有興趣的可以自行研究。
在獲得高權限賬號之后:
在Windows中,可以下載sam文件,使用SamInside破解管理員密碼,也可以從FTP等軟件中導出FTP賬號密碼等敏感信息,還可以從系統緩存中找到一些系統密碼等。之后可以留個后門,或者安裝鍵盤記錄器等,方法多種多樣,就看你的思維是否足夠開闊。