前言
去年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”木马进行持续追踪,如有新成果将第一时间与大家分享。