资讯
主页 > 热点资讯> 正文

暗云Ⅱ BootKit 木马分析

发表时间:2016-08-04

概况:

 “暗云”木马没有文件形态,长期潜伏在磁盘引导区,主要攻击代码放在云端,曾有超百万台电脑受感染,自2015年初被腾讯反病毒实验室首次捕获并查杀至今已有1。从今年4月开始,该木马卷土重来感染了数十万台机器。新发现暗云木马在模块分工、技术对抗等方面与老暗云相比有着明显的晋级特征,因此我们将本次爆发的木马取名暗云Ⅱ。暗云Ⅱ除了隐蔽性高、云控、兼容性好等特点外,还有以下特点:

 

第一、顽固性增强,难以清除。暗云Ⅱ通过磁盘钩子隐藏恶意代码,并且特别设置一个计时器以不断地检测钩子和自身代码的完整性,一旦发现钩子被摘除或者自身代码被修改,则重启计算机,给木马的检测和清除工作增加难度。

 

第二、稳定性更好。暗云Ⅱ大幅度删减一些重复或不必要的功能代码,如取消了对安全软件句柄的关闭,直接在内核使用TDI连网下载模块,从而减少了应用层与内核的协作。

 

第三、隐蔽性更强,难以检测。前期的暗云Ⅱ推广一个用于网络攻击的exe木马,在后台攻击指定的服务器,服务器中毒后并没有明显异常现象;后期的暗云Ⅱ直接下发一个dll在内存中加载执行,中毒后包括文件、注册表、桌面图标、浏览器主页等也均没有变化,普通用户难以察觉。

 

                         图1. 暗云Ⅱ 木马启动流程

一、由MBR到Windows内核

暗云Ⅱ木马通过感染磁盘MBR来实现开机启动,与暗云相比,没有大的改变,都是通过一步步的hook来跟随系统的引导流程进入系统内核执行,该套代码可兼容xp、vista、win7、win8等主流操作系统,包括64位和32位。其启动过程如图2所示。(具体细节参见:“暗云”BootKit木马详细技术分析

 

            图2. 暗云Ⅱ BootKit 启动过程示意图

二、内核ShellCode 1 & ShellCode 2行为分析

ShellCode 1

 

ShellCode 1是木马进入Windows内核后,通过创建一个线程开始执行的第一段代码。其结构是一段加载代码和一个自定义的文件结构,该文件结构与PE类似,自定义了区段、导入表等结构,下文我们称其为PX文件。加载代码将PX文件加载后执行,其功能是通过对象劫持、磁盘钩子、定时器守护等一系列操作保护恶意的磁盘MBR不被检测和修改。此外,木马会在内核中直接以TDI的方式从ebak.advstis.com下载ShellCode并执行,我们将其称为ShellCode 2。

 

                   图3. 暗云Ⅱ MBR保护&隐藏原理

详细分析:

1) 寻找磁盘驱动器(atapi or iaStor or LSI_SAS)对应的驱动对象。

2) 对象劫持:将ObjectDirectory中磁盘驱动器驱动对象替换为一个FakeObject,隐藏磁盘驱动器对象。

3) 挂钩磁盘驱动器的IRP_MJ_INTERNAL_DEVICE_CONTROL函数挂钩CmpParseKey函数以及根据磁盘类型和操作系统替换DriverStartIo AtapiHwStartIoRaUnitStartIo等函数,实现阻止其他程序读取磁盘1-3F扇区(MBR)。检测到读MBR时,返回一个构造好的正常的MBR,检测到写MBR时,则直接pass该操作。

4) 新增一个计时器DPC Routine反复检测IRP_MJ_INTERNAL_DEVICE_CONTROL处理函数是否挂钩成功,没有则重新挂钩挂钩超过5次则强制重启机器。检测自身代码是否被patch,一旦发现自己被patch则重启电脑

  

5) 直接在内核以TDI的方式访问ebak.advstis.com下载shellcode解密后直接在内核中运行。木马在TDI层用TCP连接访问ebak.advstis.com:8886获取shellcode。如果失败改用UDP连接获取,还内置了多个dns地址用于解析域名。

   

6) 发送数据并接收服务器返回的数据,接收数据结构如图6所示。

 

 

  

ShellCode2

从云端下载回来的第一个模块为ShellCode 2,也是用来加载执行其后的PX文件,该PX文件的功能是根据配置进行锁主页、对抗安全软件、修改推广id、将解密出来的dll以APC的方式插入到指定的应用层进程中等,具体如下表:

  

详细分析:

1) 注册CreateProcessNotifyRoutine,当有进程创建时,浏览器进程,则劫持浏览器进程,在尾部添加url。劫持的进程有chrome.exeiexplorer.exe、firefox.exeqqborwser.exebaidubrowser.exe、2345Explorer.exe、liebao.exe、360se.exe、SogouExplorer.exeUcBrowser.exe。

 

2) 注册LoadImageNotifyRoutine,通过Patch sesafe.dll和safemon.dll的入口使其失效。这两个是安全软件的dll。

  

3) 在回调中查找CmdLineParser.dll的.rdata section中的“hao123”字符,在其后添加推广id, CmdLineParser.dll是某知名浏览器的相关文件。

 

4) 解密文件尾部的数据,得到一个playload.dll,尝试以APC的方式向应用层指定进程插入该dll文件。Shellcode会遍历进程,当发现以下某一进程时,进行插入,成功后不再尝试其它进程。

 

 

 

三、playload.dll行为分析

playload.dll

该dll被以APC的形式插入到应用层进程中,其具体的行为仍然依赖于云端配置,其运行后首先会从云端下载配置文件,根据配置文件执行响应的功能,能够实现的功能及具体配置情况如下表所示。配置文件所在的URL为:hxxp://update.haossk.com:8787/update/cfg.db

  

1) 首先会下载一个配置文件cfg.dbhxxp://update.haossk.com:8787/update/cfg.db下载完成后,解析cfg.db文件根据配置来决定执行哪些操作,可以实现的功能如下:

  

 

 

  

  

 

2) 当前配置为下载ShellCode(hxxp://cfg.haossk.com:8787/cfg/datacl.bin)注入执行

datacl.bin

该模块的结构是ShellCode+DLL,ShellCode的功能是在内存中展开执行解密后DLL,DLL是个简单下载器,首先会从hxxp://ads.haossk.com:3737/config/ka.html下载配置文件,然后根据配置信息下载exe执行或者下载dll,最后创建傀儡进程svchost执行。

 

 

 

四、木马功能模块与时间轴

adten

该模块是目前监控到的暗云Ⅱ木马唯一落地文件,也是暗云木马的主要功能模块,从4月份爆发以来,该模块经历了几次更新换代,经分析发现,每代adten的功能都是以用户电脑为肉鸡进行网络攻击,第一代adten(md5:3007e22a8d7bfdbc4d7a5b34aaaa38c5)和第二代adten(md5:8b1a90e08a33b666d01ae27583cf5cfa)基本相似,为exe文件,直接在磁盘落地,而第三代adten则直接在内存中执行,隐蔽性更强

 

木马主要功能:自更新、下载执行指定模块、攻击指定DNS、刷流量、转发数据包等。

 

 

 

近期监控到的被攻击站点如下(均为外挂私服类站点)

hxxp://www.tianglongsifu.com/

hxxp://www.haoov.com/

hxxp://www.001my.com/

hxxp://www.901my.com/

hxxp://zse.bju888.com/

hxxp://bolezi.bju888.com/

hxxp://mianfeitl.com/

hxxp://www.3wow.com

hxxp://www.feihuxin.com/

hxxp://www.tlbbhi.com/

 

安全建议和木马查杀:

暗云Ⅱ木马主要通过外挂、游戏辅助、私服登录器等传播,此类软件通常诱导用户关闭安全软件后使用,使得木马得以乘机植入。管家建议大家持续保持安全软件开启状态,不要运行来源不明和被安全软件报毒的程序。目前腾讯电脑管家已经能够准确检测和查杀暗云系列木马。

 

资讯排行