- A+
近年来兴起的Exploit Kit(简称EK)集合了各种漏洞利用工具,可对多种文件格式进行自动化分析、漏洞利用测试。比较有名的EK有Blackhole EK,Phoenix EK,Nuclear EK等。
最近我们收到Nuclear EK的新样本,随后在VT上对该样本进行了检测,结果如图所示:
发现只有5家安全厂商检出,所以我们做了进一步分析。
Flash文件分析
文件基本信息
注:
SWF文件的文件头由一个三字节的标识开始,该标识是以下其中一个: •0x46 ,0x57, 0x53(“FWS”):FWS标识表明这是一个未压缩的SWF文件 •0x43, 0x57, 0x53(“CWS”):CWS标识表明整个SWF文件在第一个8字节之后,也就是在“文件长度”域之后,使用ZLIB开放标准进行了压缩。CWS文件压缩只允许出现在SWF 6以及之后的版本。 •0x5a, 0x57, 0x53(“ZWS”):ZWS标识表明整个SWF文件在第一个8字节之后,也就是在“文件长度”域之后,使用LZMA开放标准进行了压缩。ZWS文件压缩只允许出现在SWF 13以及之后的版本。
通过对文件进行格式解析,发现该文件使用数据混淆、加密,采用脚本加载执行的方式。脚本信息:
文件解密过程
Brhd5443d脚本负责整体执行与调度,通过AX3脚本中的retustr()进行解密,AX3文件关键部分内容:
AX3 脚本文件主要用来函数混淆、数据混淆、KEY混淆,调用者通过向该函数传递不同数值获取到不同内容。采用的混淆方法是在具体内容中随机地加入随机数字(0-9)、符号(.),使人不容易辨认具体函数与数据内容。
在本脚本中分别解密了数值为1、2、3、6的函数,解密后函数loadBytes、addChild 、removeEventListener、fgghtdrsegfgf,其中6为后续解密数据中的KEY,内容为fgghtdrsegfgf;而后调用AX2脚本对数据进行解密。AX2脚本关键解密内容如图:
AX2的解密过程:
·在该函数中调用AX1中的fserggsgg函数进行Base64解码。AX1中调用了AX3脚本文件解密出了混淆的数据内容,序号为7 ·AX2根据传入的KEY对加密内容进行解密,通过对KEY的每一位与加密内容的每一位进行异或,当KEY为最后一位时从KEY的第一位重新算起,直到解密完成。
解密后的文件是一个SWF格式文件。具体分析如下:
文件基本信息
通过对该文件格式进行解析,发现采用的是脚本加载方式,脚本内容如表所示:
文件解密过程
aaaa脚本文件存放了溢出格式代码,该代码同样适用混淆,内容如下:
经过去混淆后得2,425 字节如下代码:
从该图可以基本判定该样本是利用漏洞 CVE-2014-0515进行传播。
结论
Nuclear EK采用异常精密复杂的攻击方式,对Flash漏洞进行利用,并且具有高度混淆代码的特点。
通过该样本,我们还发现另外一件有趣的事情,该漏洞在溢出成功后,会下载Botnet恶意文件,进一步收集信息发现该botnet是很有名的Kelihos(也称HLUX)。Kelihos的传播过程也挺有趣,具体传播流程:
受害者在访 问挂马服务器后会被多次重 定向跳转到一台存在 Nuclear EK 的服务站点,之后在访问恶意页面时,页面中的Flash文件均会被存储到受害者的机器上,其中就包括特定的swf文件。当该文件 成功溢出后,受害者机器会下载Kelihos恶意文件。
关于Kelihos恶意文件,我们提取了YARA检测规则,未进行深入分析,若诸君有意,可自行分析。
Kelihos YARA规则如下:
import"pe" rule Trojan_Win32_Hlux { meta: copyright = "WarHead.Team" description ="Trojan[Backdoor]/Win32.Hlux" version = "1.0" last_modified = "2015-03-19" strings: $a={74 29 81 7D F0 55 55 55 15 75 20 33 C040 6B C0 00 8B 0D E8 A1 41 00 8D 84 01 50 34 41 00 A3 E8 A1 41 00 8B 0D E8 A141 00 FF E1 6A 64} condition: $a at pe.entry_point - 0x1083 }
通过对Flash可疑样本的分析,我们似乎嗅到了暴风骤雨的味道。但它到底会产生什么样的动态,还需要大家斟酌关注一下。
[作者/WarHead.Team,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)]