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















暂无评论内容