CVE-2018-8611 Windows kernel事务管理器0 day漏洞分析

ang010ela 漏洞 2018年12月17日发布
Favorite收藏

导语:2018年10月,Kaspersky的AEP系统检测到攻击者尝试利用Windows操作系统漏洞的情况。研究人员进一步分析发现了一个ntoskrnl.exe中的一个0 day漏洞。

概览

2018年10月,Kaspersky的AEP(Automatic Exploit Prevention,自动漏洞利用预防)系统检测到攻击者尝试利用Windows操作系统漏洞的情况。研究人员进一步分析发现了一个ntoskrnl.exe中的一个0 day漏洞。研究人员于10月29日将该漏洞报告给微软,微软确认后分配了CVE编号CVE-2018-8611。微软在12月份的更新中修复了该漏洞。

image.png

这是研究人员今年秋天以来发现的第三个Windows本地权限提升漏洞。与之前报告的win32k.sys中的CVE-2018-8589CVE-2018-8453漏洞不同的是,CVE-2018-8611是kernel事务管理器(Transaction Manager)驱动中的漏洞,所以带来的威胁更大。因为syscall过滤缓解方案没有应用到ntoskrnl.exe系统调用中,因此该漏洞可以被用来绕过包括Chrome和Edge在内的主流web浏览器的沙箱。

与CVE-2018-8589类似,研究人员认为包括FruityArmor和SandCat在内的威胁单元都在使用该漏洞利用。FruityArmor之前就利用过0 day漏洞,而SandCat是研究人员最近新发现的APT。除了该0 day和CHAINSHOT外,SandCat还使用FinFisher / FinSpy框架。

Kaspersky实验室发现该攻击和相关攻击活动中还使用了:

· HEUR:Exploit.Win32.Generic

· HEUR:Trojan.Win32.Generic

· PDM:Exploit.Win32.Generic

CVE-2018-8611漏洞详情

CVE-2018-8611是在kernel模式下对文件操作的不适当处理造成Kernel Transaction Manager中产生竞争条件(race condition)。该漏洞成功绕过了主流的进程缓解策略,比如Microsoft Edge沙箱中使用的Win32k System call Filtering和Google Chrome沙箱使用的Win32k Lockdown Policy。加上被入侵的renderer进程,该漏洞会导致最新的web浏览器中的完全远程代码执行利用链。

研究人员发现了该漏洞的很多利用版本。其中最新的包括反映Windows操作系统最新版本的变化。

image.png

检查最新的build: Windows 10 Redstone 4 Build 17133

与CHAINSHOT类似,该漏洞利用非常依赖使用C++异常处理机制和定制的错误代码。

为了滥用该漏洞利用,首先要创建一个命名pipe,并以读写权限打开。然后创建应对新事务管理器对象、资源管理器对象、事务对象,并为Transaction #2创建大量的enlistment object。Enlistment是用来关联事务和资源管理器的特殊对象。当事务状态改变时,KTM就会通知相关联的资源管理器。然后为Transaction #1创建一个enlistment对象,并commit事务过程中的所有改变。

这些完成后,进入漏洞利用的第二部分。创建多个线程,并绑定到一个CPU内核中。其中创建的一个线程会循环调用 NtQueryInformationResourceManager,第二个线程会尝试执行NtRecoverResourceManager 1次。但是漏洞本身是在第三个漏洞中触发的。该漏洞会用NtQueryInformationThread执行来获取第二个线程系统调用的信息。NtRecoverResourceManager成功执行意味着竞争条件产生了,之后在之前创建的命名pipe上执行WriteFile会导致内存破坏。

image.png

PoC:WriteFile执行

本文翻译自:https://securelist.com/zero-day-in-windows-kernel-transaction-manager-cve-2018-8611/89253/如若转载,请注明原文地址: https://www.4hou.com/vulnerable/15203.html
点赞 2
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论