谷歌已经公开披露了一个Windows 10零日漏洞,攻击者可以利用这个漏洞在启用了用户模式代码完整性(UMCI)的系统上绕过Windows锁定策略,并在目标系统上执行任意代码。
Project Zero黑客James Forshaw公开披露了这个问题,因为根据Google的披露政策,该漏洞在90天内没有修复。
零日影响所有启用了UMCI的Windows 10版本,Forshaw在Windows 10S上成功利用了它。
“通过使用.NET中的错误导致启用了UMCI的系统上的任意代码执行(例如Device Guard),可以绕过启用的Windows锁定策略检查COM类实例化”,其中声明了Google发布的安全建议。
当.NET COM对象被实例化时,零日缺陷与WLDP COM类锁定策略的行为方式联系在一起。
WLDP COM Class锁定策略包含一个8至50个COM对象的硬编码列表,这些对象可以让启发脚本引擎实例化。
为了防止攻击,在注册现有DLL的同时,策略的正确实现应检查传递给DllGetObject的CLSID与硬编码列表。
“WLDP COM Class锁定策略包含一个8到50个COM对象的硬编码列表,这些对象可以让启发式脚本引擎实例化。排除与查找正确CLSID有关的问题(例如先前报告的对TreatAs案件40189的滥用)。“继续分析。
“这应该不是一个主要问题,即使你可以写入注册表来注册一个现有的DLL在一个允许的COM CLSID下,因为一个行为良好的COM实现应该比较传递给DllGetObject的CLSID与其已知对象的内部列表。 ”
谷歌专家发现,当一个.NET COM对象被实例化时,传递给mscoree的DllGetClassObject的CLSID仅用于在HKCR中查找注册信息,CLSID被抛弃,并创建.NET对象。
这意味着攻击者可以添加注册表项,包括HKCU,这将加载一个可信的CLSID下的任意COM可见类。
“这对类策略有直接影响,因为它允许攻击者添加注册表项(包括HKCU),该注册表项将在允许的CLSID之一下加载任意COM可见类。因为.NET不关心.NET类型是否具有该特定的GUID,您可以使用它来引导任意代码执行,“继续分析。
Google研究人员发布了一个由两个文件组成的漏洞检测代码:
研究人员在1月19日向微软报告了这一漏洞,但该技术巨头在90天内没有提及。
“这个问题在周二的补丁中并没有修复,因此这个问题已经过了最后期限。此问题仅影响启用了Device Guard的系统(例如Windows 10S),并且只能作为在此类计算机上获取持久代码执行的方式。这不是一个可以远程利用的问题,也不是一种特权升级,“该专家补充说。
专家强调,攻击者需要访问系统来利用漏洞并安装注册表项。
参考:https://securityaffairs.co/wordpress/71689/hacking/windows-lockdown-policy-0day.html
本文由安全周翻译,转载请注明出处
您必须[登录] 才能发表留言!