关于数据流文件的一些信息

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于数据流文件的一些信息
又是一篇关于Windows,NTFS和cmd的帖子哈~貌似本板块可以改名为中国cmd联盟了~嘻嘻~废话不多说,进入正题你用过卡巴斯基么?是不是每次复制文
件都会显示这个:screen.width*0.7){this.resized=true;
this.width=screen.width*0.7;this.alt='Click here to open new
window';}"哈哈,这个就是今天我们要讨论的话题:NTFS数据流。

NTFS分区
的数据流是一个子文件系统允许额外的数据连接到一个特别的文件中,现在的FAT文件系统格式是不支持数据流格式的。

简单点说就是给在NTFS分区格式的
文件添加了一个标记。

除了上面举的卡巴斯基的例子,在WinRAR添加压缩文件时,在高级选项中就有"保存文件数据流"的选项。

再看看卡巴斯基对NTFS数据流干了些什么,Kaspersky把文件的验证指纹信息保存到NTFS数据流里面,如
果病毒/木马修改了这个文件,Kaspersky就会很快发现文件校检有误,这就是
为什么Kaspersky安装完毕要必须"全盘检查"一次,这样可以大幅度加快以后
的病毒检查速度!那么,怎样添加NTFS数据流呢?这就和cmd有关了CODE:[Copy to clipboard]dir C:1.txt看看1.txt里的内容,记住哦~然后CODE:[Copy to clipboard]dir c:2.txt:stream.txt怎么样,糊涂了吧~先看看
2.txt的属性:0 Bytes,打开2.txt看看有什么?什么都没了~然后在输入:CODE:[Copy to clipboard]notepad 2.txt:stream.txt看看,出来什么了?
惊讶吧~其实每个文件都可以有多个流的,用这个NTFS的特性我们可以隐藏文
件哦~而且,还可以,隐藏木马^_^实际上,流还可以不依赖于文件,下面的命令
也是合法的(先不要试,否则可能会有点麻烦):CODE:[Copy to clipboard]dir e::stream.txt这是把流绑到了文件夹上,这种流就更隐蔽了,一般情况下
要想删除流只有将其宿主删除,如果你执行了刚才的命令,并且是在根文件夹
上执行的,如果你想删除它,那就恭喜你要格盘了:),不过有现成的工具可以
使用的,这个就是:Streams v1.53 Reveal NTFS alternate streams这么样,又是sysinternal的作品哦~我要说的就说完了,下面是网上收集的关于NTFS
流的资料了Quote:NTFS上的交换数据流NTFS上的交换数据流转载:来源不详--目录--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了解此重要概念。

ADS是NTFS文件系统特有的性质,也就是前面说的多数据流文件除了主流之外的流,但基于API的Win32却不能
很好的支持ADS。

例如我们可以把一个文件以流的形式附加到另一个文件(载体)中,但是对于Windows资源管理器来说载体文件没有发生任何变化(包括其大小、修改时间等)。

由此将会产生一系列问题。

下面就让我们来看看ADS的一些性质及应用吧。

3、性质和应用3.1创建创建ADS很简单,语法是载体文件名:看个命令行下面的例子:echo This is lake2's 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 lake2's 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)-Streams
v1.1(Sysinternals)-NT Objectives Forensic Toolkit(sfind.exe)-(要提取
ADS必须要第三方工具,NTRootKit工具包里的cp可以做到(cp也可以用于创
建流);NTRootKit工具包我一直没有找到,google上一搜全是那个NTRootKit
后门,只好自己用C写了一个。

这也不会要求你是编程高手,C语言里的文件
函数完全可以支持ADS的创建、删除、提取,只需把ADS当成一个文件来处理
就是了。

3.4保存与传输前面说了,ADS在非NTFS分区就会丢失,那么说来在
非NTFS分区就无法保存ADS了吗?直接保存没有办法,我们可以间接保存啊。

呵呵,这样需要借助一个软件,你也应该有的,它就是WinRAR。

对含有ADS的
文件加压时,找到高级选项,那里有一个"保存文件流数据",打上勾(图2),
呵呵,你就可以把ADS压缩到rar文件里了。

这个rar文件可以保存到非NTFS
分区的--注意啊,是保存,不能解压出来的。

【图2】如果要传输ADS,最好是用资源管理器打开对方的共享再复制粘贴;如果你想用其他方式传输的话大概
就只能传输包含ADS的rar文件了。

3.5信息隐藏要保密信息,传统的做法是
加密。

虽然加密后信息内容变成了无法直接读出的密文,不过也等于告诉人家
这是秘密,就不安全了;但是如果我把信息藏起来让你找不着不就ok了吗,所以一种叫做"信息隐藏"的技术就被提出来了。

古装戏里常常有隐写术,就是一
张白纸在平时就是一张普通的白纸,但在特殊的作用下预先写好的字就会显示
出来。

用这个来比喻信息隐藏是最为恰当的了。

信息隐藏是目前信息安全研究
的热门领域,实现方法也很多,最流行的大概就是以bmp图像文件为载体,通
过替换文件每个字节无关紧要的最低的一位来实现的。

呵呵,不过有一种实现
简单的信息隐藏技术就在我们眼前。

对,就是利用ADS!既然Windows不能很
好的察觉ADS,那么我们就可以把要保密的文件以ADS方式保存。

不过这里提
醒一下,利用ADS实现信息隐藏的安全性不是很高,不过也不是很低--我想应
该没有人没事就花大量时间用lads.exe检测着玩吧。

另外,大多数杀毒软件并不能检测ADS,所以我们可以利用流让杀毒软件pass后门。

例:type nc.exe a.txt:nc.exe原文件nc.exe会被金山毒霸查出来,处理之后尽管a.txt:
nc.exe内容与nc.exe完全一样,但并不会被金山毒霸发现。

3.6运行前面说了可利用ADS让后门躲避杀毒软件,但如果不能运行的话还不是没用。

那怎么运
行呢?命令行下面直接运行a.txt:nc.exe是不行的,应该用start命令。

关于这个命令的详细用法你自己打help start看看吧。

start命令运行可执行的ADS时要用绝对路径或者当前路径用./加文件名。

看例子:start./a.txt:
nc.exeorstart c:\a.txt:nc.exe在Win2000下查看进程只能看到载体文件,而XP下则可以发现整个ADS。

图3是在XP下用tlist的截图。

3.7与IIS相关
在IIS中访问ADS会有一些有趣的事情发生,这个参见我的另一篇Blog《交换数据流(ADS)与IIS的前世与今生》()。

4.附言谢谢你看完我的文章:)5.参考文章bigworm翻译,《NTFS不利的一面》()xundi,《关于NTFS文件系统中的数据流问题》()H.Carvey,《The Dark Side of NTFS》
(_side.html"rel=nofollow)Damon Martin,《Windows,NTFS and Alternate Data Streams》(_Martin_GSEC.pdf"rel=nofollow)《NTFS Streams-Everything you need to know》()Quote:NTFS不利的一面翻译+整理:By Bigworm不当之处请指正这篇文章是根据H.Carvey的The Dark Side of
NTFS(Microsoft's Scarlet Letter)翻译的,可以自由转载,但请保持译者和来源以及文章的完整性.简介:微软的平台不断在增加.公司用的服务器和桌面操作系统运行的一般是winNT和win2000,而家庭用户和学生用的系统一般是winXP.这些平台是很受欢迎的并且被大范围的使用.可是使用这些操作系统的用户和管理员却对NTFS文件系统的某个特性知道的很少,那就是"交换数据流"(alternate data streams).NTFS因为它的稳定性强大的功能以及它所提供的安全性而成为一种更优越的文件系统,NTFS交换数据流(ADSs)是为了和Macintosh的HFS文件系统兼容而设计的,它使用资源派生(resource forks)来维持与文件相关的信息,比如说图标及其他的东西.而微软提供了一种方法通过Windows explorer来创建特殊的ADSs,检测这种特殊的ADSs的必要工具和功能相当缺乏.说来也奇怪,系统一直以来都有允许用户创建ADSs以及在这种流文件中执行隐藏代码的功能和工具.Microsoft KnowledgeBase中Q 101353号文章
承认了基于API的win32不能很好的支持ADSs.这篇文章的目的是详细的介绍ADSs是怎么被创建和利用的,以及隐藏在ADSs中的代码是怎么被执行的.基于
不同的系统(NT 2K XP)处理ADSs也是很不同的.创建ADSs创建ADSs的语法相对比较简单和直接.比如说创建和文件myfil e.txt相关联的ADSs,只需简单的用冒号把文件名和ADSs名分开即可.D:\ads echo This is an ADS
myfile.txt:hidden此外,ADSs还可用另外一个文件的内容来创建.D:\ads echo This is atest file test.txt D:\ads type test.txt myfile.txt:hidden然后你可以用记事本去检验一下看看,命令如下:d:\ads notepad myfile.txt:hidden可是,用dir命令去看不出任何变化,Windows Explorer也没有任何可用的转换和设置来检测这种新建的ADSs的存在.此外,ADSs可以被
创建以及与目录列表相关联,而不是与一个文件关联.这种特性在文章的后面将会显示出他的重要性,但现在我们介绍怎么创建ADSs以及足够了.D:\ads echo
This ADS is tied to the directory listing:hidden这种类型的ADSs也可
以通过type和notepad命令来创建.ADSs文件的内容并不只限于text(文本)数据,任何二进制信息的流都可以组成一个文件,而且ADS也就是一个文件而已.可执行的东西也能够相当容易的隐藏在ADSs中,看下面的例子:D:\ads type c:\winnt\notepad.exe myfile.txt:np.exe D:\ads type c:
\winnt\system32\sol.exe myfile.txt:sol2.exe同样,像图片文件,声音文件
或任何其他的数据流都可以隐藏在ADSs中.最后,Windows Explorer提供了一
种方法来创建特殊的ADSs(RUSS00)看下图:我们在值那一栏可以填入很多东西
图一如果某个用户没有写文件的权限,那么他就不能在该文件上添加ADS.此
外,windows文件保护功能可以防止系统文件被替换,但是他不能阻止有适当权
限的用户在这些系统文件上添加ADSs,有个工具System File Checker(sfc.exe)可以检查受保护系统文件是否被覆盖,可是它不能检测ADSs.检测,查看,利用ADSs如前所述,微软并没有提供工具来检测ADSs的存在.现在检测ADSs最好的
工具是由Fra nk Heyne写了Lads.exe.这个工具现在的版本是3.10,它是一个
命令行工具看下图:图二从上图我们可以看出lad.exe多有用了,不仅可以显示ADSs的存在,还可以显示ADSs的路径和大小.我们仔细注意和myfile.txt相关
联的四个文件,其中三个是以很像扑克里黑桃形状的ASCII开头的,另外一个就
是在花括号中有一大串数字和字母的那个文件,这四个文件就是我们用图一所示方法创建的.既然找到了这些文件,我们应该怎么看文件的内容那?其实notepad
就是一个很好的工具,但是这中间还有个陷阱.比如,以下命令就出现我们不希望的结果d:\ads notepad myfile.txt:hidden执行这个命令时notepad就会问是否创建一个新文件,这个就很奇怪了,因为myfle.txt:hidden我们早就创建了.为了执行的结果是我们所希望的,应该输入下面的命令:d:\ads echo This is another ADS myfile.txt:hidden.txt d:\ads notepad myfile.txt:hidden.txt这样就出现了我们所希望的结果,文件名后增加的扩展名允许用notepad打开ADSs,这种方法也同样适用于其他的ADSs,比如:d:\ads
notepad myfile.txt:np.exe ADSs是NTFS文件系统的特征,所以带有ADS的
文件如果被移动到其他的文件系统,比如FAT,FAT32或者ext2上,ADS就会被删掉,因为这些文件系统都不支持ADS,如果是在NTFS分区之间移动,ADSs就会被
保留下来.删除ADSs相对简单,用下面的命令即可d:\ads type myfile.txt myfile.bat d:\ads del myfile.txt d:\ads ren myfile.bat myfile.txt
现在用lads.exe看一下,可以看到所有的ADSs都不见了.执行ADSs前面的例子
中,我们已经把可执行的代码藏在ADSs中,这个看起来好像没什么用处,除非代
码可以自动执行.其实,start命令就可以用来执行这些代码,现在我们再来创建ADSs d:\ads type d:\winnt\notepad.exe myfile.txt:np.exe但是在2000上执行时会出现错误,这时因为我们提供的路径信息不够所以,我们应该指明路径,不管时绝对路径还是相对路径.比如,下面的任何一个命令都可以:d:\ads start d:\ads\myfile.txt:np.exe d:\ads start.\myfile.txt:np.exe是
不是出现了记事本?当命令执行时进程会出现比较有意思的现象.例如,运行pslist.exe会出现下图情况图三出现的进程名是myfile.txt:看看任务管理器中的情况:图四再看看下图:图五我们来看看在xp的管理器中进程的情况:图六还有一种可选择的用来执行隐藏文件流的方法,我们来示范一下,先在桌面上
创建一个快捷方式,项目位置填入d:\ads\myfile.txt.假设你创建的流文件是sol2.exe(也就是用这个命令type d:\winnt\system32\sol.exe myfile.txt:sol2.exe),现在我们到创建的快捷方式的属性里修改,让快捷方式指向d:
\ads\myfile.txt:sol2.exe,观察一下快捷方式的图标,是不是起了变化?现在
我们双击这个图标,就可以执行这个文件了.看执行后的结果:图七还有一种比
较简便的方法是直接在注册表中的run键下添加数据流文件的完整路径:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run,下次系统启动时就会自动运行该隐藏文件在开始的运行框中也可以执行ADSs比如:file:///d:/ads/myfile.txt:sol2.exe对于使用perl的管理员可用下面的
代码执行ADSs my$file='d:\ads\myfile.txt:sol2.exe';`$file`;把文件
存为ads.pl,用下面的命令即可执行d:\perl ads.pl其实用windows的WSH
也可以执行ADSs:d:\ads echo MsgBox"VBS file to test ADSs"ads.vbs d:\ads wScript ads.vbs d:\ads type ads.vbs myfile.txt:ads.vbs d:\ads wScript myfile.txt:ads.vbs或者:D:\ads start.\myfile.txt:ads.vbs
总结:ADSs是NTFS的一个特征,它是为了和HFS兼容而设计的.可是由于比较
难于被发觉,所以对于管理员来说是一种危险,现在29A这个组织的Bennie和Ratter已经发布了一种叫做W2K.Stream病毒,这个病毒就是利用ADSs的.我们
并不能以不使用NTFS来作为解决这个问题的办法,因为NTFS在安全性和可靠性方面是有很大作用的.其实,管理员应该对文件和目录正确的使用
DACLs(discretionary access control lists),并且经常使用工具比如说
lads.exe来扫描他们自己的系统.文章中有些地方经过我自己的整理,删除了有
些无关紧要的内容如果想看原文可以参上面提到的工具链接如下:lads
pslists:又是一篇关于Windows,NTFS和cmd的帖子哈~貌似本板块可以改名
为中国cmd联盟了~嘻嘻~废话不多说,进入正题你用过卡巴斯基么?是不是每次复制文件都会显示这个:screen.width*0.7){this.resized=true;
this.width=screen.width*0.7;this.alt='Click here to open new
window';}"哈哈,这个就是今天我们要讨论的话题:NTFS数据流。

NTFS分区
的数据流是一个子文件系统允许额外的数据连接到一个特别的文件中,现在的FAT文件系统格式是不支持数据流格式的。

简单点说就是给在NTFS分区格式的
文件添加了一个标记。

除了上面举的卡巴斯基的例子,在WinRAR添加压缩文件时,在高级选项中就有"保存文件数据流"的选项。

再看看卡巴斯基对NTFS数据流干了些什么,Kaspersky把文件的验证指纹信息保存到NTFS数据流里面,如
果病毒/木马修改了这个文件,Kaspersky就会很快发现文件校检有误,这就是
为什么Kaspersky安装完毕要必须"全盘检查"一次,这样可以大幅度加快以后
的病毒检查速度!那么,怎样添加NTFS数据流呢?这就和cmd有关了CODE:[Copy to clipboard]dir C:1.txt看看1.txt里的内容,记住哦~然后CODE:[Copy to clipboard]dir c:2.txt:stream.txt怎么样,糊涂了吧~先看看
2.txt的属性:0 Bytes,打开2.txt看看有什么?什么都没了~然后在输入:CODE:[Copy to clipboard]notepad 2.txt:stream.txt看看,出来什么了?
惊讶吧~其实每个文件都可以有多个流的,用这个NTFS的特性我们可以隐藏文
件哦~而且,还可以,隐藏木马^_^实际上,流还可以不依赖于文件,下面的命令
也是合法的(先不要试,否则可能会有点麻烦):CODE:[Copy to clipboard]dir e::stream.txt这是把流绑到了文件夹上,这种流就更隐蔽了,一般情况下
要想删除流只有将其宿主删除,如果你执行了刚才的命令,并且是在根文件夹
上执行的,如果你想删除它,那就恭喜你要格盘了:),不过有现成的工具可以
使用的,这个就是:Streams v1.53 Reveal NTFS alternate streams这么样,又是sysinternal的作品哦~我要说的就说完了,下面是网上收集的关于NTFS
流的资料了Quote:NTFS上的交换数据流NTFS上的交换数据流转载:来源不详--目录--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了解此重要概念。

ADS是NTFS文件系统特有的性质,也就是前面说的多数据流文件除了主流之外的流,但基于API的Win32却不能
很好的支持ADS。

例如我们可以把一个文件以流的形式附加到另一个文件(载体)中,但是对于Windows资源管理器来说载体文件没有发生任何变化(包括其大小、修改时间等)。

由此将会产生一系列问题。

下面就让我们来看看ADS的一些性质及应用吧。

3、性质和应用3.1创建创建ADS很简单,语法是载体文件名:看个命令行下面的例子:echo This is lake2's 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 lake2's 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)-Streams
v1.1(Sysinternals)-NT Objectives Forensic Toolkit(sfind.exe)-(要提取ADS必须要第三方工具,NTRootKit工具包里的cp可以做到(cp也可以用于创
建流);NTRootKit工具包我一直没有找到,google上一搜全是那个NTRootKit
后门,只好自己用C写了一个。

这也不会要求你是编程高手,C语言里的文件
函数完全可以支持ADS的创建、删除、提取,只需把ADS当成一个文件来处理
就是了。

3.4保存与传输前面说了,ADS在非NTFS分区就会丢失,那么说来在
非NTFS分区就无法保存ADS了吗?直接保存没有办法,我们可以间接保存啊。

呵呵,这样需要借助一个软件,你也应该有的,它就是WinRAR。

对含有ADS的
文件加压时,找到高级选项,那里有一个"保存文件流数据",打上勾(图2),
呵呵,你就可以把ADS压缩到rar文件里了。

这个rar文件可以保存到非NTFS
分区的--注意啊,是保存,不能解压出来的。

【图2】如果要传输ADS,最好是用资源管理器打开对方的共享再复制粘贴;如果你想用其他方式传输的话大概
就只能传输包含ADS的rar文件了。

3.5信息隐藏要保密信息,传统的做法是
加密。

虽然加密后信息内容变成了无法直接读出的密文,不过也等于告诉人家
这是秘密,就不安全了;但是如果我把信息藏起来让你找不着不就ok了吗,所以一种叫做"信息隐藏"的技术就被提出来了。

古装戏里常常有隐写术,就是一
张白纸在平时就是一张普通的白纸,但在特殊的作用下预先写好的字就会显示
出来。

用这个来比喻信息隐藏是最为恰当的了。

信息隐藏是目前信息安全研究
的热门领域,实现方法也很多,最流行的大概就是以bmp图像文件为载体,通
过替换文件每个字节无关紧要的最低的一位来实现的。

呵呵,不过有一种实现
简单的信息隐藏技术就在我们眼前。

对,就是利用ADS!既然Windows不能很
好的察觉ADS,那么我们就可以把要保密的文件以ADS方式保存。

不过这里提
醒一下,利用ADS实现信息隐藏的安全性不是很高,不过也不是很低--我想应
该没有人没事就花大量时间用lads.exe检测着玩吧。

另外,大多数杀毒软件并不能检测ADS,所以我们可以利用流让杀毒软件pass后门。

例:type nc.exe a.txt:nc.exe原文件nc.exe会被金山毒霸查出来,处理之后尽管a.txt:
nc.exe内容与nc.exe完全一样,但并不会被金山毒霸发现。

3.6运行前面说了可利用ADS让后门躲避杀毒软件,但如果不能运行的话还不是没用。

那怎么运
行呢?命令行下面直接运行a.txt:nc.exe是不行的,应该用start命令。

关于这个命令的详细用法你自己打help start看看吧。

start命令运行可执行的ADS时要用绝对路径或者当前路径用./加文件名。

看例子:start./a.txt:
nc.exeorstart c:\a.txt:nc.exe在Win2000下查看进程只能看到载体文件,而XP下则可以发现整个ADS。

图3是在XP下用tlist的截图。

3.7与IIS相关在IIS中访问ADS会有一些有趣的事情发生,这个参见我的另一篇Blog《交换
数据流(ADS)与IIS的前世与今生》()。

4.附言谢谢你看完我的文章:)5.参考
文章bigworm翻译,《NTFS不利的一面》()xundi,《关于NTFS文件系统中的
数据流问题》()H.Carvey,《The Dark Side of NTFS》
(_side.html"rel=nofollow)Damon Martin,《Windows,NTFS and Alternate Data Streams》(_Martin_GSEC.pdf"rel=nofollow)《NTFS Streams-Everything you need to know》()Quote:NTFS不利的一面翻译+整理:By Bigworm不当之处请指正这篇文章是根据H.Carvey的The Dark Side of
NTFS(Microsoft's Scarlet Letter)翻译的,可以自由转载,但请保持译者和来源以及文章的完整性.简介:微软的平台不断在增加.公司用的服务器和桌面操作系统运行的一般是winNT和win2000,而家庭用户和学生用的系统一般是winXP.这些平台是很受欢迎的并且被大范围的使用.可是使用这些操作系统的用户和管理员却对NTFS文件系统的某个特性知道的很少,那就是"交换数据流"(alternate data streams).NTFS因为它的稳定性强大的功能以及它所提供的安全性而成为一种更优越的文件系统,NTFS交换数据流(ADSs)是为了和Macintosh的HFS文件系统兼容而设计的,它使用资源派生(resource forks)来维持与文件相关的信息,比如说图标及其他的东西.而微软提供了一种方法通过Windows explorer来创建特殊的ADSs,检测这种特殊的ADSs的必要工具和功能相当缺乏.说来也奇怪,系统一直以来都有允许用户创建ADSs以及在这种流文件中执行隐藏代码的功能和工具.Microsoft KnowledgeBase中Q 101353号文章
承认了基于API的win32不能很好的支持ADSs.这篇文章的目的是详细的介绍ADSs是怎么被创建和利用的,以及隐藏在ADSs中的代码是怎么被执行的.基于
不同的系统(NT 2K XP)处理ADSs也是很不同的.创建ADSs创建ADSs的语法相对比较简单和直接.比如说创建和文件myfi le.txt相关联的ADSs,只需简单的用冒号把文件名和ADSs名分开即可.D:\ads echo This is an ADS
myfile.txt:hidden此外,ADSs还可用另外一个文件的内容来创建.D:\ads echo This is atest file test.txt D:\ads type test.txt myfile.txt:hidden然后你可以用记事本去检验一下看看,命令如下:d:\ads notepad myfile.txt:hidden可是,用dir命令去看不出任何变化,Windows Explorer也没有任何可用的转换和设置来检测这种新建的ADSs的存在.此外,ADSs可以被
创建以及与目录列表相关联,而不是与一个文件关联.这种特性在文章的后面将会显示出他的重要性,但现在我们介绍怎么创建ADSs以及足够了.D:\ads echo This ADS is tied to the directory listing:hidden这种类型的ADSs也可以通过type和notepad命令来创建.ADSs文件的内容并不只限于text(文本)数据,任何二进制信息的流都可以组成一个文件,而且ADS也就是一个文件而已.可。

相关文档
最新文档