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

CVE-2018-15982漏洞详细分析

来源:未知 作者:wnhack 时间:2019-01-08 14:04 点击: 我要投稿
好久没分析漏洞了,趁着最近Flash 0day的热度再来玩一波。
0x1 提取内嵌swf
拿到的样本是个docx文档,解压后发现内嵌有一个activeX控件,根据控件的classid能够判断出是一个Flash动画相关:

分析activeX1.bin文件,在其偏移0xa08位置发现了flash动画文件的标志头:

直接将该位置到文件尾部的数据截取下来,然后用010edit的swf文件模版修正一下格式去掉多余数据后可以提取出被插入的原swf文件:

0x2 样本攻击流程分析
攻击样本是个docx文档,一开始可能会以为是利用的office漏洞,其实从上文的分析也能看出实际是利用flash漏洞,文档打开并不会自动运行,需要诱导选择播放flash漏洞后才能触发。

仔细分析后才知道作者是在页眉处插入了上文提取出来的swf文件:

这里啰嗦一下如何在word文档中插入这类动画,首先在开发工具中点击插入其他类型的控件,然后选择“Shockwave Flash Object”类型:

插入控件后右键设置一下属性,主要将其中“EmbedMovie”(内嵌影像)设置为True,并指定一下要插入的swf动画文件路径保存即可。

然后只要受害者打开word文档后选择播放动画就会运行swf漏洞文件,之后的任务主要由该文件独立来完成,当然该文件最终的功能是执行两条CMD命令来运行外部程序(攻击时打包在同一个压缩包里):

其实Flash漏洞与浏览器组合更经典,直接打开url链接就能中招:

0x3 Flash调试环境配置
近些年来Flash漏洞频繁爆出,主要和其产品Flash Player有关,swf文件正是该产品使用的动画载体文件,和PE文件类似,这种文件也是将动画脚本(Action Script,一种类似java的脚本语言,目前发展到版本3,简称AS3)编译成二进制,然后供Flash Player引擎解析执行。既然是编译的,也就能够反汇编和反编译,本文直接使用一款工具“AS3 Sorcerer”对swf漏洞文件进行反编译,可以看到该swf程序没有进行代码混淆,反编译出来的代码和源码非常接近,这使得分析工作相对轻松了不少。

既然伪源码都出来了,那我们当然希望能够直接通过该代码来从源码级别分析这个漏洞,因此需要先搭建一下Flash的编译和调试环境,本小节主要介绍一下大概的安装配置步骤,已熟悉的可直接跳过到下一章节。
首先,贴出Flash开发环境的官方链接。
引导页:https://www.adobe.com/devnet/air/articles/getting_started_air_as.html
产品:https://helpx.adobe.com/cn/download-install/kb/creative-cloud-apps-download.html
Flash Player:https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
Air SDK下载:https://helpx.adobe.com/air/kb/archived-air-sdk-version.html
AS文档:https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html
编译Flash动画一般使用两种软件:Adobe Flash Builder或Adobe Flash Professional,本文主要介绍的是第一种。从上述产品链接中找到Flash Builder下载安装,windows平台分32位和64位版本。

安装过程需要注册,具体可自行网上找按照教程,嘿嘿~
安装完成后,主要还需要搭配一下Flash Player和Air SDK的版本,让IDE可对指定版本Flash文件进行调试,也能支持编译指定版本的Flash文件。
先说Air SDK吧,下载指定版本的SDK(SDK and Compiler)后,分别在安装目录下的“sdks\4.6.0”(最新)和“\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK”这两个目录解压覆盖SDK包即可。
(责任编辑:wnhack)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。