内容简介:微软发布了他们的安全公告,修补了CVE-2018-8453等若干漏洞。CVE-2018-8453是卡巴斯基实验室于今年8月份发现的win32k.sys漏洞。我们于2018年8月17日向Microsoft报告了此漏洞,Microsoft已确认此漏洞并将其指定为CVE-2018-8453。
概述
微软发布了他们的安全公告,修补了CVE-2018-8453等若干漏洞。CVE-2018-8453是卡巴斯基实验室于今年8月份发现的win32k.sys漏洞。我们于2018年8月17日向Microsoft报告了此漏洞,Microsoft已确认此漏洞并将其指定为CVE-2018-8453。
在2018年8月,我们的自动漏洞防护(AEP)系统检测到一个尝试利用微软Windows操作系统中的漏洞的案例。对此案例的进一步分析使我们发现了win32k.sys中的0day漏洞。exploit代码会在恶意软件安装程序的第一阶段时被执行,用于获得一些必要的权限从而能在受害者电脑上造成更持久的攻击。该漏洞利用代码质量很高,其设计目的便是可靠地利用尽可能多的微软Windows各版本系统,包括Windows 10 RS4。
到目前为止,我们只检测到非常少数利用此漏洞进行的攻击行为,受害者位于中东。
卡巴斯基实验室的技术产品通过以下技术主动检测到该漏洞:
- 基于端点的行为检测引擎和自动化漏洞攻击防御
- 卡巴斯基反目标攻击平台(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。
利用此漏洞的关键在于通过钩子从而得到执行的一系列事件,钩子被挂在三个用户模式的回调函数( fnDWORD , fnNCDESTROY , fnINLPCREATESTRUCT )上。该漏洞通过替换掉 KernelCallbackTable 中的函数指针来装载这些钩子。
内核回调表中的钩子函数
在 fnINLPCREATESTRUCT 钩子中,我们的exploit通过显式地指定位置来初始化” SysShadow “窗口。
fnINLPCREATESTRUCT上的Usermode挂钩初始化SysShadow
当处理 WM_LBUTTONDOWN 消息时, fnDWORD 钩子会在父节点上执行 DestroyWindow 函数,导致窗口被标记为空闲,并且随后被垃圾收集器释放。
问题的关键点位于 DestroyWindow 函数运行期间被执行的 fnNCDESTROY 钩子。它会执行 NtUserSetWindowFNID 系统调用,该调用包含一个逻辑缺陷,可以绕过检查窗口是否被标记为 FNID_FREED 而直接改变窗口的 fnid 状态位。
NtUserSetWindowFNID中的易受攻击的代码
窗口的fnid状态位位于tagWND结构体中的0x02a偏移量处:
kd> dt win32k!tagWND ... + 0x02a fnid:Uint2B
最初滚动条被创建时,它的值为 FNID_SCROLLBAR(0x029A) 。
下图显示了执行 NtUserSetWindowFNID 系统调用前后的 fnid 值:
在执行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个独立的堆喷射函数:
支持的堆喷射程序
对于最新的版本(Windows 10 RS4),喷射策略非常复杂。内核受到不同大小的位图对象喷射。这就需要耗尽内存分配器的资源,从而最终绕过新版本Windows中得到显著改进的低碎片堆安全缓解技术(Low Fragmentation Heap security mitigations):
用于Windows RS4 17134的堆风水技术
这会导致如下的内存布局,其中 USERTAG_SCROLLTRACK 是释放后的池分配。
释放滚动条堆分配
分配另一个滚动条时,SysShadow类的内存引用会被重用,但是其内容受攻击者控制,因为释放的Usst(ffffee30044b2a10)和Gpbm(ffffee30044b2a90)池合并为一个块:
释放的内存与后面的池合并
导致即使是在最新版本的Windows系统上,也可以实现使用GDI Bitmap原语的、强大的任意内核读/写。
成功利用之后,一个略做修改、用于偷取token的payload会被用于交换当前进程和SYSTEM EPROCESS结构中的token。
修改后的令牌窃取payload进程
到目前为止,当exploit被打包在恶意软件安全程序中时,我们已经在一些针对性攻击中观察其被使用。安装程序会请求系统的特权从而安装payload。payload被复杂地嵌入到系统,从而使得攻击者可以持久地访问受害者机器。payload的一些主要特征包含以下:
- 会使用带有SMBIOS UUID的SHA-1的AES-256-CBC套件加密主要payload(这使得如果SMBIOS UUID未知的话,将无法在受害者机器之外的其它机器上解密payload)
- 使用Microsoft BITS(后台智能传输服务)与其C&C服务器进行通信,这是一种不寻常的技术
- 将主要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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 漏洞分析:OpenSSH用户枚举漏洞(CVE-2018-15473)分析
- 【漏洞分析】CouchDB漏洞(CVE–2017–12635, CVE–2017–12636)分析
- 【漏洞分析】lighttpd域处理拒绝服务漏洞环境从复现到分析
- 漏洞分析:对CVE-2018-8587(Microsoft Outlook)漏洞的深入分析
- 路由器漏洞挖掘之 DIR-815 栈溢出漏洞分析
- Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Collective Intelligence
Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!