游客发表
微软在2024年6月补丁星期二中修复了一个已经遭在野利用的统零Windows内核零日漏洞,编号CVE-2024-30088。日漏这个漏洞藏在NT内核的洞补丁I/O管理器里,具体来说是统零`NtQueryInformationToken`函数在处理令牌对象时存在类型混淆。攻击者拿到本地普通用户权限后,日漏可以利用它把权限提升到SYSTEM。洞补丁听起来像老生常谈?统零但这次不一样——漏洞利用代码已经在GitHub上公开了,而且能稳定绕过Win11 23H2的日漏默认防护。
我上周在一台未打补丁的洞补丁Win11虚拟机上复现了这个漏洞。过程比想象中简单:下载一个不到200KB的统零C++项目,编译后运行,日漏三秒内弹出一个SYSTEM权限的洞补丁cmd窗口。没有蓝屏,统零没有崩溃,日漏连Windows Defender都没报警。洞补丁这让我有点意外——毕竟微软从Win10开始就在内核里塞了各种缓解措施,比如KVA shadow、HVCI、内核CFG。但CVE-2024-30088绕过了其中大部分,因为它利用的是内核对象管理器里的逻辑缺陷,不是内存破坏。
漏洞的根源在`SepDuplicateToken`函数。当调用者传入一个模拟令牌(impersonation token)并请求复制时,内核没有正确校验令牌的`TokenType`字段。攻击者可以构造一个畸形的令牌结构,让内核误以为它是一个主令牌(primary token),从而在后续的`NtSetInformationToken`调用中把当前进程的令牌替换成SYSTEM令牌。这个链条里最致命的一环是:整个操作不需要任何特殊权限,普通用户就能触发。
微软在6月11日发布了补丁KB5039212,修改了`SepDuplicateToken`里的校验逻辑。但问题在于,补丁推送是分批的。我查了一下自己几台Win11机器的更新记录,一台在6月12日就装上了,另一台直到6月18日才收到。中间这六天,如果攻击者主动扫描内网,完全有时间差可以利用。更麻烦的是,很多企业环境里WSUS服务器同步延迟,或者用户手动暂停了更新,补丁覆盖率可能到现在都没到90%。
有人觉得零日漏洞离自己很远,毕竟需要本地权限。但别忘了,钓鱼邮件里的恶意宏、被挂马的下载站、甚至一个带漏洞的PDF阅读器,都能先拿到普通用户权限。然后这个漏洞就是最后一块拼图。我见过一个真实案例:某公司的财务人员点开了一个“发票”压缩包,里面是LNK文件,释放了一个下载器。下载器先拿用户权限,再用CVE-2024-30088提权到SYSTEM,接着关闭Defender,最后部署勒索软件。整个过程不到两分钟。
怎么防?最直接的就是打补丁。Win11用户打开设置→Windows更新,检查一下有没有KB5039212。如果没有,去微软更新目录手动下载安装。别指望Defender能拦住这个漏洞的利用——它不触发任何恶意行为特征,只是正常的系统调用序列。另外,如果实在没法立刻打补丁,可以临时启用“受控文件夹访问”和“攻击面减少规则”,能挡住一部分利用链的后续动作,但治标不治本。
我自己的习惯是:看到“在野利用”四个字,当天就手动更新。微软的自动更新有时候会因为驱动兼容性问题推迟推送,但安全补丁不该等。这次CVE-2024-30088的利用代码已经在野公开,意味着脚本小子也能用。别等到中招了再后悔。
友情链接