欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

腾讯御见捕获Flash 0day漏洞(CVE-2018-5002)野外攻击

来源: 作者: 时间:2019-02-24 19:29 点击: 我要投稿

0×1 概述
腾讯御见威胁情报中心近日监控到一例使用Adobe Flash 0day漏洞(CVE-2018-5002)的APT攻击,攻击者疑通过即时聊天工具和邮箱等把恶意Excel文档发送给目标人员,诱骗目标人员打开文档。实际上,该恶意Excel文档经过特别构造,被嵌入了flash对象,用户一旦打开文档电脑就会中毒。
CVE-2018-5002影响Adobe Flash Player 29.0.0.171及所有之前的版本。Adobe官方于6月7日下午发布安全公告(公告ID:APSB18-19),Adobe Flash Player的版本已更新到30.0.0.113。具体可参考Adobe 官方安全公告:https://helpx.adobe.com/security/products/flash-player/apsb18-19.html
我们及时向Adobe官方上报了漏洞利用样本,并获得了Adobe官方确认和致谢。

(攻击流程图)
0×2 攻击流程分析
1. 漏洞文档行为分析
此次攻击时使用的诱饵文档文件名为《basic_salary.xlsx》,主要内容为阿拉伯语言撰写的外交部官员基本工资情况。诱饵文档嵌入了一个在线的Flash对象,用户打开文档后,就会自动加载Flash文件。

(google翻译后的文档内容)

(诱饵文档内容)
2. SWF1行为分析
SWF1文件中的代码高度混淆,后续图片中的源码,均是对混淆代码进行一定优化后截取的。

(混淆后的SWF1代码)
诱饵文档中嵌入了一个在线swf对象,当打开带漏洞的excel表格时,会加载“Movie”字段所指向的在线Flash文件,这里取名为SWF1。
Excel会将FlashVars指向的文本会以参数的形式传递给SWF1,这里存放的是漏洞利用样本(SWF2文件) 和 ShellCode等URL信息,分别被标记为了stabUrl、encKeyUrl、downloadUrl、imageUrl。

(SWF1运行时取参数)
SWF1运行后,会以post方式从参数encKeyUrl 指向的WEB服务器得到解密key及加密的swf。使用aes算法解密后,得到漏洞swf文件,取名为SWF2。

(SWF1以post方式下载加密的SWF2)

(SWF1使用aes解密SWF2)
SWF1通过LoadBytes将解密后的漏洞利用文件SWF2加载执行,并将downloadUrl等参数传给SWF2。

(SWF1加载SWF2)
3. SWF2(0day漏洞)行为分析
CVE-2018-5002是由于Flash未能正确处理包含特殊字节码序列的SWF文件时产生的栈越界读写漏洞。该漏洞同之前的CVE-2017-11292类似,都需要修改SWF文件的字节码来触发漏洞。同时该漏洞的利用只需要简单的内存布局,不需要复杂的堆喷,一个样本同时在32位和64位系统中稳定运行。
1) 漏洞原理分析
a. 漏洞代码
ASC2(ActionScript 2)引入了一组用于快速操作内存的函数,如li8, si8等等。该组函数的具体含义如下:

样本代码经过了恶意混淆,下面是清除混淆后的触发漏洞代码。

其中包含li8的静态初始化(Static Initializer)代码并没有被完全反编译,下图是根据其字节码得出的伪码:

实际调试发现,执行li8指令时会触发异常,同时异常会交由当前的catch块来处理。而catch部分的代码可以越界将其调用者的栈上的两个对象指针(local_448, local_449)互换,从而实现类型混淆。
这里就产生两个重要的问题:
I  li8指令并不在try块中,为什么产生的异常能被当前的catch块捕获?
II  catch块正常情况下只能访问local_0和local_1,为什么这里能越界读写?
b. 异常处理
Flash的虚拟机AVM在执行可能会触发异常的字节码前,会记录当前执行的位置previous_bytecode_offset,当发生异常后则根据记录的执行位置从异常处理例程表ExceptionHandlerTable中查找对应的异常处理函数,即AS脚本或字节码中的catch块。

[1] [2] [3]  下一页

(责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。