2016年以来以Locky为代表的勒索软件利用Office宏,js脚本等方式肆意传播,近期360安全中心监测到出现了以wsf格式文件传播的新型传播方式,本文360QEX引擎团队会针对此新型传播方式进行详细的分析。wsf格式文件是windows脚本文件(windows script file)的简称,一个wsf文件中不仅可以同时包含js和vbs脚本,而且可以包含Perl,Object REXX 等脚本,因此它可以作为一个脚本容器。
通过近期的观察,发现近期流行的wsf格式文件主要以内嵌js文件为主,此种格式文件主要通过以下两种方式进行敲诈者病毒传播:将敲诈者病毒内嵌到wsf文件中,然后运行释放出敲诈者病毒的方式;将wsf文件作为下载器,然后从远程下载运行敲诈者病毒的方式。
我们将这两种方式分别简称为内嵌释放方式和下载器方式,下面分别对这两种方式进行详细的分析解释。
0x01 内嵌释放方式
通过内嵌释放方式传播的样本将pe文件内容存放到脚本的一个变量之中,然后通过对此变量的操作将pe文件释放到用户的电脑中。
下面就结合样本1对此传播方式进行分析,样本信息如下所示。
样本文件
md5: 14ccd0ca163af2ada8f1ce821bad2c5a
sha256: 058702d4746b6f8f5b5449b41c54bda782c5e90d418e7ce46b65bf74b0d2b1f0
图 1:样本1
此样本主要通过字符拆分的方式进行混淆,对字符进行拼接解密后的主要代码如图2所示。
样本将pe文件内容以base64编码方式存放到变量v_bin中,pe文件的保存路径为环境变量TEMP目录,文件名为一个随机生成值jP0imKulZoR,后缀名为“.exe”。
样本首先通过函数JSb将v_bin变量内容以文本的方式保存到本地,为求简单文件保存路径是在将要保存的pe文件路径基础上加上后缀名“.bin”。然后通过函数JGr4对上一步骤所产生的临时文件进行操作。此函数首先以ASCII格式打开文件,然后利用MSXml2.DOMDocument对读取的base64编码内容进行解码,最后利用ADODB.Stream将解码后的内容以二进制的方式保存到本地。最后样本会利用WScript.Shell运行此pe文件,pe文件的运行参数为“321”。
图 2:解密后的样本1
针对此类样本,目前360杀毒已经支持查杀,扫描结果如图3所示。
图 3:360杀毒扫描结果
0x02 下载器方式
通过下载器方式传播是将wsf脚本文件当作一个下载器,然后通过此下载器从黑客的远程服务器上下载并本地执行真正的敲诈者病毒。
下面就结合样本2对此传播方式进行分析,样本信息如下所示。
样本文件md5: 14ccd0ca163af2ada8f1ce821bad2c5a
sha256: 025309a768d4aacf9a2515beafa08418fe8483a37dc06535e8ec63db22493b5a
virustotal 扫描结果:
图 4:样本2的vt扫描结果
通过vt扫描结果可以看出,目前只有6家安全厂商对其支持查杀,说明此样本在某些方面必定有它的神奇之处,下面就让我们一起揭开它的神秘面纱。
图 5:样本2
分析此样本可以看出,它将真正要执行的代码放到一个变量aXTv9中,然后使用eval函数对代码进行混淆,对文件进行解密并进行整理可以得到如图6所示结果。
图 6:解密后的样本2
分析解密后的样本,可以看到为了能够确保病毒下载到用户的电脑中,病毒作者真的是一番别有用心啊。为了防止单个链接的失效,样本首先将要下载的pe文件内容存放到三个不同的url中(见第1行代码No变量的定义);然后采用轮询的方式对三个url依次尝试下载(见代码第15行);为了预防出现网络环境不稳定的情况,它对网络请求返回状态进行判断,如果出现异常则sleep 100毫秒后继续下一次循环下载(见代码第18-20行)。
为了确保用户电脑中下载的是完整的敲诈者病毒,样本还对pe文件进行了信息校验,此功能通过函数YPg4和XPz5完成。
图 7:YPg4函数
由于要读取二进制文件,所以样本利用了ADODB.Stream对象,并使用437编码方式打开文件,然后在Fw函数中对字符的编码进行相应的转换。
图 8:XPz5函数
然后样本通过XPz5函数对获取的数据进行变换,数据校验和提取真正的敲诈者病毒。它首先将从远程获取数据的每个字节与189进行按位异或操作,然后利用所获取数据的最后4个字节对pe文件进行校验,也就是说文件的最后四个字节并不是真正pe文件内容,而是一些附加的信息。
到此病毒作者好像还是担心下载到的敲诈者病毒出现文件大小不正确,或者文件头信息被破坏而出现的病毒无法运行的情况。因此他对文件的大小和pe文件头进行了判断(见图6第33行),如果文件大小小于100Kb,或者大于230Kb,或者文件的前两个字节不是0x4D和0X5A,则进行下一次循环。pe文件头检测被封装到了函数OFu5中,函数如图11所示。
图 9:PE文件头判断
图 10:使用cc_on编译条件免杀
在此类样本中,为了增加杀毒软件查杀的难度,有些病毒作者还引入了/*@cc_on @*/条件编译,病毒核心的代码被放入到了此编译条件中,如果杀毒软件对此类情况缺少处理,则很容易实现反查杀的目的,样本如图10所示。
0x03 总结
以加密勒索为代表的病毒,由于经济上的利益驱动,不但病毒的进化速度越来越快,而且传播的方式也不断更新,因此用户一定要提高安全防范意识,对未知的邮件和文件不要贸然打开,并安装安全产品软件。针对此类样本,QEX(非PE病毒查杀引擎)通过虚拟执行有效查杀该病毒家族及其变种,360安全卫士、360杀毒等360安全产品中都已提供了QEX引擎,请用户及时安装使用。
0x04 Reference
https://msdn.microsoft.com/library/15x4407c(v=VS.84).aspx
http://bobao.360.cn/learning/detail/2827.html
http://bobao.360.cn/learning/detail/2880.html
http://bobao.360.cn/news/detail/3302.html
还没有评论,来说两句吧...