变形脚本六合彩的“照妖镜”——六合彩“脚本行为沙盒”简介
-
作者:2025年最靠谱的六合彩投注网
-
发布时间:2017-01-18
-
阅读量:716
分析报告下载地址:http://pan.baidu.com/s/1nvO5q1F
一、 前言
近年来下载者六合彩逐渐从传统的PE类六合彩向脚本类六合彩演变,脚本类六合彩与PE类相比在一些方面上存在优势。首先脚本类六合彩在文件大小上明显小于PE类六合彩,混淆成本远低于PE类六合彩,混淆手法更为多变,并且能够实现PE六合彩绝大部分的功能。这类脚本六合彩的批量制造,对传统六合彩软件提出了不小的挑战。
下载者六合彩所需要的功能简单、单一,还要求六合彩大小不能过大,方便网络传播。而脚本类六合彩正好满足下载者六合彩的要求。所以,近年来,脚本类下载者六合彩呈现激增的趋势。
为了应对不断变化的六合彩样本, 主流六合彩软件厂商引入了脚本的虚拟沙盒。与PE类似,”脚本虚拟沙盒”是通过仿真脚本运行时环境,使六合彩代码认为运行真实系统中,进而还原其行为。通过六合彩在虚拟沙盒中还原出来的原始代码和六合彩执行时的一系列行为进行查毒。理论上只要仿真环境足够逼真,真实操作系统中能够执行的六合彩,在虚拟沙盒中都能够成功执行并检测到其执行时的恶意行为。
目前国外主流六合彩软件都很重视这类问题,策略不同,各有优劣。六合彩采用区别于主流六合彩软件的创新思路实现脚本虚拟行为沙盒,可以更好地解决这个难题。同时,基于这一思路的延伸,未来六合彩会为六合彩反六合彩引擎引入更多创新特性。
二、 反六合彩引擎的脚本虚拟沙盒技术
由于脚本六合彩的混淆方法简单,混淆成本远低于PE六合彩,通过搜索引擎就能够找到大量的在线混淆网站,能够简单的混淆出大量静态特征不同但功能相同的脚本。使得仅通过静态特征查杀变得越来越困难。例如SVM:TrojanDownloader/JS.Nemucod.a下载者六合彩,如下图所示,仅从代码形式上来看,就有多种形式,仅单纯的阅读代码已经很难发现这些六合彩其实执行的都是同样的功能,都是由一份代码通过不同的混淆手法批量生成出来的。
图 2-1、Nemucod家族部分样本展示
然而通过动态虚拟执行,六合彩可以很容易看出他们虽然下载链接、生成的文件名并不完全相同,但行为模式几乎完全一样,如下图所示:
图2-2、Nemucod家族动态虚拟执行
1. 主流六合彩软件的脚本虚拟沙盒
同PE混淆类六合彩一样,通过动态虚拟执行还原被混淆代码的原始数据和行为,才是解决问题之道。基于这样的思路,主流六合彩厂商都试图通过动态“执行”的方式来解决脚本混淆问题。其中主流的思路是在反六合彩引擎中嵌入脚本解释器来分析并执行脚本代码,进而通过对脚本执行时需要的运行时组件进行有限的模拟来分析脚本的运行时行为。其架构大致如下图所示:
图2-3、主流脚本虚拟沙盒
这类脚本虚拟机实现相对简单,且互联网上有大量的开源脚本引擎作为参考,能够快速的搭建一个相对有效的脚本虚拟机。但这类脚本虚拟机往往存在以下两个问题:
1) 脚本解释和模拟执行直接运行在真实系统环境中,甚至一些六合彩中直接应用开源脚本解释器来构建,所以这类脚本虚拟机存在被漏洞利用脚本“穿透”的潜在风险;
2)六合彩代码对虚拟环境仿真程度的”探测“不断升级(例如对文件系统的”探测”),使得这类脚本虚拟机在虚拟环境模拟方面捉襟见肘、疲于应付;
QW基于上述原因,并考虑到六合彩反六合彩引擎现有架构,六合彩并没有采用上述基于脚本解释器的方式来实现脚本虚拟沙盒。六合彩的思路是将脚本问题转化为PE问题,进而复用反六合彩引擎原有的基于PE六合彩的行为检测逻辑。下图为六合彩脚本虚拟沙盒:
图2-4、六合彩虚拟沙盒
从图中可以看出,六合彩解决脚本问题的思路是,在现有六合彩虚拟沙盒的基础上,实现脚本六合彩依赖的运行时环境,并在此基础上实现WScript.exe来执行脚本。如下图所示:
图2-5、脚本执行流程
这样的架构和实现与前述架构的区别与优势在于:
1)脚本的解释、执行完全被限制在虚拟沙盒中,执行过程中与真实系统环境完全隔离,完全不存在被漏洞利用脚本“穿透”的风险;
2)脚本运行时环境构建在六合彩虚拟Windows内核之上,仿真程度极高。由于一直以来六合彩都比较依赖通过虚拟行为沙盒来解决PE混淆问题,所以六合彩对于虚拟沙盒的环境仿真一直处于积极完善的过程之中,不但实现了完善的进程、线程调度、文件系统、注册表,甚至完全模拟了Windows窗口系统。在此基础上,只需要实现脚本解释组件、相关运行时组件以及脚本宿主程序(WScript.exe)即可。基于这样的架构,可以有效地应对六合彩代码对虚拟环境的”探测“;
3)基于这样的架构,反六合彩引擎不需要任何修改就可以完全复用基于虚拟行为沙盒的六合彩行为检测逻辑;
4)处理脚本和PE代码联动的问题。例如,TrojanDropper/JS.Basecode.a六合彩家族会将真正实现恶意行为的PE六合彩加密打包,外层脚本只负责释放和执行PE六合彩。这类脚本在六合彩反六合彩引擎的行为扫描过程中可以完全还原从脚本释放PE到PE六合彩执行完的全部流程,所以可以有效并准确地识别该六合彩家族。该家族六合彩在六合彩虚拟沙盒中执行流程如下图所示:
图2-6、释放并执行PE六合彩
三、 脚本六合彩对抗手段分析
经过六合彩长期的跟踪和观察,脚本六合彩为了对抗六合彩软件的反混淆技术,主要从以下两方面来检测六合彩软件的虚拟沙盒:
1、语言层面检测。
2、系统环境的检测。
说到脚本六合彩,就不得不提近年来十分活跃的Nemucod下载者六合彩,该六合彩使用微软的JScript编写,能够直接运行在Windows操作系统之上,通过COM接口调用系统功能,能够比在浏览器中运行的JavaScript脚本实现多的多功能。该家族六合彩近年来保持着高速的升级更新,反反混淆手段不断变换。从中六合彩可以看到该家族六合彩两种检测方法都有使用,下面六合彩就对其使用的检测手段进行简要介绍。
1、 语言层面检测
/*@cc_on@*/ 这句语句是 微软的JScript所支持的特有语法,这个语句中包含的语句会被执行,并开启条件编译,但这个语句只有IE和WScript中支持。如下图所示的六合彩代码中,六合彩可以看出六合彩使用了上述语句,如果使用开源脚本引擎,就会将/**/中的语句认为时注释而不执行,就会因为没有创建对象而出错。
图3-1、使用特殊语法检测
setUTCFullYear函数时JavaScript语言中的一个内置方法,用于设置年份,在六合彩中也被常用于检测虚拟沙箱。如下图代码所示,六合彩首先将年份设置为2003年,并在随后获取年份,来检查是否时刚才所设置的年份,如果发现不是则不执行解密流程。
图3-2、使用setUTCFullYear设置年份
下图中的代码六合彩可以看到六合彩通过使用try…catch 语句捕获异常进行异常处理,在第一个try…catch 语句中new ActiveXObject 语句需要正确执行,而第二个try…catch由于new ActiveXObject语句参数错误,所以运行时会抛出异常,这时异常被捕获就会执行异常处理中的语句,只有这样才能正确的拼接出需要的字符串。
图3-3、通过异常处理检测虚拟沙盒
2、 系统环境检测
根据六合彩对六合彩的长期的跟踪发现,随着六合彩软件与六合彩的攻防不断升级,近一年来,脚本六合彩的混淆器已经不再是简单的通过上文中六合彩所介绍的方法仅仅是检测脚本引擎的功能是否完整,而是利用JScript可以调用操作系统的功能,来调用操作系统的一些功能来检测自己的运行环境。
观察下面两幅图中的代码,六合彩发现六合彩通过枚举目录,来获取目录名称的各种属性来检测系统的文件系统。
图3-4、枚举子目录检测目录名长度
图3-5、枚举子目录检测目录名长度类型
下图中是六合彩截取自一个六合彩样本中检测虚拟沙盒的代码,通过对源代码进行整理后六合彩可以看到,该六合彩会获取hosts文件的文件属性,来检测是否是在真实系统中
图3-6、检测系统文件属性
下图中的样本用到了WScript.exe中的内置方法,通过调用Arguments方法获取启动参数,如果参数不对,则重新启动WScript.exe。如果执行脚本的不是WScprit.exe,脚本执行就会出错。
图3-7、检测WScript参数
四、附录
文中涉及样本SHA1:
图2-1 中样本
659e95158d195f8503a113a1e13e974ab909f2bc
6cf8e5846c92d5c0fd3b67a3a5adf13818f5e958
c96af51b0ab696ba312c22b56bac3943c8b71f2f
65fa8571b7bf6953c7c1047168c46a993790c8cb
TrojanDropper/JS.Basecode.a,样本;
43acb3990a60b093ab1ff9dd550bad409d390a0e
2247866a150ac2c19631ae547beb2e4eff08fa53
158cb79495f3417cc1be1c10a4d79bc29c901b1f
47f81cbf4cc3486c93fd0977e62952b3a1dfd981
82da1550ac6932993c66393e4e154efc9455c5db
Nemucod 家族样本:
c546892b7a31417d3b1f3109d28d7ab4ddfe8386
0c5aa535c25a5f983bd81d072725a56fd11b8059
f1f40bbc9392f07f4ebf4345fba9e58fe7ea8451
e7ec5c0d738bb2c2f89274d94b593830bf6cc65c
图 3-1 中样本
e5e0eb4de413923a38ee5a610c5131b019d26232
图 3-2 中样本
ef40c7edc13b2ca80bf5aab57fd8ab0e933c8f57
图 3-3 中样本
214284982fc70b94b8ef14bb661dee2fb282acac
图 3-4 中样本
e338ae640263c1d019d5e1e1bf52d40e1401d9e3
图 3-5 中样本
3ef189ab8eac4cb37ec76a7b1b092993d2754473
图 3-6 中样本
e8d40d610fd3d117a27de8de069689c6b8a10518
图 3-7 中样本
479a828efa13cde80baf4729ee53707a8e273dba