Edge Sandbox绕过后续及Windows 10 TH2新安全特性

华盟原创文章投稿奖励计划

  Edge Sandbox绕过后续及Windows 10 TH2新安全特性

  在 11月6日的韩国PoC(Power of Community)安全会议上,笔者介绍了一些Windows 10 RTM中的一些新安全特性,以及他们在过去的TP版本中发生的安全问题,同时,笔者还重点介绍了一个Windows 10 Edge沙箱的逃逸漏洞,以及如何将其(结合一个RCE漏洞)组装成彻底攻破Edge浏览器的方法和演示,包括笔者同微软长达半年沟通最终促成他们决定修复漏洞的过程。

  因为这个漏洞目前仍然是未修复的0day状态,在微软的要求下, 在PoC的演讲中笔者对关键部分做了一些mask,议题Slides也并未公开,因此这里也不会过多讨论这个漏洞。

  笔者拿到Windows 10 TH2版本后,周末找了点时间在TH2上测试了下这个漏洞,发现这个版本上微软通过两个方式对这个漏洞做了一些缓和:

  1. 将漏洞需要利用的broker接口更换了另一个, 这个很容易绕过,更换接口的CLSID和IID就可以继续调用了

  2. 该漏洞利用需要结合针对某些站点的URL跳转漏洞,微软将笔者提交的Exploit中利用的某个特定站点从可用站点列表中删除了,当然,发现一个新的也很容易。(这里要感谢@黄源小童鞋)

  在解决这两个问题后, 笔者发现新的Exploit仍然无法工作。 笔者调试了一下发现,Edge和Windows 10 TH2里新增了一些安全特性,当然Windows 10 TH2中还开始加入了对Intel SGX技术(Enclave)的支持,也增强了SILO等, 但本文关注在这几个影响笔者的Exploit工作的新特性。

  Edge & Windows 10 TH2 新安全特性

  经过调试发现, Edge的render进程(MicrosoftEdgeCP.exe)在加载Exploit DLL时就失败了,追溯到kernel32!LoadLibraryA,发现它直接就返回了ERROR_INVALID_IMAGE_HASH,在进一步跟踪LdrLoadDll/NtCreateSection直到内核,发现Windows 10 TH2中新增了针对三项DLL加载的安全特性:

  1. 针对特定进程,禁止加载未签名的DLL(SignatureMitigationOptIn)

  2. 针对特定进程, 禁止加载远程DLL(ProhibitRemoteImageMap)

  3. 针对特定进程, 禁止加载文件的完整性级别为Low的镜像文件(ProhibitLowILImageMap)

  这三项功能都包括在Mitigation Policy中, 这是从Windows 8开始微软存放进程和全局缓和状态的方式,可以通过公开的API SetProcessMitigationPolicy/GetProcessMitigationPolicy(实际是NtQuery /SetInformationProcess->ProcessMitigationPolicy)来查询和设置进程的状态, Google Chrome也使用了这两个API来增强安全性。Mitigation Policy同时还可以通过IEFO、父进程继承和创建进程时设置StartupInfoEx中的Attributes List来进行设置。

  微软目前公开的对于G(S)etProcessMitigationPolicy的文档仅截至到Windows 8为止(https://msdn.microsoft.com/en-us/library/windows/desktop/hh769085(v=vs.85).aspx) , 对于Windows 8.1、Windows 10 RTM和TH2中中新增的缓和策略选项并没有文档化, 这里,笔者给出在Windows 10 TH2上最新的所有Mitigation Policy及其数据结构:

  

以下是代码片段:

typedef enum _PROCESS_MITIGATION_POLICY

原文地址:https://exploits.77169.com/2015/20151118133113.shtm

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/22226.html

发表评论