分享
 
 
 

NTFS上的交换数据流

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

NTFS上的交换数据流

-------------------------------------------------------

| lake2 <lake2@mail.csdn.net> |

| http://mrhupo.126.com |

| 2004-12-30 |

-------------------------------------------------------

(如果你要转载本文我很荣幸,但请保留作者信息,谢谢)

----目录--------

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 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) - http://www.heysoft.de/nt/ntfs-ads.htm

Streams v1.1 (Sysinternals) - http://www.sysinternals.com/ntw2k/source/misc.shtml

NT Objectives Forensic Toolkit (sfind.exe) –(http://www.ntobjectives.com/)

要提取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.exe or start c:\a.txt:nc.exe

在Win2000下查看进程只能看到载体文件,而XP下则可以发现整个ADS。图3是在XP下用tlist的截图。

【图3】

3.7 与IIS相关

在IIS中访问ADS会有一些有趣的事情发生,这个参见我的另一篇Blog《交换数据流(ADS)与IIS的前世与今生》(http://blog.csdn.net/lake2/archive/2005/01/26/269659.aspx)。

4.附言

谢谢你看完我的文章 :)

5.参考文章

bigworm翻译,《NTFS不利的一面》(http://www.xfocus.net/articles/200212/466.html

xundi,《关于NTFS文件系统中的数据流问题》(http://www.xfocus.net/articles/200103/81.html

H. Carvey,《The Dark Side of NTFS》(http://patriot.net/~carvdawg/docs/dark_side.html

Damon Martin,《Windows, NTFS and Alternate Data Streams》(http://www.giac.org/practical/gsec/Damon_Martin_GSEC.pdf

《NTFS Streams - Everything you need to know》(http://www.diamondcs.com.au/index.php?page=archive&id=ntfs-streams

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有