2010-08-05 │NTFS数据流的强大……

作者:逍遥乾坤 | 发表时间:2010-08-05 22:10:48 | 分类:网络随笔 | 阅读:14046 | 评论:5180
N多年前的东西了,但是又有几个网络人士了解呢?
============================================================================
原文已经不知出处,感谢原作者奉献以下知识分享。

原文内容:

随着杀毒软件功能的日益强大,木马病毒已经不再局限于设置文件属性来达到隐藏自身的目的。一种更为隐蔽,危害更为巨大的文件隐藏方式正逐渐被木马所利用,通过这种方法,木马可以在系统中“隐形”,甚至躲过绝大多数杀毒软件的查杀,这种方法就是利用NTFS数据流隐藏木马。NTFS数据流本是NTFS文件格式中的一种正常功能,但是却可以被一些木马病毒所利用,而杀毒软件对NTFS数据流文件的检测能力十分薄弱,很多木马病毒就趁此机会,利用NTFS数据流将自己完全隐藏在系统中。下面,就让我们和NTFS数据流木马来一次“亲密接触”。

什么是NTFS数据流?
在介绍NTFS数据流之前,我们先简单了解一下NTFS文件系统。NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。如果要让FAT文件系统转换为NTFS文件系统,可以在“命令提示符”中输入“convert 分区盘符: /fs:ntfs”,即可将该分区的文件系统转换为NTFS。
NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们的系统中的。创建一个数据交换流文件的方法很简单,命令为“宿主文件:准备与宿主文件关联的数据流文件”。

那么为什么我们无法看到系统中的数据流文件呢,是Windows为了防止我们误删数据流文件而故意设置的障碍吗?答案是否定的,我们之所以无法在系统中看到NTFS数据流文件,是因为Windows中的很多工具对数据流文件的支持并不是很好,就像“资源管理器”,我们无法在“资源管理器”中看到有关数据流文件的变化。这种缺陷让木马有机可趁,通过NTFS数据流将自己隐藏起来,从此就从“资源管理器”中消失了。例如Rootkit木马中的文件隐藏功能,就是利用了NTFS数据流。

NTFS数据流的创建实例
相信不少看了上文介绍的读者朋友还是对NTFS数据流一头雾水,没有关系,下面我们通过实例来深入了解一下NTFS数据流。

创建宿主文件
宿主文件在这里指的就是普通文件,是在Windows中可以正常显示、运行、编辑的任何类型文件。我们先来创建一个txt格式的文本文档,把它作为宿主文件。运行“记事本”,随意输入一些内容,例如“测试——宿主文件”,然后将其保存为C:\test\suzhu.txt。接着我们在suzhu.txt上点右键,选择“属性”,可以发现其文件大小为16字节。

关联数据流文件
宿主文件创建完成后,我们再来创建一个数据流文件,将其与宿主文件关联,看看宿主文件会发生什么变化。点击“开始”→“运行”,输入cmd运行“命令提示符”,切换到C:\test\目录中,输入命令“echo "测试——数据流文件" > suzhu.txt:shujuliu.txt”。这样我们就创建了一个名为shujuliu.txt,内容为“测试——数据流文件”的数据流文件,并与宿主文件suzhu.txt进行了关联。
小贴士:在“命令提示符”中输入创建数据流命令后,不会有提示,但数据流文件已经成功创建了。

让我们回到C:\test\目录中,可以发现在该文件夹中只有一个suzhu.txt,而没有数据流文件shujuliu.txt,即使在“命令提示符”中使用“dir”命令也找不到shujuliu.txt。既然宿主文件suzhu.txt和数据流文件shujuliu.txt进行了关联,那么是不是shujuliu.txt的内容合并到suzhu.txt中了呢?我们打开suzhu.txt,其中的内容并没有改变,仍然是“测试——宿主文件”,而文件大小仍是16字节。

那么数据流文件shujuliu.txt哪去了呢?还是用“命令提示符”让它现形吧,在“命令提示符”中输入命令“notepad suzhu.txt:shujuliu.txt”,在弹出的记事本程序中就会出现数据流文件shujuliu.txt的内容。而我们在“命令提示符”中使用type、edit等命令对数据流文件进行编辑时,将会出现错误,这是因为“命令提示符”还不能很好地支持数据流文件。记事本虽然能够打开数据流文件,但并不表示它能完全支持NTFS数据流,这一点我们在“另存为”数据流文件的时候就会发现。

创建数据流文件
我们除了能将数据流文件和宿主文件进行绑定外,还能够创建单独的数据流文件。在“命令提示符”中输入“echo "测试——数据流文件" > :shujuliu2.txt”,这样就创建了一个名为shujuliu2.txt的数据流文件,而这个文件无论是在“资源管理器”还是在“命令提示符”中使用“dir”命令,都是无法看到的。可以说,这个文件已经在系统中隐身了,我们只能通过输入命令“notepad :shujuliu2.txt”得知它的存在,而即使知道它的存在,我们也无法删除,因为命令提示符中“del”命令已经失去了作用。唯一能将之删除的办法,就是删除其上一级目录,如果单独的数据流文件存在于磁盘根目录,那么删除它将是一件很痛苦的事。

文中的数据流文件我们都是以文本文档举的例子,而数据流文件是不局限于文本文档的,任何文件都可以作为数据流文件,包括可执行程序,图片,声音等等。这就至少造成两个隐患:一是黑客入侵后可能将黑客工具通过数据流隐藏起来,当然也有病毒发作后将病毒文件进行隐藏的;二是通过某些途径,让数据流文件可以自动执行,起到隐藏木马的效果。说了那么多,黑客到底是如何利用NTFS数据流进行攻击的呢?接着往下看。

利用NTFS数据流进行攻击
NTFS数据流原理看似很复杂,但是利用起来却很简单,这里我们要用到一款使用率极高的软件Winrar,用它将NTFS数据流打造成最恐怖的黑客武器。

首先创建一个文件夹test,将我们准备好的木马程序muma.exe放到这个文件夹中。进入“命令提示符”,输入命令“type muma.exe:muma.exe”,这样就为muma.exe创建了一个数据流文件,完成后将test文件夹中的muma.exe删除。返回到上一级目录,在test文件夹上单击右键,在出现的菜单中选择“添加到test.rar”。

双击刚才创建的test.rar,点击Winrar工具栏上的“添加”按钮,浏览选中test文件夹。在出现的“压缩文件名和参数”面板中切换到“高级”选项卡,选中其中的“保存文件数据流”选项,点击“确定”即可。

在Winrar中选中test文件夹,点击Winrar工具栏上的“自解压格式”按钮。在“自解压格式”标签的“自解压模块”中选中“Default.SFX”,然后点击“高级自解压选项”按钮。出现高级自解压面板后,在其“常规”标签的“解压后运行”中填入“test:muma.exe”。切换到“模式”标签,勾选其中的“全部隐藏”。全部设置完成后点击“确定”,这样就创建了一个极为隐蔽的自解压木马,甚至可以躲过杀毒软件的查杀,当用户双击这个自解压文件后,就会运行里面的数据流木马。

NTFS数据流木马的查杀
到目前为止,很多杀毒软件仍然不能较好地查杀本机上的NTFS数据流文件和利用数据流制作的木马,可以使用一些专业的NTFS数据流检查工具,找出隐藏在系统中的恶意文件。

专业检测NTFS数据流文件的工具有Sfind.exe、Streams.exe、lads.exe等,这里我们以lads.exe为例进行介绍。lads.exe是一个命令下的工具,需要在“命令提示符”中使用。在“命令提示符”中运行lads.exe,程序会自动检测当前目录中的NTFS数据流文件,如果要检测子目录中的数据流文件,可以在lads.exe运行的同时添加一个参数“/s”,这样就可以检测到子目录中的数据流文件了。对指定文件夹进行检测时,可以使用“lads.exe 文件夹路径”命令。

对于上文中介绍的那种利用NTFS数据流制作的木马自解压文件,也是可以防范的。首先当我们下载到一个自解压文件时,不要双击运行,可以在自解压文件上点击鼠标右键,选择“用Winrar打开”,如果发现其中的文件夹是空的,那么就要留个心眼了,很可能这就是一个数据流木马陷阱。其次,不管杀毒软件是不是能查杀NTFS数据流木马,木马程序运行后,在内存中还是会还原出来的,一般的杀毒软件都带有内存监控功能,可以将木马程序在内存中拦截下来。因此,勤升级杀毒软件也是防范NTFS数据流木马比较有效的办法。

评论

发表评论

  • 昵称:
  • 邮箱: (可选,保密)
  • 网址: (可选)
  • QQ: (可选,保密)
  • 内容:
  • 验证码: