欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

暗云Ⅲ BootKit 木马分析

来源:本站整理 作者:佚名 时间:2017-06-11 TAG: 我要投稿

“暗云”系列木马自2015年初被腾讯反病毒实验室首次捕获并查杀,至今已有2年多。在这两年多时间里,该木马不断更新迭代,持续对抗升级。
从今年4月开始,该木马卷土重来,再次爆发,本次爆发的暗云木马相比之前的版本有比较明显的晋级特征,因此我们将其命名为暗云Ⅲ。暗云Ⅲ与之前版本相比有以下特点和区别:
第一、更加隐蔽,暗云Ⅲ依旧是无文件无注册表,与暗云Ⅱ相比,取消了多个内核钩子,取消了对象劫持,变得更加隐蔽,即使专业人员,也难以发现其踪迹。
第二、兼容性,由于该木马主要通过挂钩磁盘驱动器的StartIO来实现隐藏和保护病毒MBR,此类钩子位于内核很底层,不同类型、品牌的硬盘所需要的 hook点不一样,此版本木马增加了更多判断代码,能够感染市面上的绝大多数系统和硬盘。
第三、针对性对抗安全软件,对安全厂商的“急救箱”类工具做专门对抗,通过设备名占坑的方式试图阻止某些工具的加载运行。
 

图1. 三代暗云木马比较
 

图2. 暗云Ⅲ 木马启动流程
一、由MBR到Windows内核
暗云系列木马通过感染磁盘MBR来实现开机启动,三代暗云其启动过程,基本没变,都是由MBR开始通过int 15中断一步步的hook来跟随系统的引导流程进入系统内核执行,该套代码可兼容xp、vista、win7、win8等主流操作系统,包括64位和32位。其启动过程如图2所示。(具体细节参见:“暗云”BootKit木马详细技术分析: http://www.freebuf.com/vuls/57868.html)
 

图3. 暗云系列 BootKit启动过程示意图
二、内核ShellCode 1 & ShellCode 2行为分析
ShellCode 1
ShellCode 1是木马进入Windows内核后,通过创建一个线程开始执行的第一段代码。其功能是通过磁盘钩子、定时器守护等一系列操作保护恶意的磁盘MBR不被检测和修改。此外,木马会在内核中直接联网下载ShellCode并执行,我们将下载的shellcode称为ShellCode 2。shellcode2主要功能是向应用层插入apc。
详细分析:
1)      寻找磁盘驱动器(atapior iaStor or LSI_SAS)对应的驱动对象。

图4.从文件系统开始查找磁盘驱动对象

图5.常见的磁盘对象驱动与小端口驱动对应关系
2)  根据磁盘类型和操作系统替换DriverStartIo、 AtapiHwStartIo、RaUnitStartIo等函数,实现阻止其他程序读取磁盘1-3F 扇区(MBR)。当检测到读MBR时, 返回一个构造好的正常的MBR,检测到写MBR时,则直接pass 该操作。

图6.MBR保护挂钩逻辑示意图

图7.根据磁盘驱动对象和小端口驱动设置不同的钩子
3)  新增一个计时器,在DPCRoutine 中反复检测磁盘钩子,如果钩子被删除则重新挂钩,挂钩超过5次则强制重启机器。检测 自身代码是否被patch,一旦发现自己被patch则蓝屏。

图8.自身代码完整性校验相关代码
4)  对指定设备名进行占坑,对抗急救箱工具

图9.占坑对抗急救箱代码
 
5) 直接在内核以TDI 的方式访问网络下载shellcode解密后直接在内核中运行。木马在TDI层用udp连接访问**.maimai666.com的8064端口获取shellcode。如果失败改用tcp连接**.maimai666.com的8864获取。且木马自带了dns服务器地址用来解析域名。
 

图10. 连接网络下载shellcode2
ShellCode2
shellcode2的功能是解压尾部数据,得到一个playload.dll ,尝试以APC的方式向应用层指定进程插入该dll文件。 Shellcode2会遍历进程,当发现以下某一进程时,进行插入,成功后不再尝试其它进程。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载