NTFS上的交换数据流.docVIP

  • 7
  • 0
  • 约3.65千字
  • 约 5页
  • 2016-02-25 发布于江苏
  • 举报
NTFS上的交换数据流.doc

NTFS上的交换数据流 时间:2005-3-5 1 来源:黑客基地 |??????? ? lake2 lake2@??????????? | |?????????? ????????????????????? | |???????????????????????????????????????????????? | 目录 1、前言 2、概念 3、性质和应用 ?-3.1 创建 ?-3.2 删除 ?-3.3 检测与提取 ?-3.4 保存与传输 ?-3.5 文件隐藏 ?-3.6 运行 ?-3.7 与IIS相关 4、附言 5、参考文章 1、前言 ??? 交换数据流(alternate data streams,以下简称ADS)也不是什么新东西,但用户和管理员对它的认识知之甚少,本文将结合前人的资料对ADS做一番探讨。如有错误,还望高手赐教。 2、概念 ??? 先来看看微软对多文件流的解释: 在 NTFS 文件系统下,每个文件都可以有多个数据流。值得一提的是,流不是 NTFS 2000 的功能,但是从 Windows NT 3.1 开始流已存在。当在非 NTFS 卷(如 Windows 98 计算机的磁盘分区)下读取文件内容时,只能访问一个数据流。因此,您会觉得它是该文件真正的且唯一的内容。这样的主流没有名称,并且是非 NTFS 文件系统可以处理的唯一一个流。但是当在 NTFS 卷上创建文件时,事情可能不一样。参看图 1 了解此重要概念。 【图1】 ??? ADS是NTFS文件系统特有的性质,也就是前面说的多数据流文件除了主流之外的流,但基于API的Win32却不能很好的支持ADS。例如我们可以把一个文件以流的形式附加到另一个文件(载体)中,但是对于Windows资源管理器来说载体文件没有发生任何变化(包括其大小、修改时间等)。由此将会产生一系列问题。 ??? 下面就让我们来看看ADS的一些性质及应用吧。 3、性质和应用 ? 3.1 创建 ??? 创建ADS很简单,语法是载体文件名:ADS文件名 ??? 看个命令行下面的例子:echo This is lake2s stream a.txt:stream.txt ??? 通过上面的例子我们就很简单的创建了一个ADS,它在windows下并不可见,不信你可以用资源管理器或者dir命令看看a.txt文件的大小是不是0。打开a.txt,可是里面什么内容都没有。当然没有内容,这里ADS是a.txt:stream.txt,内容应该在这个文件里。注意,这里用type命令并不能显示文件a.txt:stream.txt,但是记事本却可以。还是在命令行下输入notepad a.txt:stream.txt,呵呵,看到This is lake2s stream了吧。现在我们用记事本打开a.txt随便修改内容,这并不会影响到流的内容;同样,对a.txt:stream.txt的修改也不会影响到载体文件a.txt。 ? 3.2 删除 ??? 删除ADS最为简单,直接删载体文件就是;但是如果只想删ADS而保留载体文件的话最简单的办法就是把载体文件拉到非NTFS分区去走一趟。因为ADS是NTFS的专利,离开了NTFS文件系统ADS也就烟消云散了。 ??? 如果你只想在NTFS分区删除ADS的话,可以用下面这个批处理: type a.txt a.txt.bak rem type不能支持ADS,所以拿它来备份载体 del a.txt rem 删除载体及ADS ren a.txt.bak a.txt rem 恢复载体文件 ? 3.3 检测与提取 ??? 关于ADS的检测涉及到API编程了,呵呵,这方面我还在努力学习,这里就抄微软的话:Win32 备份 API 函数(BackupRead、BackupWrite 等)可用于枚举文件中的流。 ??? 不过好在已经有检测ADS的软件了,下面几个软件都可以检测: LADS (List Alternate Data Streams) - http://www.heysoft.de/nt/ntfs-ads.htm Streams v1.1 (Sysinternals) - /ntw2k/source/misc.shtml ?NT Objectives Forensic Toolkit (sfind.exe) -(/) ??? 要提取ADS必须要第三方工具,NTRootKit工具包里的cp可以做到(cp也可以用于创建流);NTRootKit工具包我一直没有找到,google上一搜全是那个NTRootKit后门,只好自己用C写了一个。这也不会要求你是编程高手,C语言里的文件函数完全可以支持ADS的创建、删除、提取,只需把ADS当成一个文件来处理就是了。

文档评论(0)

1亿VIP精品文档

相关文档