前言
去年7月,360安全中心曾率先曝光国内首例连环感染MBR(磁盘主引导记录)和VBR(卷引导记录)的顽固木马——“双枪”。月初,360安全中心发现“双枪”新变种开始出没,并从其感染行为入手,进行了一次全面分析。
与此前爆发的“双枪”木马类似,“双枪2”是以篡改电脑主页为目的,其感染迹象是浏览器主页被篡改为带有“33845”编号的网址导航站。同样地,“双枪2”使用了VBR、MBR驱动进行相互保护,查杀难度碾压“鬼影”“暗云”等顽固木马创新高。
与此前不同的是,新变种“双枪2” 主要通过下载站进行传播,它增加了与杀软的对抗策略,会拦截杀软文件创建;同时,还会通过锁定系统注册表HIVE文件,导致正常的服务项无法写入,犹如设置了封闭的案发环境,对中招电脑进行了一次“密室枪杀”。
以下是对“双枪2”感染过程的详细分析。
1 安装包过程
1.1初始化配置
用户提供的样本安装包,安装包是带渠道号的,运行这个安装包后就会从网上下载一个DLL文件内存执行,下面是下载DLL文件并内存加载执行的流程:
安装包入口函数:
图1
该函数主要为获取ChannelId 并且设置上:
图2
从文件名中获取:
图3
而后设置到注册表中,后续服务器通信,打点回传都会用到该数据。
图4
设置上:
图5
而后调用下载DLL的函数:
图6
1.2读取解析服务配置
格式化通信数据:
图7
而后加密数据发送给服务器:
图8
然后下载解析服务器返回的配置文件,服务器有判断客户端IP的,测试北京的IP返回空数据:
图9
解析配置文件:
图10
1.3下载加载释放驱动模块
获取到配置中下载URL后,下载对应的DLL文件:
图11
下载好后 计算下md5 跟配置文件中是否一致
图12
相同后解密数据加载:
图13
如果不是PE头,则异或解密:
图14
修正导入表函数并且调用:
图15
图16
分配空间:
图17
调用入口点函数:
图18
而后调用导出函数DllUpdate:
图19
2 释放安装驱动模块
2.1 环境检测
该模块为一个DLL主要导出一个功能函数DllUpdate。
函数入口处先进行打点统计将统计数据打到服务器。
该函数被调用了很多次,几乎每个关键的步骤都有打点统计
我们看下这个函数:
图20
服务器地址为:
图21
而后发送请求:
图22
打点后,会对当前环境进行多次判定,决定而后否加载驱动:
图23
判断是否支持的文件系统和对应驱动文件是否完整,区分当前系统X86还是X64:
图24
其中IsWow64Process 为全局构造函数中初始化的:
图25
判断文件系统对应文件完整性:
图26
而后判断系统目录下配置文件是否存在:
图27
而后检测自身驱动是否已经加载,通过判断设备名是否存在。
图28
获取Nt基地址模块大小为生成随机设备名做准备:
图29
生成设备名:
图30
判断设备名存在:
图31
然后检测是否在虚拟机中运行, 这次主要是检测磁盘类型:
图32
检测方法:
图33
2.2 下载安装恶意驱动
主要是从服务器下载驱动文件
区分32和64位系统 。
图34
获取渠道号:
图35
以安装包_后面带_或者.后面的数字作为推广渠道号:
图36
初始化校验Key方法:
图37
然后下载驱动文件:
图38
下载:
图39
下载好后校验下文件:
图40
然后初始化驱动安装加载系统函数相关代码:
图41
获取当前时间,并以这个计算随机驱动 文件名:
图42
获取随机驱动名:
图43
然后在安装驱动之前再检测下环境:
图44
检测这些工具:
图45
检测完成后,开始安装驱动,以32,64系统分别安装:
图46
我们看下X86安装下函数:
图47
首先提权:
图48
然后写人驱动文件:
图49
每次0x2000个字节,循环写入:
图50
然后写入服务项:
图51
图52
加载驱动:
图53
在完成驱动加载功能后,该模块还带有接受服务器指令,统计上传客户端信息,并执行恶意代码能力:
内存加载执行功能:
图54
图55
图56
加载执行DLL:
图57
收集用户网卡MAC机器PCID各种信息:
图58
统计用户机器上私服相关驱动:
图59
统计杀软信息:
图60
检测是否运行在VMVare中:
图61
总结
针对MBR和VBR系列木马泛滥的情况,360首创了针对此类顽固木马的强力查杀技术,并且能够同时自动检测和修复MBR及VBR,发现电脑浏览器主页被反复篡改无法恢复、或出现卡慢等情况时,可使用360安全卫士进行扫描查杀,彻底清除该木马。
360安全中心在此也提醒大家,尽量不要下载来历不明的软件安装,更不要轻易关闭杀软,给恶意木马可趁之机。目前,360安全中心也正在对“双枪2”木马进行持续追踪,如有新成果将第一时间与大家分享。