“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本文讲的是“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析,顽固性木马病毒有感染MBR(磁盘主引导记录)的,有感染VBR(卷引导记录)的,还有用驱动对抗安全软件的,最近则出现了一种连环感染MBR和VBR的新型木马,我们将其命名为“双枪”木马。
本文讲的是 “双枪”狙击:首例连环感染MBR和VBR的顽固木马分析顽固性木马病毒有感染MBR(磁盘主引导记录)的,有感染VBR(卷引导记录)的,还有用驱动对抗安全软件的,最近则出现了一种连环感染MBR和VBR的新型木马,我们将其命名为“双枪”木马。

1 摘要

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图1

然后判断第一个分区是否为活动引导分区

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图2

是活动分区读取VBR前面两个扇区,判断下引导分区是否为NTFS分区操作系统引导文件是BootMgr 或者是Ntldr。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图3

接下来读取后续的0xf个扇区

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图4

将当前系统的BPB系统更新至恶意代码中同时将恶意代码刷回VBR。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图5

紧接系统读取VBR 控制权转交给VBR部分

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图6

2.1 VBR执行部分

然后执行VBR 代码部分

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图7

再次检查系统文件格式, 检查系统是否支持扩展Int13h。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图8

后续将读取从VBR开始16个扇区到 0x7e00 缓冲区。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图9

随后一个JMP指令被木马修改跳转到恶意代码执行。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图10

恶意代码执行

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图11

为恶意代码执行分配空间

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图12

跳转

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图13

将4ce * 2 = 99c大小的恶意代码解密到刚刚开辟的高端地址执行。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图14

然后跳转到刚刚解密的高端地址执行 

解密系统原始VBR部分。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图15

读取磁盘末尾的加密sys文件到0x9300 缓冲区,后续开机部分会解密这部分数据

扇区总数0x5a。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图16

扇区偏移为 0x3a382c41 (磁盘大小为 500GB )

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图17

读取完成后挂钩系统15h中断为后续获得执行机会。

挂钩Int15中断

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图18

挂钩后地址为 9e800+630 = 9ee30

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图19

随后返回到解密的原始VBR处继续执行。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图20

VBR执行后控制转移给了bootmgr加载处为0x2000。

2.2 BootMgr执行部分

BootMgr在获取系统内存信息时候调用Int15 而这个服务被木马挂钩

执行木马挂钩函数。

检测地址是否大于0x9000 bootmgr为 0x2000 且功能号是否E820。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图21

如果EB20 从系统返回结果中隐藏自身高端内存。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

图22

如果是ntldr调用来且功能号位0xE820则搜索。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

对应代码为

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

挂钩后代码为

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

跳转到 9e800 + 5e8 = 9ede8 处继续执行。

该函数主要设置硬件断点 dr0 dr2 dr0针对xp以上系统 dr2针对xp

挂钩Int1后。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

中断函数为 64字节中 低16偏移 高16位段偏移

90000 + F09c = 9F09c

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

设置硬件断点  替换系统中断

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

该Int1中断会被触发多次, 当BootMgr后续代码被自身加载到 0x401000处执行后被触发

当系统控制权由 BootMgr  准备转移 Winload时候被也触发, 这是我们关心的中断。

即将被挂钩的系统函数为:

BootMgr! Archx86TransferTo32BitApplicationAsm

触发的相关指令为:

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

装载系统中断表

被中断 然后 往后 查找特征码  FF D0 查找范围为0x7f 然后

挂钩 。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

该挂钩函数为一个通用函数 :

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

挂钩前函数:

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

当系统执行到BootMgr! Archx86TransferTo32BitApplicationAsm

挂钩后函数跳转到 9ef84处执行 。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

该挂钩函数主要为恢复Archx86TransferTo32BitApplicationAsm,挂钩Winload 里面两处函数  为后续系统进入Winload引导获取执行权限。

挂钩1为  查找特征码  0F 00 D8  实际上为函数 Winload!OslArchTransferToKernel

相关指令为:

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

查找特征码:

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

后续接着查找 0xcb 范围为 0x40 查找处即为 retf指令

将其Patch。

Patch后代码为

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

挂钩2 为  查找特征码 68 12 00 00 E0 , 实际上为函数 Winload!OslpLoadAllModules

中对函数的调用 BlImgAllocateImageBuffer 并保存该函数地址。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

查找特征码

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

并挂钩

挂钩后函数代码为

 

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

随后返回到系统流程

2.3 Winload执行部分

系统执行到Winload OslpLoadAllModules函数后, 其中偏移177处已经被Inline挂钩

跳转到 9ef1e处执行。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

该函数主要作用

解密 磁盘尾部的0x5a个扇区数据并加载, 调用 BlImgAllocateImageBuffer  申请nt内存地址

解密调用 异或解密。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

并且重定位好文件

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

调用 BlImgAllocateImageBuffer

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

随后系统将执行到  OslArchTransferToKernel,

将控制权交给 Nt 时候 触发第二个挂钩。

执行的函数为 9ed38,

该函数主要为 申请 BK_LDR_CONTEXT 结构 挂入系统Boot驱动加载链

并调用该解密驱动的入口函数。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

3 NT系统加载后

3.1 联网下载改主页驱动

调用解密的驱动  该驱动主要功能为 网上下载另外一个改首页驱动。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

创建下载线程

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

域名解析 分操作系统区分  Vista以上操作 使用Wsk函数 网络收发数据包。

先检测 该驱动是否加载

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

随后会检测该标志

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

联网下载代码

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

自己实现DNS域名解析  向53端口发解析数据包。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

获取磁盘信息

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

计算发送统计数据

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

Base64编码后

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

发送给服务器 获取即将要下载驱动长度,将下载下来的数据异或解密后加载执行。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

而后加载该驱动

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

3.2 改主页驱动

驱动被加载后 创建设备名

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

然后开启线程  检测MBR是否被感染

读取

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

接着使用IOCTL_DISK_GET_DRIVE_GEOMETRY获取磁盘大小。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

然后读取磁盘末尾5a个扇区数据  并将开机驱动异或写入磁盘尾部。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

写入成功后写入MBR 第个扇区后 F个扇区。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

最后写入0号扇区完成感染,  并且会挂钩磁盘底层设备Dispatch钩子保护自身MBR不被改写。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

且会删除Grub启动项

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

改首页部分主要通过挂钩 ProcessNotify注入进程完成。

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

注入的进程名字通过Hash计算

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

注入进程名

“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析

修复。

完结。




原文发布时间为:2017年7月14日
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
安全 数据安全/隐私保护
WannaCry感染文件恢复方法,企业再也不用愁了!
WannaCry感染文件恢复方法,已经感染的电脑文件要如何恢复?我们发现代码中充满了错误,受害者能够利用一些简单命令就恢复文件,企业再也不用愁了!
7493 0
|
安全
法国海军计算机遭病毒入侵 战机受影响停飞两天
据香港《文汇报》报道,法国海军内部计算机系统上月受病毒入侵,一度不能启动,海军战斗机受影响停飞两天。 微软在去年10月发出警报,称一种名为Conficker的计算机病毒会透过视窗系统传播并发动攻击。
839 0
|
安全
端午小长假谨防挂马网站 病毒模仿杀软骗取钱财
随着端午小长假的临近,上网人数增加,这段时间的挂马网站和木马病毒都有肆虐的趋势。5月25日,瑞星“云安全”系统就从截获的挂马网站中,发现了一个冒充杀毒软件、企图骗取钱财的广告软件病毒,并命名为“WINPC 广告病毒(Adware.Win32.Agent.Dbj)”。
1093 0
|
安全
McAfee:僵尸网新威胁远甚Conficker
相对于日益增长的僵尸网络、病毒和蠕虫感染网络来说,已经引发数次安全事件的Conficker蠕虫只是小虾米罢了。据安全厂商McAfee周二发布的一份报告显示,自一月份起网络犯罪分子通过一系列新的恶意软件已经劫持了1200万新的电脑,相对于2008年来说该数字增长了50%。
914 0