史上反侦察力最强木马“隐魂”:撑起色情播放器百万推广陷阱

简介: 本文讲的是史上反侦察力最强木马“隐魂”:撑起色情播放器百万推广陷阱,近期,360安全中心紧急预警了一款感染MBR(磁盘主引导记录)的“隐魂”木马,该木马捆绑在大量色情播放器的安装包中诱导网民下载,入侵后劫持浏览器主页并安插后门实现远程控制。
本文讲的是 史上反侦察力最强木马“隐魂”:撑起色情播放器百万推广陷阱近期,360安全中心紧急预警了一款感染MBR(磁盘主引导记录)的“隐魂”木马,该木马捆绑在大量色情播放器的安装包中诱导网民下载,入侵后劫持浏览器主页并安插后门实现远程控制。据统计,短短两周内,“隐魂”木马的攻击量已达上百万次,是迄今传播速度最快的MBR木马。

与疯狂的肆虐趋势相对应的,是“隐魂”木马超高的反侦察能力和极其复杂的制作技术:

从感染方式上来说,不同于恶意程序直接写入MBR的木马,“隐魂”入侵后选择了关机回调的方式伺机启动。电脑关闭前一刻是不少安全软件的监管盲区,“隐魂”就是趁这个空挡植入磁盘底层。同时,它还启动了多达5个白利用文件,以此与安全软件进行对抗。

从攻击手段上来说,“隐魂”木马使用了多个漏洞组合,这是在以往MBR木马中前所未见的。其中,于2015年曝光的老版本Adobe提权漏洞威力格外惊人,它能绕过不少安全软件直接在内核中执行任意代码,是黑客攻击的一个大杀器。

从反侦察能力上来说,“隐魂”可以说是迄今为止的集大成者,它的写入过程完全依靠驱动,不会留下任何落地驱动文件;它会通过RPC远程调用的方式创建进程,木马源头很难被追溯。更值得一提的是,“隐魂”的执行过程十分复杂,在每次写入动作之前,都会小心翼翼地检测电脑上是否存在网络抓包工具、进程监控工具、调试器、反汇编工具、虚拟机等,如果存在上述情况之一,就会即刻停止感染执行,很大程度上避免了被安全研究者逆向追踪。

“隐魂”的活跃量已经直逼暗云系列木马,复杂性和查杀难度则创造了史上新高。目前,360安全卫士已经率先拦截查杀了该木马,反病毒专家经过紧急分析,终于抓到了“隐魂”的狐狸尾巴,以下是对该木马的详细技术分析。

2感染分析

2.1加载图片

该安装包为一个播放器,带有一定播放功能,可能为二次打包的。

在运行该安装包后,会调用加载读取 释放出来的JPG图片。

验证图片完整性:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图1

然后将图片末尾数据拷贝到内存

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图2

解密前数据为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图3

判断进程调试信息后 异或0x93解密出代码:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图4

判断调试器信息代码为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图5

2.2 ShellCode1

为异或 0x93后代码  代码大小为0x2d4。

异或后代码为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图6

对应代码为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图7

找Kernel32基地址

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图8

而后申请内存 准备执行第二块ShellCode 大小为0x5800。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图9

调用第二块ShellCode:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图10

2.3 ShellCode2

入口处代码为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图11

填充导入表 并检测内核调试器是否开启:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图12

检测内核调试:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图12(1)

对应结构体为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图13

然后查找导入表中unzGetCurrentFileInfo64 挂钩:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图14

挂钩:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图15

等安装包后续 解压文件时候触发获取执行机会。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图16

获取额外数据 为第三块ShellCode并比对hash值是否一致,

然后调用自身函数解密数据 并拷贝ShellCode3到内存:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图17

而后设置安装CID环境变量值 并 IAT挂钩CreateProcessW。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图18

当安装进程创建时候 CreateProcessW IATHook被执行,恢复钩子 并执行第三块

ShellCode。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图19

创建线程执行,并且对调试器隐藏线程创建,并将下载地址传入。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图20

执行入口点函数

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图21

2.4 ShellCode3

ShellCode3为自定义的文件格式 类似于PE 自身实现文件导入表 重定位修正。

执行入口点:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图22

修正导入表:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图23

检测调试工具信息:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图24

其中 IsKdDebuggerEnabled 依然为 KUSER_SHARED_DATA 结构标志KdDebuggerEnabled是否为0。

检测常用工具软件:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图25

常用工具集合为  一旦发现便不再感染。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图26

接着检查下是否已经被感染 防止再次感染,并且读取之前设置的CID环境变量信息

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图27

调用网络相关函数下载之前的URL网址感染包

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图28

而后准备执行下载下来的第四块ShellCode。

申请执行内存:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图29

执行函数

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图30

2.5 ShellCode4

执行:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图31

然后解压里面带的相关资源:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图32

解压执行先对文件进行校验:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图33

通过节点名查找资源信息:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图34

而后申请执行空间。尽可能申请高端地址, 将第一块执行文件(ShellCode5) 大小为 0x23810拷贝入内存准备执行 :

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图35

执行

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图36

2.6 ShellCode5

ShellCode5 为公共部分代码 用于加载NE文件 和修正导入表 ,并设置好参数

参数通过共享内存设置的。

获取Kernel32基地址 并且获取LoadLibraryA,GetProcAddress,VirtualAlloc,VirtualFree函数地址。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图37

获取函数地址:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图38

Hash算法:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图39

而后申请执行内存 高端地址 为第六块Shellcode准备空间.

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图40

而后设置调用参数

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图41

而后将NE文件入口点设置在堆栈上 等函数返回后就执行第六块ShellCode

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图42

2.7 ShellCode6

该部分模块主要为释放白利用模块 根据不同参数执行不同代码,

 会检测调试器 对抗虚拟机,并且利用字体加载漏洞来加载驱动。

入口点函数为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图43

在入口点会检测SMEP是否启用 为后续执行代码做准备

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图44

Win7以下系统忽略该标志

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图45

然后进入白利用相关文件释放 函数,该函数会读取SessionId 获取调试标志

一旦检测到被调试就退出。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图46

而后会读取系统信息,

配置文件是否忽略虚拟机标志。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图47

判断虚拟机方法为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图48

具体实现为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图49

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图50

然后判断CPUID信息

是否为这几类虚拟机。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图51

获取BIOS信息判断虚拟机

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图52

如果不是 则释放五个白利用中一个,

将文件写到Appdata目录。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图53

而后调用 COM IShellWindows接口运行该白利用:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图54

启用该进程后 会加载白利用的DLL  该白利用DLL 又会创建线程以不同参数(参数还是通过共享内存设置)执行 ShellCode6:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图55

再次运行自身(该白利用文件):

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图56

执行后将ShellCode6 的NE代码共享到新创建的白利用进程:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图57

而后通过APC方式 执行该部分代码:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图58

然后创建rundll32进程 依然是执行ShellCode6,

Rundll32命令行为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图59

依然通过 NtMapViewOfSection将Shellcode6执行代码共享到Rundll32

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图60

直接通过 SetThreadContext修改EIP实现自身代码运行

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图61

执行是ShellCode6

这次函数为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图62

首先找到Null驱动的 FastIo 派遣函数表:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图63

找到NULL驱动入口点后

通过特征搜到 FastIoDispatch 而后作为参数传入。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图64

而后执行  执行第七块ShellCode

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图65

2.8 ShellCode7

入口点创建线程并执行:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图66

线程函数为获取漏洞溢出资源信息  加载带有漏洞的 atmfd.dll 驱动 文件

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图67

而后调用 AddFontMemResourceEx 调用 加载 atmfd.dll 驱动文件:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图68

触发漏洞函数为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图69

覆盖前函数表:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图70

下写断点:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图71

而后函数表为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图72

0x7ff6079b   该处函数为:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图73

而后触调用读取函数直接发该ShellCode内核执行 为ShellCode8:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图74

2.9 ShellCode8

功能主要负责加载后面的 NE执行文件

获取Nt基地址:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图75

而后获取相关函数地址 修正导入表 重定位:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图76

将入口点作为参数传入  ExQueueWorkItem 执行。

2.10 ShellCode9

为驱动函数入口点  主要作用是接受应用层来的写磁盘驱动,加载并执行该驱动

获取NTLdr信息。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图77

而后创建设备名跟应用层交互:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图78

当应用层传来 0x220004  IO控制码时候。

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图79

QueueWorkItem加载该驱动:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图80

加载

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图81

修正 并加载篡改MBR驱动执行

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图82

2.11 ShellCode10

创建设备名

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图83

注册DPC 注册关机回调  在最后一次关机回调中写入MBR:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图84

关机回调中直接发给磁盘底层设备:

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图85

设备信息为

​史上反侦察力最强木马隐魂:撑起色情播放器百万推广陷阱

图86

3 尾声

“隐魂”就像一个幽灵,所过之处不留任何痕迹。近段时间,MBR顽固木马的活跃性增高,它的查杀难度本就很高,如果配合多种反侦察和对抗技术,随时有可能形成爆发局势,危害将不亚于勒索病毒。




原文发布时间为:2017年8月11日
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
安全 大数据 网络安全
直播预告-《技术的隐秘角落-“黑灰产”对抗揭秘》
在数字化时代,企业做好业务安全隐私防护,需要从了解“黑灰产”开始。细数那些年我们深度揭秘的互联网黑灰产,本次直播将带你走进埋藏在互联网最深处的地下产业江湖。
146 0
直播预告-《技术的隐秘角落-“黑灰产”对抗揭秘》
|
安全 物联网 开发工具
第八期| 藏在短视频背后的黑灰产:批量刷票、虚假流量
顶象防御云业务安全情报BSL-2022-a3c11号显示,某短视频平台部分Up主在中秋节平台活动期间借助黑灰产工具分设备牧场、代理IP、黑卡、自动化程序等进行批量刷票,严重影响其他用户参与的积极性,给平台的带来大额的资产损失和大量虚假用户,不仅严重破坏了平台生态,而且使得刷票风气盛行,平台活动公平性被质疑,信誉受损。
200 0
第八期| 藏在短视频背后的黑灰产:批量刷票、虚假流量
|
移动开发 算法 安全
Q&A特辑 | 看了这场直播,我找到了设备指纹“从不说谎”的原因
除了身份证外,设备指纹可能是唯一一个可以证明你是谁的方法。 究其原因,就在于设备指纹的唯一性和稳定性。 8月 25 日下午 15 点,顶象技术总监杜威就设备指纹的唯一性和稳定性的核心算法展开分享。
139 0
Q&A特辑 | 看了这场直播,我找到了设备指纹“从不说谎”的原因
|
云安全 运维 监控
案例分享|游戏黑客肆意侵袭,阿里云打响“襁褓”保卫战
公元2021年8月6日《弈剑行》铸剑三年开封在即,正值贼寇ACCN猖狂之风正盛,此时“弈剑元世界“初生,兵力虚弱时遇贼寇进犯,三位铸剑者“宁为玉碎,不为瓦全”,ACCN索财未果,恼而攻城。千日铸剑,溃于一旦,27万“弈剑迷”痛失江湖。
293 0
案例分享|游戏黑客肆意侵袭,阿里云打响“襁褓”保卫战
|
安全
网银安全恐慌“后遗症”凸显 肉鸡检测器下载量近百万
4月8日,记者从金山毒霸客服中心了解到,近段时间,用户对网银安全问题尤为关注。大量用户表示对网银的安全性表示担忧,网银安全恐慌“后遗症”显现。 据了解,央视今年3•15晚会曝光了受到木马攻击的“肉鸡”电脑,用户网上银行账号受到威胁之后,“肉鸡”一词就以迅雷不及掩耳之势传遍了全国。
957 0
|
机器学习/深度学习 安全
张学友演唱会成犯罪分子噩梦,阿里云云盾人发布脸对比功能将进一步提升罪犯监察力度
学友哥演唱会抓罪犯只是一个缩影,近年来,学校、医院等公众场合发生暴力事件频频发生,我们在追责的同时,如何对危险性事件再次发生做好预防是重中之重。在学校医院门口监控系统提前录入潜逃犯罪分子、精神病患者信息,安保人员可利用人脸比对发现可疑险情。
1934 0
|
安全 API 数据安全/隐私保护
【阿里聚安全·安全周刊】山寨外挂有风险养蛙需谨慎|健身追踪热度图爆军事基地位置
阿里安全周刊第八十三期,分享本周移动安全热点和技术知识。
2049 0

热门文章

最新文章