本帖最后由 360主动防御 于 2018-11-5 20:36 编辑
360安全中心于2017年7月发现首例连环感染MBR和VBR的顽固病毒木马,将其命名为“双枪”,在之后的一年多时间内,我们发现该病毒作者在频繁的更新病毒版本,增加盈利方式和对抗安全软件的能力,且病毒的传播渠道也在持续变化。下图是“双枪”病毒几次较大更新的时间线:
近期,我们发现最新版本的“双枪”木马(以下简称“双枪4”)在原有病毒模块基础上,增加了劫持电商网站的病毒模块。根据同源性分析,我们发现该病毒模块是友商披露的“贪狼”病毒的子模块,而根据两个家族病毒样本的调试信息我们发现,这两类木马应该出自同一病毒作者之手。
“双枪4”利用该病毒模块实现电商网站的流量劫持,我们根据此次病毒更新的时间点推测,病毒作者应该是想趁着“双十一购物狂欢节”期间狠赚一笔流量推广费,单一的首页锁定带来的利益已经无法满足病毒作者贪婪的欲望,他已将“双枪”的瞄准了更大的战场。
传播途径 “双枪4”病毒木马利用游戏外{过}{滤}挂在数码资源网,西西软件园,蜗牛娱乐网等多个下载站进行大量传播。以一款名为“逆战契约”的游戏外{过}{滤}挂为例,还原整个感染流程。在下载页面可以看到只需要将log.dll替换到逆战游戏目录下即可。而用户所不知的是,log.dll其实是一个木马释放器,用于释放后续病毒模块。病毒下载页面截图: log.dll被替换到逆战游戏目录下后,会随着逆战游戏的启动被LoadingOptimize.exe进程加载,释放出病毒文件orange.dll,并调用其导出函数StartEngine,该导出函数会根据当前计算系统位数释放相应的病毒驱动TexDriver.sys。TexDriver.sys会下载双枪驱动NtProtect.sys,进一步感染系统MBR和VBR,完整的感染流程,如下图所示:
如上图所示,MBR和VBR又会在系统启动阶段解密出病毒驱动NtBoot.sys去检测NtProtect.sys驱动,如果驱动服务异常,则会下载并修复病毒驱动,以此形成相互保护,使得双枪病毒的查杀异常困难。
样本分析 log.dll log.dll释放orange.dll到C:\windows目录下并调用其导出函数StartEngine,该函数从资源中释放TexDriver.sys并加载,病毒逻辑,如下图所示:
TexDriver.sys
“双枪4”对于安全分析的对抗做的更加成熟,除了使用VMProtect虚拟化壳保护自身外,还增加了虚拟机检测,内核调试检测,ComputerName检测等,且双枪病毒是由引导区加载,启动顺序在安全软件之前,使得以上检测更为有效,病毒行为更加隐蔽,更难被检测到。下图是TexDriver.sys执行流程,当检测到虚拟机,内核调试且ComputerName在病毒作者黑名单中时,就不会去执行病毒逻辑:
检测虚拟机逻辑如下:
检测ComputerName:
发送计算机信息:
下载并加载驱动:
NtProtect.sys
NtProtect.sys是双枪的核心模块,该模块会感染系统引导区,注入系统进程实现流量劫持,阻断安全软件联网等。驱动属性,如下图所示: 1, 感染引导区
引导区的感染主要分为三步,其中如果有任何环节出现问题,感染就会终止。感染主逻辑,如下图所示: 先将NtBoot.sys加密写入到磁盘末尾:
然后感染BootMgr+0x7A之后的数据:
被感染后的BootMgr分布如下图所示:
以上两个步骤都完成之后再感染MBR:
之后挂钩磁盘底层函数,保护引导区数据。过滤条件如下图所示:
2,注入系统进程
NtProtect.sys通过注册映像加载回调,将病毒动态库AppManage.dll注入到services.exe进程当中: 注入函数:
3, 阻断安全软件联网
通过注册fwp网络回调,阻断安全软件联网。代码逻辑,如下图所示: 其中FwpFilter主要过滤逻辑如下:
为避免明文字符串被杀毒软件查杀,病毒采用计算字符串hash的方式进行免杀,我们暴力破解了其中部分hash值,如下图所示:
除网络过滤之外,该驱动还会通过进程回调,映像加载回调patch部分安全软件模块入口点,阻止其正常加载,详细分析可以参考我们之前的报告《双枪2木马驱动分析》。
Bootkit分析 双枪bootkit部分代码随着系统启动顺序一路挂钩系统函数,以此获得执行机会,整体启动流程,如下图所示: 下面列出部分关键挂钩位置:
挂钩int 15中断: 挂钩BootMgràStartup.com中0x20873位置,挂钩函数0x9EDE8。
设置硬件断点,替换系统中断,硬件断点触发后执行0x9E09C位置的挂钩函数。
挂钩BootMgr!Archx86TransferTo32BitApplicationAsm函数。
Archx86TransferTo32BitApplicationAsm位置的挂钩函数被触发后病毒会进一步挂钩Winload.exe模块的OslArchTransferToKernel函数和OslpLoadAllModules函数。
挂钩Winload!OslArchTransferToKernel: 挂钩WinLoad!OslpLoadAllModules:
当系统执行到WinLoad时,OslpLoadAllModules位置的挂钩先被触发,解密NtBoot驱动:
之后WinLoad!OslArchTransferToKernel挂钩被触发,加载病毒驱动:
NtBoot.sys驱动功能与TexDriver.sys相同,加载后会联网下载NtProtect.sys,驱动与引导区如有一方被安全软件查杀,另一方会及时将其修复,使得双枪木马的查杀难度更高。
AppManage.dll AppManage.dll被注入到services.exe进程中执行流量劫持的功能。据我们统计,被劫持的网站包括淘宝,天猫,京东,唯品会,汽车之家,去哪儿,聚划算等230多个电商网站。部分劫持列表,如下图所示:
被劫持的浏览器列表,如下图所示:
病毒携带的SSL证书,如下图所示:
通过同源性分析,我们发现该病毒模块在2018年3月份被友商披露,命名为“贪狼”,动态库调试信息比较,如下图所示:
与多个版本双枪进行比较,发现贪狼与双枪应该是同一木马作者编写:
查杀建议
1,近几年,游戏外{过}{滤}挂已经成为病毒传播主要途径之一,网络上传播的外{过}{滤}挂程序安全性也无法保证,我们建议广大用户不要使用此类程序。 2,“双枪”木马隐蔽性强,查杀难度高,还会感染系统MBR和VBR,目前很多杀毒软件还不支持引导区的查杀,因此会出现频繁查出,但无法彻底清除的情况
|