谷歌披露微软 Windows 锁定策略中的 0day 漏洞

阅读量174679

发布时间 : 2018-04-24 12:00:49

 

Windows 10 中存在一个漏洞,如遭利用则可绕过 Windows 锁定策略并导致任意代码执行。微软在收到报告后的90天内仍未修复漏洞。

谷歌 Project Zero 团队的安全研究员 James Forshaw 指出,在启用用户模式完整性 (UMCI) 的系统上,攻击者可利用一个 .NET 漏洞绕过针对 COM Class 初始化的 Windows 锁定策略检查。

该问题已在 Windows 10S 上复现,但据称影响所有启用 UMCI 的 Windows 10 版本。

 

漏洞 POC 已发布

安全研究人员解释称,这个漏洞存在于当实例化 .NET COM 对象时,WLDP COM Class锁定策略的行为方式。

该策略中包含8到50个 COM 对象的硬编码列表,这些对象可以让开发脚本引擎实例化。因此,即使有人能够在一个受允许的 COM CLSID 下注册一个现有的 DLL,好的实现应该检查传递给 DllGetObject 的 CLSID 是否符合以上提及的内部列表并阻止攻击。

研究人员发现,当 .NET COM 对象被实例化时,传递到 DllGetClassObject 的 CLSID 也仅用于在 HKCR 中查找注册信息,CLSID 被抛弃而 .NET 对象得以创建。

因此,攻击者可添加注册表项(包括 HKCU 的注册表项),在受允许的 CLSID 下加载一个任意的 COM 可见类。

研究人员指出,“它会直接影响类策略,因为它允许攻击者添加注册表项(包括 HKCU 的注册表项),而后者在受允许的 CLSID 下加载一个任意的 COM 可见类。由于 .NET 并不在意 .NET 类型是否具有特定的 GUID,因此可利用此引导任意代码执行。”

攻击者可使用工具如 Forshaw 创建的DotNetToJScript 工具实施利用。该工具是一款免费工具,可供用户生成引导任意 .NET程序集和类的 JScript。

Forshaw 还发布了两个文件作为 POC:建立注册表的一个 .INF 文件和一个 .SCT 文件。后者是使用 DotNetToJScript 将不受信任的 .NET 程序集加载到内存中显示消息框的示例,不过它还可用于其它多种用途。

 

漏洞虽未修复但并不严重

1月19日,微软收到该漏洞报告并证实漏洞存在。按照 Project Zero 的规定,供应商可以在漏洞公开前的90天内修复漏洞,而微软并未按期修复。

不过这个漏洞也并不严重,这也是它的详情被公开发布的一个主要原因。

研究人员解释称,漏洞并未在4月的补丁星期二中予以修复,因此超过规定期限。该问题仅影响启用 Device Guard 的系统(如 Windows 10 系统),并且仅可被用于获得机器的持续性代码执行能力。它不可遭远程利用,也非权限提升问题。

攻击者要利用这个缺陷,需要在受影响计算机上立足以安装所需注册表项。而操作系统中如存在远程执行漏洞则可被用于此目的。

鉴于 .NET 框架中存在已知的 Device Guard 绕过问题且未被修复仍可遭利用,因此如果所有已知的绕过漏洞被修复的话,这个问题本不至于如此严重。

本文由奇安信代码卫士原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/106083

安全客 - 有思想的安全新媒体

分享到:微信
+10赞
收藏
奇安信代码卫士
分享到:微信

发表评论

奇安信代码卫士

奇安信代码卫士是国内第一家专注于软件开发安全的产品线,产品涵盖代码安全缺陷检测、软件编码合规检测、开源组件溯源检测三大方向,分别解决软件开发过程中的安全缺陷和漏洞问题、编码合规性问题、开源组件安全管控问题。微信公号:codesafe。

  • 文章
  • 387
  • 粉丝
  • 104

热门推荐

内容需知
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66