查看: 14596|回复: 45
收起左侧

[分享] [恶意软件分析文章]TDSS. TDL-4

  [复制链接]
星空下的吻
发表于 2011-1-28 16:20:59 | 显示全部楼层 |阅读模式
本帖最后由 星空下的吻 于 2011-1-28 16:32 编辑

前不久我们刚发布了一份关于TDSS Rootkit的分析报告,而正如我们所预料的一样,TDSS也在不断地进化着
一种可以感染32位和64位操作系统的新的rootkit变种————TDL-42010年的七八月份间出现。在这篇文章中,我们将要介绍一种rootkit使用的新型的加载并感染的技术,以及分析rookit是如何绕过64位操作系统的保护,包括Windows代码完整性和内核修补保护机制。
组成
值得注意的是,TDL-4的组成部分与TDL-3不同。下面是TDL-4的组成部分:
bckfg.tmp
   cfg.ini
   cmd.dll
   cmd64.dll
   drv32
   drv64
   ldr16
   ldr32
   ldr64
   mbr
与先前的变种类似,rootkit通过RC4算法加密自身的文件系统。它将自身的文件存储在物理硬盘的最后一个区段。
经过加密后的rootkit文件系统的结构

与先前的版本一样,rootkit同样使用配置文件进行感染。

TDL-4配置文件的样本数据
TDL-4的配置文件与TDL-3的配置文件稍有不同,最大的不同之处在于rootkit版本号的改变(版本=0.02)(晕了!!
可以看出,从上述列出的TDL-4的组成部分列表中文件的名字包含数字3264.这表明该rootkit应该可以在32位和64位操作系统上运行生效。

感染和加载
感染MBR的过程中,这种TDSS使用的是一种不同以往的但是已经被证实的感染方式。与其他众所周知的rookit类似,譬如bootkitTDL-4感染系统的主引导记录。这使得它先于操作系统加载,就在计算机引导序列的开始部分这部分的代码使用了一种公开的相对简单的加密算法,但是对该算法进行很微小的改动也可能足以逃过大多数反病毒产品基于签名的检测。




被感染和加密的MBR代码




解密后的MBR代码(其中可见ldr16)



MBR加载程序的主函数很小,它的功能是为ldr16搜索rootkit的加密部分,将其加载进内存,并将控制权限转移给它。

搜索ldr16并将其加载进内存,然后再将控制权转给它


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1人气 +1 收起 理由
bbs2811125 + 1 精品文章

查看全部评分

星空下的吻
 楼主| 发表于 2011-1-28 16:30:09 | 显示全部楼层
本帖最后由 星空下的吻 于 2011-1-28 18:13 编辑

LDR16

一旦加载,ldr16会挂钩BIOS13h中断,该中断是用来控制磁盘输入和输出的。然后,它会在感染过程中,复制一份原始的并且未被感染的MBR,将其保存到rootkit的加密位置。然后将其拷贝至内存中。接下来,它会将控制权转回交给原始的引导记录。每一次调用BIOS 13h的中断的时候,rootkit所安装的钩子也会被同时调用。这个钩子程序会等待合适的文件将其读入内存。

为了持续加载感染,rootkit需要kdcom.dll这个文件,它是一个在操作系统内核初始化的早期阶段中使用的系统驱动。为了能够成功复制被读入内存的kdcom.dll,该中断钩子函数会扫描被读入的所有区段,试图通过匹配签名来寻找该文件。

ldr16匹配了正确的签名,它就会搜索rootkit的加密分区来寻找ldr32ldr64两个文件,寻找的文件取决于操作系统是32位还是64位,读取硬盘驱动器上的相关文件,并在内存中替换了原始的kdcom.dll。结果,一个恶意的TDL-4组件就加载入内存并替换了系统的合法组件。

Ldr16组件还有另外一个特性:它修改了内存中的启动配置数据(BCD)。BCD是一个由windows启动管理器所使用的注册表配置单元,它支持windows vista以及更高的系统版本。它取代了已经使用很久且已经过时的boot.ini文件。TDL-4 rootkit还搜索BCD中的BcdLibraryBoolean_EmsEnabled键值,该键值拥有数字签名16000020,搜索成功后还将它替换成了26000022,该数字表示的是BcdOsLoaderBoolean_WinPEMode键值,这使得系统加载了WinPE系统模式。在该模式下,系统并不执行代码完整性检查,并且也不检查恶意的kdcom.dll组件的数字签名。在有限的启动时间内启用该模式有效地避免了系统的自身检查。等到恶意组件成功加载,该模式就被通过修改/MININT参数为无效值的方法禁止了。


LDR32/64

为了确保成功初始化系统,ldr32/64恶意组件需要支持kdcom.dll系统库的功能。

ldr32/64的导出表函数列表和kdcom.dll是相同的,但是在rootkit中,只有KdDebuggerInitialize这个函数是有效的。其余的所有函数都是无效的,它们在任何时候只返回成功的结果。

Rootkit程序通过这种常见的方式不仅继续执行自身的初始化而且成功的限制了系统调试器的运行。在内核初始化的早期阶段,Phase1Initialization函数会调用KdDebuggerInitialize1函数,该调用帮助rootkit完成初始化。

Ldr32ldr64的代码几乎相同,因为它们是使用相同的源代码编译出来的。

以下是rootkit在调用KdDebuggerInitialize1函数后的进一步感染的扼要描述:

Ÿ它通过使用PsSetLoadImageNotifyRoutine函数设置了图像载入内存时的通知;

Ÿ它使用一个尚未公开的IoCreateDriver函数创建了一个驱动程序对象,为了创建该对象,它调用了初始化函数,并将其作为参数传递给了IoCreateDriver函数;

Ÿ另一个通知设置在初始化函数上,这一次它使用了系统函IoRegisterPlugPlayNotification

ŸPnP(即插即用)通知被调用时,TDL- 4的加密分区读取并搜索的主要rootkit驱动,drv32或drv64,搜索的文件取决于操作系统是32位还是64位。该驱动程序之后会从磁盘中读取并加载到内存。经过必要的配置,rootkit的主驱动程序的入口点被调用。


DRV32/64

LDR32/64一旦被成功加载,rootkit的主要部分,即隐藏系统已被感染的事实的程序已经被载入内存。为了做到这一点,对包含rootkit关键组件的磁盘扇区的任何访问将返回无效的内容。TDL-4设置挂钩的技术与先前的变种TDL-3一样。该技术有效地绕过了PatchGuard – 64位操作系统下使用的一种内核修补保护技术。除此之外,rootkit还启用了一个监视进程,它检测系统对象是否被正确挂钩,MBR是否存在被感染的扇区。一旦发现任何改变,MBR将会被重新感染。


结论

病毒作者尽最大努力满足网络犯罪市场的需求。在2010年的时候,我们就预测恶意软件将变得更加复杂和危险。“现在,有许多存在的威胁使用了现代的文件感染技术和rootkit功能。” Alexander Gostev表示。许多反病毒解决方案并不能有效地清除此类恶意软件。一方面,反病毒技术将避免恶意威胁穿透系统这样的发展方式摆在首要位置,另一方面,此类威胁逃避安全解决方案的能力将变得无懈可击。
根据我们的预测,针对64位平台的威胁数目在2011年有增加的趋势。研究表明,64位操作系统越来越受欢迎。在某种程度上是因为原始设备制造商经常在他们的设备上预装64位操作系统。随着用户数量的不断增加,支持新操作系统的网络恶意威胁也将越来越多。编写TDSS的网络罪犯也在不断的升级自己的程序以应对最新的恶意软件发展趋势。TDSS家族一直在不断的进化来满足越来越复杂的要求,譬如TDL-4,与它之前的变种不一样,它能够感染64位的操作系统。然而,64位平台提供给内核模式的rootkit一个更具有挑战性的环境。这也是其中一个因素使得他们选择通过感染MBR来感染受害者电脑。另一个因素是大多数现代的反病毒方案,特别是反rootkit,它们的技术都没有针对64位的平台,这使得恶意软件作者的对抗变得更加轻松。毫无疑问,TDL-4已经全副武装,它将会严重的威胁到用户的电脑安全,更糟糕的是,它还在不断的进化。杀毒软件厂商必须紧急升级他们的反rootkit产品组件,因为如果普通用户的电脑无法避免这种rootkit的感染,那么同样没有多少用户能够做到。对于那些需要在32位或者64位平台下检测TDL-4的用户,卡巴斯基实验室有许多个人产品可供选择,包括卡巴斯基反病毒和卡巴斯基互联网安全套装,以及一系列的专用工具,譬如TDSSKiller,它不仅可以检测恶意软件的最新变种,对之前的变种同样有效。

TDSSKiller下载:



PS:由于蛋疼的排版问题,大部分的截图没有上传,想看的可以到原文地址查看:http://www.securelist.com/en/analysis/204792157/TDSS_TDL_4

本文是本人手工翻译,如有异议欢迎提出,我将立刻改正,谢谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 3魅力 +1 人气 +2 收起 理由
小小梦 + 1 精品文章
a45601236qq + 1 辛苦了
Johnkay.Young + 1 感谢提供分享

查看全部评分

就爱来卡饭
发表于 2011-1-28 16:35:25 | 显示全部楼层
前排支持,虽然偶非专业人士
看不太懂
xxqqwx
发表于 2011-1-28 16:55:40 | 显示全部楼层
支持下。
yippeesoft
发表于 2011-1-28 17:10:34 | 显示全部楼层
虽然看不大懂
但是绝对支持技术贴!!
顶技术帝
z2009
发表于 2011-1-28 17:29:30 | 显示全部楼层
不懂,仅前排支持
zuo
发表于 2011-1-28 17:32:47 | 显示全部楼层
谢谢分享,基本看得懂[:26:]
bbs2811125
发表于 2011-1-28 17:43:05 | 显示全部楼层
技术型文章纯支持了~
kxmp
发表于 2011-1-28 17:49:57 | 显示全部楼层
看来我该准备些ark工具
灯光笔墨
发表于 2011-1-28 23:57:34 | 显示全部楼层
前来支持,也看不懂。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-25 16:56 , Processed in 0.154241 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表