转载

暗云Ⅱ BootKit 木马分析

0x00 概况

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

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

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

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

暗云Ⅱ BootKit 木马分析

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

0x01 由MBR到Windows内核

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

暗云Ⅱ BootKit 木马分析

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

0x02 内核ShellCode 1 & ShellCode 2行为分析

ShellCode 1

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

暗云Ⅱ BootKit 木马分析

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

详细分析:

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

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

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

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

暗云Ⅱ BootKit 木马分析

图4. 检测和守护相关代码

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

暗云Ⅱ BootKit 木马分析

图5. 直接在内核联网下载ShellCode

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

暗云Ⅱ BootKit 木马分析

图6. 接收到的第一个数据包格式

暗云Ⅱ BootKit 木马分析

图7. 接收到的第一个数据包内容

暗云Ⅱ BootKit 木马分析

图8. 接收到的ShellCode 2

ShellCode2

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

能实现的功能 开关 参数信息
锁定浏览器主页
对抗安全软件
修改导航网站推广链接
向应用层插入APC 向alg.exe、spoolsv.exe、Searchindexer.exe、Trustedinstaller.exe、Wscntfy.exe、svchost.exe、zhudongfangyu.exe、qqpcrtp.exe、ksafesvc.exe等进程插入playload.dll

详细分析:

1)注册CreateProcessNotifyRoutine,当有进程创建时,若是浏览器进程,则劫持浏览器进程,在尾部添加url。劫持的进程有chrome.exe、iexplorer.exe、firefox.exe、qqborwser.exe、baidubrowser.exe、2345Explorer.exe、liebao.exe、360se.exe、SogouExplorer.exe、UcBrowser.exe。

暗云Ⅱ BootKit 木马分析

图8. 锁主页功能相关代码

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

暗云Ⅱ BootKit 木马分析

暗云Ⅱ BootKit 木马分析

图9. 被patch的dll入口

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

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

暗云Ⅱ BootKit 木马分析

图10. 进程列表一

暗云Ⅱ BootKit 木马分析

图11. 进程列表二

暗云Ⅱ BootKit 木马分析

图12. 向指定进程插APC相关代码

0x03 playload.dll行为分析

playload.dll

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

能实现的功能 开关 参数信息
关闭指定的服务
创建指定注册表
下载指定Dll并Load
下载Exe并执行
下载恶意代码,注入到svchost.exe执行 hxxp://cfg.haossk.com:8787/cfg/datacl.bin ,解密后创建傀儡进程svchost.exe执行

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

暗云Ⅱ BootKit 木马分析

图13. 下载配置文件相关代码

暗云Ⅱ BootKit 木马分析

图14. 删除指定服务相关代码

暗云Ⅱ BootKit 木马分析

图15. 创建指定注册表相关代码

暗云Ⅱ BootKit 木马分析

图16. 下载dll并加载相关代码

暗云Ⅱ BootKit 木马分析

图17. 下载exe并执行相关代码

暗云Ⅱ BootKit 木马分析

图18. 下载ShellCode,并创建傀儡进程scvhost来执行ShellCode

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执行。

暗云Ⅱ BootKit 木马分析

图19. 下载配置文件

暗云Ⅱ BootKit 木马分析

图20. 配置文件格式,IsExe字段标记是否为exe

暗云Ⅱ BootKit 木马分析

图21. 如果是exe则直接执行,否则创建傀儡svchost插入执行

0x04 木马功能模块与时间轴

adten

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

暗云Ⅱ BootKit 木马分析

图22.反病毒实验室监控到该木马主要行为节点

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

暗云Ⅱ BootKit 木马分析

图23.adten网络攻击相关代码

暗云Ⅱ BootKit 木马分析

图24.adten网络攻击相关代码

暗云Ⅱ BootKit 木马分析

图25.adten网络攻击相关代码

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

  • 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/

0x05 安全建议和木马查杀

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

暗云Ⅱ BootKit 木马分析

原文  http://drops.wooyun.org/papers/17806
正文到此结束
Loading...