qq漏洞
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
腾讯御见捕获Flash 0day漏洞(CVE-2018-5002)野外攻击 腾讯电脑管家认证厂商2018-06-09共220880人围观 ,发现 5 个不明物体 漏洞系统安全
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官方确认和致谢。
1.png
(攻击流程图)
0×2 攻击流程分析
1. 漏洞文档行为分析
此次攻击时使用的诱饵文档文件名为《basic_salary.xlsx》,主要内容为阿拉伯语言撰写的外交部官员基本工资情况。诱饵文档嵌入了一个在线的Flash对象,用户打开文档后,就会自动加载Flash文件。
2.png
(google翻译后的文档内容)
3.png
(诱饵文档内容)
2. SWF1行为分析
SWF1文件中的代码高度混淆,后续图片中的源码,均是对混淆代码进行一定优化后截取的。
4.png
(混淆后的SWF1代码)
诱饵文档中嵌入了一个在线swf对象,当打开带漏洞的excel表格时,会加载“Movie”字段所指向的在线Flash文件,这里取名为SWF1。
Excel会将FlashVars指向的文本会以参数的形式传递给SWF1,这里存放的是漏洞利用样本(SWF2文件) 和 ShellCode等URL信息,分别被标记为了stabUrl、encKeyUrl、downloadUrl、imageUrl。
6.png
(SWF1运行时取参数)
SWF1运行后,会以post方式从参数encKeyUrl 指向的WEB服务器得到解密key及加密的swf。使用aes算法解密后,得到漏洞swf文件,取名为SWF2。
7.png
(SWF1以post方式下载加密的SWF2)
8.png
(SWF1使用aes解密SWF2)
SWF1通过LoadBytes将解密后的漏洞利用文件SWF2加载执行,并将downloadUrl等参数传给SWF2。
9.png
(SWF1加载SWF2)
3. SWF2(0day漏洞)行为分析
CVE-2018-5002是由于Flash未能正确处理包含特殊字节码序列的SWF文件时产生的栈越界读写漏洞。该漏洞同之前的CVE-2017-11292类似,都需要修改SWF文件的字节码来触发漏洞。同时该漏洞的利用只需要简单的内存布局,不需要复杂的堆喷,一个样本同时在32位和64位系统中稳定运行。
1) 漏洞原理分析
a. 漏洞代码
ASC2(ActionScript 2)引入了一组用于快速操作内存的函数,如li8, si8等等。该组函数的具体含义如下:
1.jpg
样本代码经过了恶意混淆,下面是清除混淆后的触发漏洞代码。
2.png
其中包含li8的静态初始化(Static Initializer)代码并没有被完全反编译,下图是根据其字节码得出的伪码:
3.png
实际调试发现,执行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块。
Flash在创建domainMemory时,会为其初始化一个大小为0×400的内存。
4.jpg
Flash在执行li8(123456)指令时,首先会检查偏移123456是否超过了domainMemory的大小。由于偏移123456超过了domainMemory的范围0-1023,所以Flash会抛出一个Range Error的异常,如下图所示,其中0×34为li8的字节码0×35 – 1。
5.png
在执行该段代码前,previous_bytecode_offset被初始化为0。此后一共执行了三个字节码,分别是:jump,push,li8,这三个字节码的执行都没有保存当前执行的位置到previous_bytecode_offset。
这样Flash在处理li8字节码触发的异常时,认为异常发生的位置为0,接下来FindExceptionHandler函数根据异常发生的位置查找对应的异常处理函数,由于异常位置0位于当前的Try块内,FindExceptionHandler函数就认为该异常应该交给当前的catch块来处理。
下图就是调试该过程的截图,FindExceptionHandler的第二个参数就是出现异常的偏移即previous_bytecode_offset,值为0。
6.png
c. 栈越界读写
栈越界读写主要是通过绕过Flash对Catch代码块的检查(Verify)实现的。
Flash在对Try代码块进行检查时,发现当前代码块只有一条jump指令,而jump指令不会抛出异常。
7.png
同时,由于jump目标区域的字节码序列不在Try代码块内, Flash AVM认为整段代码不会发生异常,对应的catch代码不会被执行到,所以略过了对catch代码块的检查,从而可以在catch代码块内实现越界读写。
8.png
越界读写前:
9.png
触发越界读写,交换local_448和local_449:
10.png
2) 行为分析
SWF2运行后会从downloadUrl指向的WEB服务器下载加密的数据,以得到shellcode。
10.png
(SWF2 取shellcode下载链接)
11.png
(SWF2下载shellcode)
取加密数据的前16个字节作为解密的Key,通过AES解密ShellCode。
12.png
(SWF2解压缩并执行shellcode)
再借助0day漏洞将shellcode执行起来。由于ShellCode服务器已经关闭,已经无法获取ShellCode的具体内容。
13.png
(执行32位或64位shellcode)
14.png
(执行shellcode)
0×3 总结
该APT组织使用0day漏洞攻击政府相关部门,利用纯shellcode在宿主进程excel中干坏事。而这种0day漏洞加纯shellcode的攻击方式对安全软件的检测和防护能力是一个挑战。
腾讯御见威胁情报中心判断在此0day漏洞利用方法未被广泛传播之前,该漏洞仍将主要被技术实力强劲的APT组织所掌握。而鉴于Adobe Flash Player几乎安装在每一台电脑上,且有大量用户未能及时修补安全漏洞,当该漏洞的利用方法被病毒木马黑色产业掌握时,或将会带来大面积的网页挂马威胁。
腾讯安全专家提醒政府机关、相关企业用户切勿随意打开来历不明的文档,安装安全软件防御攻击。此外,及时升级Adobe Flash Player到最新版本(30.0.0.113)以防御可能的漏洞攻击威胁,下载地址:https://get.adobe.com/cn/flashplayer/
目前,腾讯御界高级威胁检测系统已经可以检测并阻断该轮攻击的连接行为。企业用户通过部署御界高级威胁检测系统,可以及时感知恶意流量,检测钓鱼网址和远控服务器地址在企业网络中的访问情况,保护企业网络安全。(详情见链接https://s.tencent.com/product/gjwxjc/index.html)
15.png
附录(IOCs):
16.png17.png
*本文作者:腾讯电脑管家,转载请注明来自FreeBuf.COM
腾讯电脑管家
腾讯电脑管家
142 篇文章
等级: 8级
||
上一篇:CVE-2018-8174 “双杀”0day漏洞复现下一篇:黑客利用病毒挖门罗币,已获利60余万
发表评论已有 5 条评论
MalwareSeizer (1级) 2018-06-09回复 1楼
MD5为什么要马赛克?
亮了(2)
疼杨天下 2018-06-09回复 2楼
鬼鬼,现在 IOC 都要打码了吗……
亮了(3)
孙家 2018-06-09回复
@ 疼杨天下 疼痒集团滚出克!
亮了(2)
路人丁 2018-06-09回复 3楼
各位达人,大佬,小白请教下,我想用Openresty_For_Windows(nginx windows版)反向代理目标机所有http流量(在html中插入js),如何写配置文件conf? :)
亮了(0)
jimoyong (5级) 2018-06-12回复 4楼
你上面都写了basic_salary,为什么底下还打码?
亮了(1)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
腾讯电脑管家
腾讯电脑管家认证厂商
腾讯电脑管家官方账号
142
文章数
1
评论数
最近文章
KoiMiner挖矿木马变种入侵,超5000台SQL Server服务器被控制
2018.11.18
暗网非法数据交易是隐私信息安全的重大威胁
2018.11.15
流氓软件Playbox安装目录一式两份 刻意欺负非一线城市网民
2018.11.14
浏览更多
相关阅读
0day第三弹:又一个Flash严重漏洞曝光Adobe Flash Player漏洞(CVE-2016-4117)样本分析Wiki.Debian.Org服务器被黑客使用0day攻陷深夜话题:这十二行代码是如何让浏览器爆炸的?ecshop最新注入0day分析报告
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论