密室内的枪声!“双枪2”感染过程实录

 

前言

去年7月,360安全中心曾率先曝光国内首例连环感染MBR(磁盘主引导记录)和VBR(卷引导记录)的顽固木马——“双枪”。(http://www.freebuf.com/articles/web/140113.html)今年3月初,360安全中心发现“双枪”新变种开始出没,并从其感染行为入手,进行了一次全面分析。

与此前爆发的“双枪”木马类似,“双枪2”是以篡改电脑主页为目的,其感染迹象是浏览器主页被篡改为带有“33845”编号的网址导航站。同样地,“双枪2”使用了VBR、MBR驱动进行相互保护,查杀难度碾压“鬼影”“暗云”等顽固木马创新高。

与此前不同的是,新变种“双枪2” 主要通过下载站进行传播,它增加了与杀软的对抗策略,会拦截杀软文件创建;同时,还会通过锁定系统注册表HIVE文件,导致正常的服务项无法写入,犹如设置了封闭的案发环境,对中招电脑进行了一次“密室枪杀”。

以下是对“双枪2”感染过程的详细分析。

 

安装包过程

初始化配置

用户提供的样本安装包,安装包是带渠道号的,运行这个安装包后就会从网上下载一个DLL文件内存执行,下面是下载DLL文件并内存加载执行的流程:

安装包入口函数:

该函数主要为获取ChannelId 并且设置上:

从文件名中获取:

而后设置到注册表中,后续服务器通信,打点回传都会用到该数据。

设置上:

而后调用下载DLL的函数:

读取解析服务配置

格式化通信数据:

而后加密数据发送给服务器:

然后下载解析服务器返回的配置文件,服务器有判断客户端IP的,测试北京的IP返回空数据:

解析配置文件:

下载加载释放驱动模块

获取到配置中下载URL后,下载对应的DLL文件:

下载好后 计算下md5 跟配置文件中是否一致

相同后解密数据加载:

如果不是PE头,则异或解密:

修正导入表函数并且调用:

分配空间:

调用入口点函数:

而后调用导出函数DllUpdate:

 

释放安装驱动模块

环境检测

该模块为一个DLL主要导出一个功能函数DllUpdate。

函数入口处先进行打点统计将统计数据打到服务器。

该函数被调用了很多次,几乎每个关键的步骤都有打点统计

我们看下这个函数:

服务器地址为:

而后发送请求:

打点后,会对当前环境进行多次判定,决定而后否加载驱动:

判断是否支持的文件系统和对应驱动文件是否完整,区分当前系统X86还是X64:

其中IsWow64Process 为全局构造函数中初始化的:

判断文件系统对应文件完整性:

而后判断系统目录下配置文件是否存在:

而后检测自身驱动是否已经加载,通过判断设备名是否存在。

获取Nt基地址模块大小为生成随机设备名做准备:

生成设备名:

判断设备名存在:

然后检测是否在虚拟机中运行, 这次主要是检测磁盘类型:

检测方法:

下载安装恶意驱动

主要是从服务器下载驱动文件

区分32和64位系统 。

获取渠道号:

以安装包_后面带_或者.后面的数字作为推广渠道号:

初始化校验Key方法:

然后下载驱动文件:

下载:

下载好后校验下文件:

然后初始化驱动安装加载系统函数相关代码:

获取当前时间,并以这个计算随机驱动 文件名:

获取随机驱动名:

然后在安装驱动之前再检测下环境:

检测这些工具:

检测完成后,开始安装驱动,以32,64系统分别安装:

我们看下X86安装下函数:

首先提权:

然后写人驱动文件:

每次0x2000个字节,循环写入:

然后写入服务项:

加载驱动:

在完成驱动加载功能后,该模块还带有接受服务器指令,统计上传客户端信息,并执行恶意代码能力:

内存加载执行功能:

 

加载执行DLL:

收集用户网卡MAC机器PCID各种信息:

统计用户机器上私服相关驱动:

统计杀软信息:

检测是否运行在VMVare中:

 

总结

针对MBR和VBR系列木马泛滥的情况,360首创了针对此类顽固木马的强力查杀技术,并且能够同时自动检测和修复MBR及VBR,发现电脑浏览器主页被反复篡改无法恢复、或出现卡慢等情况时,可使用360安全卫士进行扫描查杀,彻底清除该木马。

360安全中心在此也提醒大家,尽量不要下载来历不明的软件安装,更不要轻易关闭杀软,给恶意木马可趁之机。目前,360安全中心也正在对“双枪2”木马进行持续追踪,如有新成果将第一时间与大家分享。

(完)