通过 Windows 主题泄露 NTLM 凭据
编辑和评论补充:Tricia Howard
执行摘要
Akamai 安全研究人员 Tomer Peled 最近在 Microsoft 主题中发现了一个欺骗漏洞,该漏洞编号为 CVE-2024-21320 ,CVSS 评分为 6.5。
该漏洞可以触发强制身份验证攻击。在此攻击中,受害者会被强制将凭据(通常采用通过 SMB 传输的 NTLM 哈希值的形式)发送到攻击者的机器。攻击者随后可以离线破解这些凭据。
要利用此漏洞,攻击者只需要让受害者将主题文件下载到其计算机上即可。当此用户在资源管理器中查看该文件时,浏览器会自动将包含凭据的服务器消息块 (SMB) 握手数据包发送到攻击者的服务器。
所有 Windows 版本都会受到影响,因为主题是 Window 操作系统中的一项内置功能。
Microsoft 已在 2024 年 1 月的 Patch Tuesday中修复此漏洞。
我们提供一个 概念验证 (PoC) 主题文件以及一段 PoC 视频,并提供了多种抵御此漏洞的方法。
简介
自从 Windows XP 问世以来,Microsoft 一直在提供多种开箱即用的预视觉个性化选项,其中包括颜色、字体和光标等。对用户来说,这种个性化设置很容易完成。他们只需右键点击桌面,然后选择“个性化”,再点击“主题”即可查看已安装的主题。主题文件的后缀为 .theme ,可以通过 MSDN 中的此 概览内容 了解如何创建这些文件。
这种看似无害的美好事物实际上是一些隐蔽漏洞的温床。在针对 2023 年 9 月的 Patch Tuesday 的 相关分析 中,我们简要讨论了主题中的漏洞 CVE-2023-38146的影响。在分析该漏洞的同时,我们还决定“篡改”主题文件中的值,并发现了某些参数缺乏验证。
通过滥用这种缺乏验证的情况,我们可以执行一种几乎零用户交互的攻击:用户只需下载一个恶意的主题文件。 一旦用户在资源管理器中查看了该文件,漏洞利用便会开始。
我们已记录有关此漏洞的相关信息,包括抵御措施和一个 PoC 示例。请继续阅读。
工作原理
主题文件格式包含多个参数块。在本博文中,我们将讨论两个参数: [theme] 块中的 BrandImage 参数(图 1)以及 [Control Panel\Desktop] 块中的 Wallpaper 参数(图 2)。
Windows 中的每个文件都有一个与其功能相对应的缩略图。该缩略图可以是从产品徽标到其用途说明(例如,用于“计算器”)的任何内容。主题文件缩略图包含三个部分:一张壁纸(黑色方块)、一个 MSstyle 文件(橙色方块)以及品牌图片( Infection Monkey 图片;图 3)。
这三个部分在主题文件中以三个不同的参数编写,即 BrandImage、Wallpaper 和 VisualStyle。 它们都可以是指向 UNC 端点的远程路径。
利用方法
创建或查看主题文件时,Windows 会尝试根据其三个组成部分来创建正确的缩略图。此缩略图创建过程会在资源管理器进程中 自动 启动。图 4 概述了相关的代码流,用于主题文件的缩略图创建。
由于这些操作是自动启动的,因此攻击者可以在这里寻找操纵结果的方法。攻击者可以实现此目标的方法之一是,将这三个参数的值都更改为指向攻击者控制的服务器的 UNC 路径,并期望受害者的机器会尝试对攻击者的机器进行身份验证。
我们发现,该图片的路径可以是任何合法路径,包括 UNC 路径。更改“BrandImage”或“Wallpaper”的值会从受害者的机器产生连接,进而导致强制身份验证攻击。换句话说,在连接到远程服务器的过程中,客户端会执行 SMB 协商,而其 NTLM 凭据正是在协商期间发送的。
NTLM 泄露的后果
利用受害者的 NTLM 凭据,攻击者可以执行 NTLM 中继攻击,该攻击以接受 NTLM 作为访问凭据的系统为目标。通过中继 NTLM 哈希值,攻击者可以认证为合法用户,进而能够访问他们原本无权访问的系统。
另一种方法是,提供 NTLM 凭据作为密码破解应用程序(例如,John the Ripper)的输入内容,尝试通过暴力破解方式来破解受害者的密码。
关于此漏洞的影响程度,其中一个示例便是臭名昭著的 Outlook 漏洞,该漏洞最初是在 2023 年 3 月披露给 Microsoft 的。有人发现了类似的结果,因此该漏洞被攻击者广泛利用,这证明此攻击媒介仍然有价值,对攻击者来说仍然有利可图。
3 月份发现的这个漏洞让攻击者能够向受害者发送电子邮件并触发音频文件下载。该音频文件的路径可以指向任何地方,包括远程服务器(使用 UNC 路径)。Akamai 研究人员 Ben Barnea 撰写了大量的文章,介绍了该漏洞以及他如何发现 多种 绕过 相关补丁的方法。
修补对象
在其补丁中,Microsoft 增加了对用于检查输入内容是否为 UNC 路径(“PathIsUNC”)的函数的调用,并增加了一个注册表值来检查是否允许将 UNC 路径用于主题文件(图 6)。如果路径是 UNC 路径并且不允许使用 UNC 路径,则不会加载缩略图。如果允许使用 UNC 路径,缩略图将使用 BrandImage 和 Wallpaper 进行创建。
可以在以下注册表位置中找到值“DisableThumbnailOnNetworkFolder”:“HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/Mitigation”。系统会在新添加的函数“IsUNCPathAllowedForThumbnailImage()”中对该值进行检查,该函数位于 themeui.dll中。
在此漏洞的 常见问题部分 中,Microsoft 写道:“... 然后说服用户操作特制的文件,但无需点击或打开该恶意文件。”根据我们的研究,这种说法似乎是错误的。正如我们所说明的那样,不需要修改文件内容;查看该文件就会触发凭据发送。
抵御措施
在 Windows 11 上,可以通过“组策略”来禁止在 SMB 中使用 NTLM 对远程机器进行身份验证。为此,管理员应当 编辑 管理模板 > 网络 > Lanman 工作站 > 阻止 NTLM。
Microsoft 建议使用另一项名为“限制 NTLM”的策略,该策略可帮助抵御此漏洞。可以按照 Microsoft 的操作说明来激活此策略。
利用微分段,网络管理员可以拦截流向网络外部的远程位置的 SMB 流量。此类连接通常不会发生,因为 SMB 主要用于和域控制器及文件服务器进行通信。关于微分段,我们撰写了内容全面的 博文 ,您可查看该博文以进一步了解如何对 SMB 流量进行分段。
结论
披露时间表
2023 年 9 月 20 日——漏洞被披露给 Microsoft 安全响应中心 (MSRC)
2023 年 10 月 1 日——更多信息被发送给 MSRC
2023 年 10 月 18 日——MSRC 承认此漏洞需要修补
2024 年 1 月 9 日——Microsoft 发布了这些漏洞的补丁
2024 年 3 月 6 日——Akamai 博文发布