CVE-2018-8453漏洞分析利用

栏目: 编程工具 · 发布时间: 6年前

内容简介:微软发布了他们的安全公告,修补了CVE-2018-8453等若干漏洞。CVE-2018-8453是卡巴斯基实验室于今年8月份发现的win32k.sys漏洞。我们于2018年8月17日向Microsoft报告了此漏洞,Microsoft已确认此漏洞并将其指定为CVE-2018-8453。

CVE-2018-8453漏洞分析利用

概述

微软发布了他们的安全公告,修补了CVE-2018-8453等若干漏洞。CVE-2018-8453是卡巴斯基实验室于今年8月份发现的win32k.sys漏洞。我们于2018年8月17日向Microsoft报告了此漏洞,Microsoft已确认此漏洞并将其指定为CVE-2018-8453。

CVE-2018-8453漏洞分析利用

在2018年8月,我们的自动漏洞防护(AEP)系统检测到一个尝试利用微软Windows操作系统中的漏洞的案例。对此案例的进一步分析使我们发现了win32k.sys中的0day漏洞。exploit代码会在恶意软件安装程序的第一阶段时被执行,用于获得一些必要的权限从而能在受害者电脑上造成更持久的攻击。该漏洞利用代码质量很高,其设计目的便是可靠地利用尽可能多的微软Windows各版本系统,包括Windows 10 RS4。

到目前为止,我们只检测到非常少数利用此漏洞进行的攻击行为,受害者位于中东。

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

  1. 基于端点的行为检测引擎和自动化漏洞攻击防御
  2. 卡巴斯基反目标攻击平台(KATA)高级沙盒和反恶意软件引擎技术

卡巴斯基实验室对这次案例中的漏洞检测定义如下:

  • HEUR:Exploit.Win32.Generic
  • HEUR:Trojan.Win32.Generic
  • PDM: Exploit.Win32.Generic

客户可以通过卡巴斯基情报获取有关此攻击的更多信息。

联系方式:

intelreports@kaspersky.com

技术细节

CVE-2018-8453是一种”释放后使用”(UAF)类型的漏洞,位于 win32kfull!xxxDestroyWindow 中,类似于一个年份久一些的漏洞—CVE-2017-0263。CVE-2017-0263漏洞最初由 Sofacy APT 组织于2017年,与一个PostScript漏洞一起进行部署验证。

为了对漏洞做技术分析,我们完整地逆向了所获得的ITW利用样本,并且重写了一个完整的POC。

利用此漏洞的关键在于通过钩子从而得到执行的一系列事件,钩子被挂在三个用户模式的回调函数( fnDWORDfnNCDESTROY , fnINLPCREATESTRUCT )上。该漏洞通过替换掉 KernelCallbackTable 中的函数指针来装载这些钩子。

CVE-2018-8453漏洞分析利用 内核回调表中的钩子函数

fnINLPCREATESTRUCT 钩子中,我们的exploit通过显式地指定位置来初始化” SysShadow “窗口。

CVE-2018-8453漏洞分析利用 fnINLPCREATESTRUCT上的Usermode挂钩初始化SysShadow

当处理 WM_LBUTTONDOWN 消息时, fnDWORD 钩子会在父节点上执行 DestroyWindow 函数,导致窗口被标记为空闲,并且随后被垃圾收集器释放。

问题的关键点位于 DestroyWindow 函数运行期间被执行的 fnNCDESTROY 钩子。它会执行 NtUserSetWindowFNID 系统调用,该调用包含一个逻辑缺陷,可以绕过检查窗口是否被标记为 FNID_FREED 而直接改变窗口的 fnid 状态位。

CVE-2018-8453漏洞分析利用 NtUserSetWindowFNID中的易受攻击的代码

窗口的fnid状态位位于tagWND结构体中的0x02a偏移量处:

kd> dt win32k!tagWND 
... 
+ 0x02a fnid:Uint2B

最初滚动条被创建时,它的值为 FNID_SCROLLBAR(0x029A)

下图显示了执行 NtUserSetWindowFNID 系统调用前后的 fnid 值:

CVE-2018-8453漏洞分析利用 在执行NtUserSetWindowFNID系统调用之前和之后的滚动条fnid

我们可以通过 ReactOS源码 来获取并检查新的 fnid 值:

/ * NtUserSetWindowFNID的FNID,NtUserMessageCall * / 
#define FNID_SCROLLBAR 0x029A 
... 
#define FNID_BUTTON 0x02A1 
... 
#define FNID_FREED 0x8000 / *正在释放的窗口... * /

这个动作会导致第一个滚动条被销毁,而系统同时还保留着一个对”SysShadow”类的引用,因为滚动条fnid不再被标记为FNID_FREED,而是FNID_BUTTON。

为了成功回收释放的内存池,该exploit还包含了许多不同的风水策略。喷射程序取决于被利用的系统的版本,由于exploit可以影响到很多种操作系统,所以对应各种系统它有以下5个独立的堆喷射函数:

CVE-2018-8453漏洞分析利用 支持的堆喷射程序

对于最新的版本(Windows 10 RS4),喷射策略非常复杂。内核受到不同大小的位图对象喷射。这就需要耗尽内存分配器的资源,从而最终绕过新版本Windows中得到显著改进的低碎片堆安全缓解技术(Low Fragmentation Heap security mitigations):

CVE-2018-8453漏洞分析利用 用于Windows RS4 17134的堆风水技术

这会导致如下的内存布局,其中 USERTAG_SCROLLTRACK 是释放后的池分配。

CVE-2018-8453漏洞分析利用 释放滚动条堆分配

分配另一个滚动条时,SysShadow类的内存引用会被重用,但是其内容受攻击者控制,因为释放的Usst(ffffee30044b2a10)和Gpbm(ffffee30044b2a90)池合并为一个块:

CVE-2018-8453漏洞分析利用 释放的内存与后面的池合并

导致即使是在最新版本的Windows系统上,也可以实现使用GDI Bitmap原语的、强大的任意内核读/写。

成功利用之后,一个略做修改、用于偷取token的payload会被用于交换当前进程和SYSTEM EPROCESS结构中的token。

CVE-2018-8453漏洞分析利用 修改后的令牌窃取payload进程

到目前为止,当exploit被打包在恶意软件安全程序中时,我们已经在一些针对性攻击中观察其被使用。安装程序会请求系统的特权从而安装payload。payload被复杂地嵌入到系统,从而使得攻击者可以持久地访问受害者机器。payload的一些主要特征包含以下:

  1. 会使用带有SMBIOS UUID的SHA-1的AES-256-CBC套件加密主要payload(这使得如果SMBIOS UUID未知的话,将无法在受害者机器之外的其它机器上解密payload)
  2. 使用Microsoft BITS(后台智能传输服务)与其C&C服务器进行通信,这是一种不寻常的技术
  3. 将主要payload存储在硬盘上一个随机命名的文件中;装载程序包含该文件名的哈希值,会尝试通过比较windows目录中的全部文件的文件名哈希值来找到payload。

客户可以通过卡巴斯基情报获取有关该恶意软件及其背后的APT攻击的更多信息。

联系方式:

intelreports@kaspersky.com

受害者

根据我们的遥感勘测,攻击的分布性似乎是高度针对性的,影响了中东地区不超过12名的受害者。

归因

在我们的调查过程中,我们发现攻击者使用的是PowerShell后门,这个后门之前被FruityArmor APT独家使用。在这一系列事件与之前的FruityArmor活动之间,所使用的C2域名也存在重叠。这让我们充满信心地评估出,FruityArmor应该和这次CVE-2018-8453攻击有很大的关系。

结论

即使0day似乎比以前更频繁,这也是我们第二次发现FruityArmor使用其中一个来分发其恶意软件。这展示出了这个行动者的资源丰富和复杂性,以及他们散布出的先进的终端机器。

到目前为止,这次攻击活动极具针对性,影响了中东地区极少数受害者,可能是袭击者感兴趣的人。然而,特别是在涉及的受害者人数如此之少时,受害者研究结果尚不完整。

我们相信尽管FruityArmor的活动在过去两年中一直在缓慢增加,但这些攻击的极具针对性的特性有助于它们在雷达之下飞行

附录I – Indicators of compromise

Domains

weekendstrips[.]net

shelves-design[.]com


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Analytics

Web Analytics

Avinash Kaushik / Sybex / 2007-6-5 / USD 29.99

在线阅读本书 Written by an in-the-trenches practitioner, this step-by-step guide shows you how to implement a successful Web analytics strategy. Web analytics expert Avinash Kaushik, in his thought-p......一起来看看 《Web Analytics》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具