12.3. 隐藏文件

未匹配的标注

隐藏文件

如果已经在系统上植入了文件,有一些很好的方法可用手隐藏它们,以阻止或迟滞检测。诸如Windows之类的操作系统提供了许多能够隐藏文件系统中信息的方法,包括文件属性和备用数据流。

文件属性是操作系统的一个功能,它允许将文件标记为具有某些属性(如隐藏)。标记为隐藏的文件不会自动显示在常规的目录列表或文件管理程序(如 Windows资源管理器)中。虽然用这种方式隐藏文件并不能提供完整保护,因为更高级的检测技术可以发现用这种方式隐藏的文件。另外,只需要进行几次单击操作,很多文件管理器会自动显示隐藏的文件。

下面是隐藏数据的其他一些方法。

使用备用数据流(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

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

用隐写术隐藏文件

隐藏文件的另外一种方式是采用一种称为隐写术(Steganography)的流程。该流程不是一种新的方法,而是一种被数字时代吸收的老方法。使用这种技术,可以将字面上的任何东西,包括可执行文件和任何其他信息,隐藏到众目睽睽之下,而人人熟视无睹。

在深入说明之前,首先强调一下加密和隐写术之间的区别。加密是将一段明文转换为密文,即不可读的文本,以防止原始消息被泄露给未授权方。加密不做什么?加密不会阻止任何人理解正在传输的信息,因为,加密数据可能被拦截和检查。但是,没有最为重要的密钥,密文是无法被轻易破译的。

现在对比一下隐写术的流程。在该流程中,数据被隐藏在其他信息中,这样,不知道这个秘密的人就无法意识到有数据隐藏在其中。如下面两张图片所示:其中之一是原始图像,另外一个则嵌入了一个文字(图片中也可以嵌入文件,方便在线演示所以使用了嵌入文字)。只用肉眼能看出区别吗?答案是否定的。

普通的图片

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

有隐写术的图片

该图片使用了在线隐写工具
图片解密密码为123 隐藏内容为HELLO WORD

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

为什么使用隐写术而不是标准的加密协议?大致上是因为,如果将消息加密进行传输,会引起那些你希望对其保守秘密的人的不必要注意,而使用隐写术,就可以在第三方的眼皮底下发送信息,而几乎不会引起任何嫌疑。

1.隐写术实践

接下来将介绍整个隐写流程如何工作——如果没有任何入门知识,可能难以理解。
在此用一个JPEG文件作为一个普通文件的例子。由于他们的多功能性和受到广泛支持,并且还能支持丰富的色彩,JPEG文件自20年前推出以来,一直非常受欢迎。一张使用高于平均水平或高端的照相机拍摄的标准数码图片,由于其中有大量的色彩信息,可以很容易的包含大量数据。

除了常规信息外,大多数照片中还会包含数量不同的称为白噪声(white noise)的信息。

白噪声表示任何数据中包含的背景或随机信息。使用隐写术,可以利用这种噪声,以不容易被人注意到的方式,更改信息以隐藏“秘密”。

那么,如何执行这一流程呢?目前,有很多工具可以执行该过程:

Hiding Glyph
该应用程序用于在一个标准的、非压缩的、24位(或更高色深)的位图图像中存储一个或一组文件。该应用程序的优点是,可以选择任何包含合理的颜色变化的图像,作为隐藏文件使其免于被检测的容器。

mp3stego
可以使用mp3stego将数据隐藏在大小与原始数据大小成正比的MP3文件中。基本上,过程是这样的:获取一个WAV文件,将数据隐藏在其中,然后将WAV文件压缩为一个MP3文件。采用这种格式的好处是,可以方便地将任意类型的数据隐藏在一种平凡无奇的格式中。

Hide It In
这是一个专为iPhone设计的应用程序,可将手机摄像头拍摄的照片隐藏在己存储在手机中的图像中。

QuickStego
它是一个免费的应用程序,可以将文本隐藏在图片中,只有QuickStego的用户才能阅读隐藏的文本信息。文本可以通过输入或从工XT文件加载。该应用程序支持BMP、JPG、JPEG和GIF输入图像格式,但将图像以BMP格式输出,并在其中隐藏文本。

Xiao Steganography
它是一个免费软件,可采用将秘密文件隐藏在BMP图像或WAV文件中,且支持加密。可以选择一个BMP或 WAV文件作为目标文件,并将载荷加载到文件本体之中。

OpenStego
这是一个小巧紧凑的应用程序,可执行一系列隐写术操作。可以向伪装文件附加任何类型的秘密消息文件。该程序支持的伪装文件类型包括BMP、GIF、JPEG、JPG、PNGFIWBMP

Camouflage
该软件可在任意类型的文件中隐藏任意类型的文件。例如,可以将一个秘密TXT文件隐藏在标准JPEG图像中。合成文件可称为 “迷彩(camouflaged)”文件,其外观和行为与普通文件无二。

DeepSound
该隐写术工具在Windows平台上免费可用。它可将各种类型的文件隐藏在WAV或FLAC音频文件中。可对加密文件应用密码,并选择输出音频文件的质量。

Steganos Privacy Suite
该应用程序包是一个商业软件套件,包括一个隐写术工具箱以及其他用于隐藏踪迹的工具。Steganos Privacy Suite可以选择一个现有文件并在其中嵌入数据,或者创建一个图像或声音文件用于承载数据。该套件可连接扫描仪或麦克风附件,以创建载体文件。

2.检测隐写术

对抗隐写术的手段是一种被称为隐写分析(steganalysig)的技术。隐写分析技术可用于检测可疑数据,确定数据中是否隐藏有信息,并恢复数据。

检测隐写术最简单的形式,是通过使用统计分析的方法进行隐写分析。该技术采用的是将己知未修改的文件与可疑文件相比较的方法,其思路是将已知文件的 “指纹”与可疑文件进行比较。理论上,通过这种统计比较,可以检测正常生成文件的改变。关键之处在于,原始文件与可疑文件的来源(即数码相机或扫描仪)必须一致,或者尽可能接近匹配,比较结果才能有效。该技术的一些变种则寻找JPEG、MP3和其他文件中采用的己知压缩算法的数据变化,因为这些压缩算法是公开的。

另一种用于检测被隐写术修改以承载数据的文件的技术,是通过分析对文件所做的更改。有许多具备几种不同形式的程序,可以分析给定文件夹或目录中的一组文件,并识别出更改了任意给定数据块的工具。在扫描某个文件并将其与一个已知工具及其工作方式的数据库比较后,程序将标记该文件,以便用户进行进一步的分析。

关于隐写分析技术要谨记的是:可以进一步增加隐藏数据检测的复杂度。可如此考虑:如果想为隐藏的数据增加另一种保护要素,可在联入数据之前对数据进行加密。在这种情况下,即使成功检测到隐藏的数据,也必须执行解密操作。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~