首页 >> 网络安全 >>零日漏洞 >> 第四个骑士:CVE-2019-0797漏洞
详细内容

第四个骑士:CVE-2019-0797漏洞

Windows操作系统中的新零日在攻击中被利用

在2019年2月,我们的自动漏洞防护(AEP)系统检测到尝试利用Microsoft Windows操作系统中的漏洞。对此事件的进一步分析使我们发现win32k.sys中存在零日漏洞。我们于2019年2月22日向Microsoft报告了该公司。该公司确认了该漏洞并将其分配给CVE-2019-0797。微软刚刚发布了一个补丁,称卡巴斯基实验室研究人员Vasiliy Berdnikov和Boris Larin的发现:

1.png

这是我们最近使用我们的技术发现的Windows中连续第四次被利用的Local Privilege Escalation漏洞。就像CVE-2018-8589一样,我们相信这个漏洞被几个威胁演员使用,包括但不限于FruityArmor和SandCat。虽然众所周知FruityArmor曾使用过零天,但SandCat是我们最近才发现的新APT。除了CVE-2019-0797和CHAINSHOT之外,SandCat还使用FinFisher / FinSpy框架。


卡巴斯基实验室产品通过以下技术主动检测到此漏洞:

  1. 端点产品的行为检测引擎和自动漏洞预防;

  2. 卡巴斯基反目标攻击平台(KATA)的高级沙盒和反恶意软件引擎。


卡巴斯基实验室判断此次攻击和相关攻击中使用的工件是:

  1. HEUR:Exploit.Win32.Generic

  2. HEUR:Trojan.Win32.Generic

  3. PDM:Exploit.Win32.Generic


技术细节 - CVE-2019-0797

CVE-2019-0797是win32k驱动程序中存在的竞争条件,因为未记录的系统调用NtDCompositionDiscardFrame和NtDCompositionDestroyConnection之间缺乏正确的同步。在初始分析期间,在最新系统上制作的屏幕截图中,可以观察到易受攻击的代码:

2.png

NtDCompositionDiscardFrame系统调用的片段(Windows 8.1)

在这个带有NtDCompositionDiscardFrame系统调用的简化逻辑的屏幕截图中,您可以看到此代码获取与结构DirectComposition :: CConnection中的帧操作相关的锁,并尝试查找与给定id对应的帧,并最终调用免费的。可以在第二个屏幕截图中观察到此问题:33.png

NtDCompositionDestroyConnection系统调用内部函数的片段(Windows 8.1)

在此屏幕截图中,使用从NtDCompositionDestroyConnection系统调用中调用的函数DiscardAllCompositionFrames的简化逻辑,您可以看到它没有获取必要的锁定并调用将释放所有已分配帧的函数DiscardAllCompositionFrames。问题在于,当系统调用NtDCompositionDiscardFrame和NtDCompositionDestroyConnection同时执行时,函数DiscardAllCompositionFrames可以在NtDCompositionDiscardFrame系统调用已经在寻找要释放或已经找到它的帧时执行。这种情况导致免费使用后的情况。


有趣的是,这是除了CVE-2018-8589和CVE-2018-8611之外,同一组使用的第三种竞争条件零日攻击。

5.png

如果模块文件名包含子字符串“chrome.exe”,则停止执行

在野外发现的漏洞攻击目标是从Windows 8到Windows 10 build 15063的64位操作系统。所有这些操作系统的开发过程没有太大差别,并使用堆喷涂调色板和加速器表执行使用GdiSharedHandleTable和gSharedInfo泄漏其内核地址。在利用Windows 10 build 14393和更高的窗口时使用而不是调色板。除此之外,该漏洞会检查它是否从谷歌浏览器运行并停止执行,因为漏洞CVE-2019-0797无法在沙箱中被利用。

技术支持: 建站ABC | 管理登录