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

一款惊艳的Rootkit分析- Wingbird

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

在之前的报告中我已经描述了rootkits是由号称国家发起的用来感染他们的目标的,是用来保持恶意程序潜伏和获取SYSTEM权限的。我曾经提到过Remsec(Cremes)被Strider(ProjectSauron)组织使用、Sedint(Fancy Bear)是被APT28组织使用。Remsec是被用来在内核执行代码绕过SMEP,Sedint是用来隐藏他们的恶意行为和指纹。
最近一个安全公司调查了多个组织的活动,和我分享了rootkits。在分析时我很惊讶,因为rootkit和它的dropper一样有很好的阻止分析的功能。分析这些rootkits花了很多时间,因为它具有多种反分析能力。Rootkit和dropper的文件大小会变大,因为用了代码混淆和花指令。
“目标”的概念总是作为复杂攻击的属性在安全社区被讨论,经常有些国家发起的活动。在过去我们看见很多活动用了特有的可执行文件,这些文件有特定的目标。本文中讨论的恶意程序满足这些特点。这个恶意程序的组织曾被Microsoft MMPC和Security Intelligence报告过。这个组织被称为“NEODYMIUM”,这个恶意程序被称为“Wingbird”。它和之前赛门铁克发现的Finfisher有点相似。
0x01 Dropper1
第一个dropper有以下特点:
有多种反静态和动态分析的手段。包含多种对抗反汇编/调试/虚拟机/转储的特点。
包含跳转到指令中间的混淆代码,花指令,无用的检测,无用的跳转等
由于大量的花指令,dropper大小比较大(1.3MB)
被设计成尽量延迟分析
在系统中安装rootkit
释放的rootkit的名字是logonsrv.dat
只为了释放rootkit
.text节的熵值很高,说明代码被加密和混淆。

Dropper和rootkit的PE头中的时间戳看起来都是合法的。

在dropper中典型的结尾。

所有函数跳转同一代码。

包含无用跳转的混淆代码。

下面是ring0 rootkit的特点。
混淆代码,加大静态和动态分析的难度
包含加密代码和数据
没有创建设备对象,不与应用层通信
在内核中不做任何挂钩
只为了隐藏注入恶意代码到受信任的Winlogon进程
自我修改代码,例如,能用另一个地址或寄存器修改重要的call或jmp指令
设计的尽量隐蔽,在注入Winlogon之后就卸载驱动
检测ESET的驱动(ehdrv.sys),移除挂钩的SSDT
在执行主要功能前,准备了一些工作。
分配两个非分页内存块。一个大小是0x56000,另一个是0x10000.
第一个buffer用来存储新创建的驱动(在内存中),第二个用来存储一些NT内核API的跳板函数
创建0x2F个IAT项,用来存储新创建的驱动的节信息。但是不直接用这个IAT,而是利用这些地址,用它来修改指令和变量
值得注意的是作者做了尽量多的事情来使内存中的rootkit更加复杂。有经验的人用过ARK工具检测也会遇到麻烦。
不用原始的映像(logonsrv.dat)来做主要的事情
不依赖内存连续的IAT
在两个分配的内存块中做主要的事情。一个块用来作为一些NT内核API的跳板函数
在做主要工作前调用KeDelayExecution函数,例如在注入Winlogon之前
下面可以看到第二个分配内存中的代码,包含了一些跳板函数。另一份来自第一个buffer中的代码用来自IAT的地址重写这些跳板函数。

在预备工作最后,rootkit调用ZwOpenKey打开它的注册表键,用ZwQueryValueKey读取ImagePath值。两个调用指令如下:

在调用ZwQueryValueKey之后,代码在次被修改成调用PsCreateSystemThread。

用PsCreateSystemThread创建了两个线程,一个线程用来做主要的恶意的工作。下图中你能看到执行流程。它准备要注入到Winlogon的代码,读取\KnownDlls\ntdll.dll。rootkit也导入KeServiceDescriptorTable变量,获取KiServiceTable地址,恢复ssdt。


似乎只有一个函数没有被混淆。这个函数用来枚举内核模块。这块代码被调用多次,用来获取NT基地址。在上面能看到,作者对NT内核文件感兴趣,因为要恢复SSDT函数。

[1] [2]  下一页

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