NTFS数据流文件

0x01、流

流(STREAM)是NTFS下的概念,目前只有NTFS支持流。流依附于文件而存在,可以在流中存储2进制数据,文字或者其它一些东西。每个文件可以含有多个流,当流所依附的文件被删除,流也随之消失。流的名字和文件名以“:”分隔,例如:ABC:A.ABC就是文件名,而流的名字为“A.”

0x02、NTFS数据流文件

NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。

NTFS数据流文件,也叫Alternate data streams,简称ADS,是NTFS文件系统的一个特性之一,允许单独的数据流文件存在,同时也允许一个文件附着多个数据流,即除了主文件流之外还允许许多非主文件流寄生在主文件流之中,它使用资源派生的方式来维持与文件相关信息,并且这些寄生的数据流文件我们使用资源管理器是看不到的。

0x03、为何我们看不到数据流文件

我们之所以无法在系统中看到NTFS数据流文件,是因为Windows中的很多工具对数据流文件的支持并不是很好,就像“资源管理器”,我们无法在“资源管理器”中看到有关数据流文件的变化。

0x04、创建数据流文件

NTFS流文件分为两种,一种是附于宿主文件,另一种是单独的数据流文件。它有两种编辑的方法,一是系统自带的命令,另一种是使用
NTFS Streams info工具

1、系统自带命令

echo "this is a stream file" > :test1.txt

这条命令创建了一个数据流,对于dir或者资源管理器是完全看不到的,其实就是隐藏的,就连del命令也不能够删除流文件。使用

notepad :test1.txt

才能够看到它

还可以关联到宿主文件下

我们先创建一个test.txt文件,输入this is the main file,我们关联一个流文件给他

输入

echo "this is a stream file" > test.txt:stream.txt

我们就创建了一个名为stream.txt,内容为“this is a stream file”的数据流文件,并与宿主文件test.txt进行了关联。当然我们没有办法找到这个流文件,同时查看宿主文件test.txt发现内容并没有什么变化,但是他的大小可能会变哦。这是我们输入

notepad test.txt:stream.txt

就可以查看到我们刚才输入的流文件

这样就是一些简单的数据流文件隐藏

2、使用NTFS Streams info工具

数据流文件是不局限于文本文档的,任何文件都可以作为数据流文件,包括可执行程序,图片,声音等等。
这就至少造成两个隐患:一是黑客入侵后可能将黑客工具通过数据流隐藏起来,当然也有病毒发作后将病毒文件进行隐藏的;二是通过某些途径,让数据流文件可以自动执行,起到隐藏木马的效果。

0x05、使用NTFS文件流与winrar 打造免杀木马

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

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

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

0x06、那么如何防范呢?

1、专业检测NTFS数据流文件的工具有Sfind.exe、Streams.exe、lads.exe等

2、常见到的自解压文件,不要双击直接运行,可以在自解压文件上点击鼠标右键,选择“用Winrar打开”,如果发现其中的文件夹是空的,那么就要留个心眼了,很可能这就是一个数据流木马陷阱。

3、不管杀毒软件是不是能查杀NTFS数据流木马,木马程序运行后,在内存中还是会还原出来的,一般的杀毒软件都带有内存监控功能,可以将木马程序在内存中拦截下来。因此,勤升级杀毒软件也是防范NTFS数据流木马比较有效的办法。

也有杀毒软件利用数据流的特性,如卡巴斯基扫描过文件之后,就以数据流的形式标记为白名单,这样却导致用户的硬盘空间被大量占用了,所谓的卡巴斯基吃硬盘就是这样,造成多少用户的困扰。