来自 DEVCORE 研究团队的安全研究员 Angelboy (@scwuaptx) 通过详细分析发现,关键漏洞 CVE-2024-35250 已暴露出重大威胁,可使攻击者在 Windows 中获得 SYSTEM 权限。该漏洞影响 Windows 内核模式驱动程序,在 Pwn2Own Vancouver 2024 比赛中被广泛使用,因其严重性引起了广泛关注。
已确认!DEVCORE 团队利用几个漏洞(包括一个有点危险的 TOCTAU 竞争条件)在 #Windows 11 上获得了 LPE。他们获得了 3 万美元和 3 点 Pwn 大师积分。#Pwn2Own pic.twitter.com/pP9adGmRs0
– 零日计划 (@thezdi) 2024 年 3 月 20 日
CVE-2024-35250 的 CVSS 得分为 7.8,它允许通过操纵内核流 (ks.sys) 中的 IOCTL_KS_PROPERTY 请求提升权限。正如微软所解释的,“成功利用此漏洞的攻击者可获得系统管理员权限”,从而有效地完全控制受影响的系统。
该漏洞存在于 ks.sys 驱动程序对属性请求的处理过程中。具体来说,当提供 KSPROPERTY_TYPE_UNSERIALIZESET 标志时,可以启动一系列操作,最终导致任意 IOCTL 调用。在此过程中,用户提供的缓冲区会被复制到一个新分配的空间,并在没有适当验证的情况下执行。Angelboy 指出:”我们现在有了一个基本工具,可以执行任意的 IOCTL_KS_PROPERTY 操作。
一旦实现了任意调用,利用漏洞就变得简单易行。攻击者可以利用合法函数执行任意写入,然后利用该函数替换进程令牌,从而授予系统级权限。正如 Angelboy 指出的那样:“我们的目标很直接:从一个合法函数中创建一个任意写入基元,然后通过典型的方法(如用系统令牌替换当前进程令牌或滥用令牌特权)实现 EoP”。
然而,利用漏洞并非没有挑战。需要绕过内核控制流防护(kCFG)、地址空间布局随机化(ASLR)和监控模式执行防护(SMEP)等多项安全措施,攻击才能成功。Angelboy 解释说:”虽然会遇到 kCFG、kASLR 和 SMEP 等保护,但在中型 IL 下唯一需要处理的保护是 kCFG。”
通过广泛研究,DEVCORE 团队发现函数 RtlSetAllBits 是绕过这些保护的可行选择。该函数是合法 Windows 内核的一部分,允许攻击者操纵位图结构,从而创建一个可导致权限升级的写入基元。
测试期间,该漏洞利用程序在受控环境下成功执行。然而,当研究人员试图在 Hyper-V 上的 Windows 11 23H2 虚拟机(VM)上运行该漏洞时,却遇到了困难。Angelboy 回忆说:”结果是失败。在打开设备阶段就失败了。这个问题源于 Hyper-V 默认不包含音频设备,而音频设备是通过 KSPROPSETID_DrmAudioStream 属性触发漏洞所必需的。
根据 Angelboy 的分析,安全研究员 Varwara 发布了概念验证 (PoC) 漏洞利用代码,以展示 CVE-2024-35250 的影响。
微软在 6 月 2024 日的 “补丁星期二 ”更新中解决了这一关键漏洞,提供了一个防止利用该漏洞的补丁。
强烈建议企业和用户更新系统,以降低与 CVE-2024-35250 相关的风险。此外,实施最低权限原则、保持软件更新和监控系统异常行为等最佳实践可以进一步防范此类漏洞。