渗透测试学习之隐藏踪迹与规避检测四

使用备用数据流(NTFS)隐藏文件

在Windows系统上,使用一种鲜有报道的称为备用数据流(Alternate Data Streams, ADS)的功能,即可有效隐藏数据。虽然NTFS文件 系统很早就具备这个功能,但它却从未引起大量关注。

该功能最初是为了确保与Macintosh计算机的兼容性而提供的,但它己被用于其他用途,例如本文所述的这种。ADs提供了在现有文件中隐藏文件数据的能力,而不会以任何方式改变文件的外观或行为。当使用ADS时,文件可以遊开所有传统检测技术以及dir命令和Windows资源管理器的检测。

实际上,ADS的应用是一个重大安全问题,因为它近乎是一种完美的数据隐藏机制。在使用ADS嵌入并隐藏一份数据后,它可以一直保持隐藏,等待着后续攻击者决定运行它。

作为防御者,这似乎是个坏消息,因为以这种方式隐藏的文件用大多数手段无法检
测。但是使用一些先进的方法可以检测到它们。可以使用的一些工具包括:

Sfind 一个用于查找流文件的取证工具
Streams 用于查找ADS流文件
StreamArmour 用于检测ADS的开源软件
关于ADS,本书要说明的一点是,仅仅因为使用ADS可以在系统中隐藏文件,并不能说明这是一个 “邪恶”功能。相反,出于完全正当的原因也可以使用该功能(就像本书已经介绍的许多技术一样)。对于Windows ADS而言,正和Office用该功能确定文件从何处下载。是否曾有过疑问,为何 Word、Excel或其他应用程序,可以很容易地知道文件是从网上而不是从本地驱动器上下载的?这是因为,描述文件获取来源的信息是存储在文件附带的ADS中。根据在ADS中记录的内容,支持ADS的应用程序,例如Word,即可读取信息并采取适当的操作(对于Word或Excel,该文件将以只读方式打开)。

ADS是一种称为分叉文件系统(forked filesystem)的概念的一种实现方式。该概念已出现了很长一段时间,并且存在于过去20年中发布的许多文件系统和操作系统中。使用这种文件系统的目的是将数据和元数据分开存储。例如,一个文件可以将其数据存储在文件系统中,也就是出现在目录或文件夹列表中,代表文件的内容。但与之链接的是元数据,这些数据描述了该文件的作者和来源以及其他一些信息。

有关ADS和分叉文件系统还有一点值得讨论:Linux确实有一个被称为扩展文件属性的功能,具有类似的目的。然而,尽管操作系统支持该功能,但就像Windows一样,它不支持大型文件——超过64KB的文件无法使用该特性。最后,虽然Linux支持该功能,但它只在(Linux允许使用的文件系统中的)支持该功能的数种文件系统上这么做。

创建备用数据流的方法
创建ADS的过程很简单。只需要输入:

triforce.exe> smoke.doc:triforce.ese

执行此命令将读取文件triforce.exe,并将其隐藏在文件smoke.doc之中。
此时,该文件就变成流式的。下一步则是删除刚刚隐藏的原始文件,也就是triforce.exe
作为攻击者,要获取该文件非常简单,只需要输入:

Start smoke.doc:triforce.exe

该命令具有打开隐藏的文件并执行它的功能。

本作品采用《CC 协议》,转载必须注明作者和本文链接
给我个接口,我能连通一个世界!
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!