你看不见我~~
NTFS数据流
什么是NTFS数据流呢?在介绍NTFS数据流之前,我们先简单了解一下NTFS文件系统。
NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。如果要让FAT文件系统转换为NTFS文件系统,可以在“命令提示符”中输入“convert 分区盘符: /fs:ntfs”,即可将该分区的文件系统转换为NTFS。
NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性。
在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们的系统中的。
查看一个数据交换流文件的方法很简单,格式为“宿主文件:准备与宿主文件关联的数据流文件”。
简单来说吧,就是可以将一个想要隐藏起来的文件,把他的数据流"寄生"在另一个文件的数据流里,实现了隐藏,也就为隐写提供了一种途径,请看下面的实例。
操作方法
下面进行一个简单的隐写。准备一个空文件夹test
,和一个文本文件secret
使用type命令
在文本中写入you find me!
使用
type
命令:
这时我们就完成了一个简单的隐写,打开test文件夹我们可以看到什么都没有的,查看属性,也显示为0字节大小,表面上看确实是没有东西的了。但是我们使用notepad就能看到其内容了:
或者使用工具
ntfsstreamseditor
(安利一波)查看文件夹,也是可以发现隐藏数据的:
当然不只是文本,图片也可以进行隐写:
可以使用
mspaint
(windows自带画图工具),或者上述工具查看:
1 | mspaint test:1.jpg |
使用echo命令
type命令是将一个存在的文件寄生,而echo可以创建文件和寄生同时完成:
1 | echo you find me >> test:secret.txt |
效果相同。
一些安全问题
在WinXP中,可执行文件(exe)可以和文本文件一样实现真正的隐藏,这可能也是当时大多数杀毒软件添加数据流病毒查杀功能的原因.
在Win7之后的系统中,微软可能出于安全考虑,不允许直接运行交换数据流可执行文件,必须要创建符号链接,这个符号链接是可见的(当然可以使用其他手段隐藏这个符号链接),并且这个符号链接创建出来后不能复制到其他地方,只能在创建的那个位置使用命令行方式调用(鼠标双击会报错)。
我们可以使用刚才的工具ntfsstreamseditor
来查看并管理一个文件的数据流,可以对数据流进行导出、删除等等。如果将一个木马程序寄生在一个文件上,比如自解压格式文件等等,就可能对电脑数据等等造成伤害。
## 参考文章 https://www.qingsword.com/qing/812.html
https://baike.baidu.com/item/ntfs%E6%95%B0%E6%8D%AE%E6%B5%81/1885985?fr=aladdin#3