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


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

查看所有标签

猜你喜欢:

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

利用Python进行数据分析

利用Python进行数据分析

Wes McKinney / 唐学韬 / 机械工业出版社 / 2013-11-18 / 89.00

【名人推荐】 “科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法。本书在未来几年里肯定会成为Python领域中技术计算的权威指南。” ——Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一 【内容简介】 还在苦苦寻觅用Python控制、处理、整理、分析结构化数据的完整课程?本书含有大量的实践案例,......一起来看看 《利用Python进行数据分析》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具