NTFS隐写

前言

引言

NTFS交换数据流(Alternate DataStreams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其它文件可以“寄宿”在某个文件身上。利用ADS数据流,我们可以做很多有趣的事情,同时对于企业安全来说这类问题也隐藏着巨大的风险。本文主要讨论利用方式以及如何防御这类攻击。

这篇文章介绍Windows下NTFS文件系统的ADS(alternate data

利用方式 文件隐藏

streams,交换数据流)特性;实例演示如何利用ADS将文件隐藏到任何宿主上(宿主可以是文件夹、文件以及磁盘根目录);文章最后将提供两个小工具,利用它们来检测和清除隐藏在宿主上的文件。

在NTFS分区创建ADS数据流文件有两种形式:一是指定宿主文件;二是创建单独的ADS文件。常用的创建命令有两个:echo和type,echo用于输入常规字符,type则用于将文件附加到目标文件,此类用法通常为CTF出题时候使用。

文章目录

指定宿主文件

0×1.什么是NTFS交换数据流(ADS)

这类情况可以使用命令

0×2.NTFS交换数据流隐藏文件实例

echo 9527 > 1.txt:flag.txt

优信彩票购彩大厅,a.如何利用NTFS交换数据流隐藏文本文件

创建目标文件:

b.如何利用NTFS交换数据流隐藏图片文件

优信彩票购彩大厅 1

c.如何利用NTFS交换数据流隐藏可执行文件

正常情况文件无法查看到,可以使用命令:

0×3.如何检测和清除NTFS-ADS隐藏的文件

dir /r

0×1.什么是NTFS交换数据流(ADS)

文件内容可以使用命令notepad 1.txt:flag.txt 进行查看和编辑 查看到文件名:

NTFS交换数据流(alternate data

优信彩票购彩大厅 2

streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们的系统中的。创建一个数据交换流文件的方法很简单,命令为"宿主文件:准备与宿主文件关联的数据流文件"。

文件内容可以使用命令:

这一段是百科上面的内容,大致了解一下即可,后面会有实例演示。

notepad 1.txt:flag.txt

0×2.NTFS交换数据流隐藏文件实例

进行查看和编辑:

这一部分内容在Windows系列操作系统的NTFS分区上都能适用。

优信彩票购彩大厅 3

实验环境:Windows 10

此类文件可以通过直接删除宿主文件清除。

实验分区:E盘根目录(NTFS分区,ADS是NTFS文件系统的特性,不适用于FAT32文件系统)

单独的ADS数据流文件

在E盘根目录中有这些文件:

这类可以通过命令

01/*切换到E盘根目录*/

echo hide > :key.txt

02C:WindowsSystem32>e:

来进行创建:

03E:>

优信彩票购彩大厅 4

04

创建之后在目录下无文件,也没有依赖的宿主文件,并且此类文件在当前目录命令行下是无法查看的,因为它是依赖于文件夹的ADS数据流文件:

05/*查看E盘根目录中有哪些内容*/

优信彩票购彩大厅 5

06E:>dir

因此需要退到上级目录进行查看:

07

可以进行编辑:

082012/12/15  21:03          5 123.txt

像这类文件的清除一种是通过删除文件夹的方式,但是假如这个文件是创建在系统根目录如何进行处理,此时需要用到WinHexTools-Open Disk功能。

092012/05/29  20:15    346,112 aaa.exe

优信彩票购彩大厅 6

102012/09/26  07:36     72,294 bbb.jpg

选中目标盘符,找到目标文件夹。

112012/01/04  04:10     61,952 lads.exe

优信彩票购彩大厅 7

122012/04/27  10:17     87,424 streams.exe

可以进行查看:

132012/12/15  21:12            test

优信彩票购彩大厅 8

14/*

如需删除只需在WinHex选中之后按Delete即可。 webshell后门

15* 123.txt 是一个文本文件,

由于windows xp之后的系统对于ADS文件都没有执行权限,因此隐藏此类webshell需要用到文件包含来进行配合。

16* aaa.exe 是一个可执行文件,

首先创建被包含文件index.php:s.txt。

17* bbb.jpg 是一张图片,

内容为:

18* lads.exe和streams.exe是用于检测交换数据流的程序,后面会用到,

优信彩票购彩大厅 9

19* test是一个空文件夹。

然后参考:https://blog.csdn.net/nzjdsds/article/details/81260524的方法,Hex之后通过利用PHP 可变变量进行二次转换,696e6465782e7068703a732e747874为index.php:s.txt的hex编码,最终test.php中内容如下:

20*/

访问test.php即可:

实验环境和所有用于实验的文件全部介绍完毕,下面开始实际操作 。

优信彩票购彩大厅 10

a.如何利用NTFS交换数据流隐藏文本文件

使用最新版D盾扫描也无法发现问题。

注意,下面的命令需要用"管理员身份"打开CMD,否则很可能执行不成功。

优信彩票购彩大厅 11

01/*

PS:这边另外补充一点,文件最好寄宿在纯静态文件,因为像php文件修改后会改变属性,系统层相当于生成了一个新的文件,导致ADS文件失去宿主而消失。 文件上传

02* 使用echo命令,将"www.qingsword.com"这几个字符写入到123.txt:222.txt中,

这一块主要是用于Bypass上传黑名单验证,因为在我们上传数据流文件时,形如test.php::$DATA、test.php:a.txt这样的后缀,windows系统必定需要创建一个对应的宿主文件test.php,同时假设我们需要上传的文件内容为:

03*echo命令以写字符的方式创建了":222.txt"这个交换数据流文件,

下面是上传是会出现的现象:

04* 其中123.txt是宿主文件,222.txt是交换数据流文件,

| 上传的文件名 | 服务器表面现象 | 生成的文件内容 || --- | --- | --- || Test.php:a.jpg | 生成Test.php | 空 || Test.php::$DATA | 生成test.php | || Test.php::$INDEX_ALLOCATION | 生成test.php文件夹 | || Test.php::$DATA.jpg | 生成0.jpg | |

05* 222.txt在图形界面下是不可见的,就像寄生虫一样,寄生在123.txt上。

可以注意到上传文件名为Test.php::$INDEX_ALLOCATION时会生成对应的文件夹,利用此种特性也可以用于突破UDF提权时遇到无法创建文件夹的问题。

06*/

优信彩票购彩大厅 12

07E:>echowww.qingsword.com>>123.txt:222.txt

病毒免杀

08

前面提到过在windows xp 03之后的版本的数据流文件都被禁止了执行权限,因此可以使用wscript来运行vbs,此处在C盘根目录使用命令:

09/*

type1.vbs > :2.vbs

10* 使用记事本程序打开这个交换数据流文件,

创建了依赖C盘存在的数据流文件c::2.vbs,没有工具正常是无法清除的。

11* 打开后可以添加删除222.txt的内容并保存,但是不能另存为。

使用命令:

12*/

wscript c::2.vbs

13E:>notepad 123.txt:222.txt

可以成功执行vbs。

14

优信彩票购彩大厅 13

15/*

优信彩票购彩大厅 14

16* 将123.txt使用交换数据流的方式寄生到test文件夹上,

很容易就被确认为病毒。

17*type命令和echo命令不同,type命令是将已经存在的一个文件,

优信彩票购彩大厅 15

18* 用交换数据流的方式寄生到另外一个文件或文件夹上,

使用命令:

19* test文件夹是一个空文件夹,寄生123.txt后,文件夹大小显示仍然是0。

type test.dll > 1.txt:ms

20*/

优信彩票购彩大厅 16

21E:>type123.txt>>test:123.txt

再次使用360联网完全体进行查杀,无法发现此类木马。

22

优信彩票购彩大厅 17

23/*

使用命令:regsvr32 1.txt:ms

24* 使用notepad打开这个寄生在test上的文本文件,

运行dll,当然由于病毒行为太明显没作处理,360还是会动态查杀的,这个配合一点其他的免杀技术完全过掉也不难,这边不再多做赘述。

25* 如果命令提示符是在其他盘符,可以使用这个数据流文件的完整路径来打开,

优信彩票购彩大厅 18

26* 比如当前盘符在C盘,可以这样打开:

小结

27*"C:>notepad E:test:123.txt"

目前杀毒软件和webshell查杀对ADS数据流技术的查杀支持并不是很好,并且木马可能进行依赖于盘符的驻留方式,希望能本文能有所帮助。

28*/

检测

29E:>notepad test:123.txt

检测的工具常见的有LADS (List Alternate Data Streams)、Streams、Sfind等

30

清除

31/*将123.txt寄生到E盘根目录*/

清除方式目前一个是个人用过的winhex和删除宿主文件这两种方式,另一个就是借助相关工具如IceSword删除。

32E:>type123.txt>>E::123.txt

参考

33

*本文作者:3unshine,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

34/*

35* 通过相对路径来打开,也可以通过绝对路径来打开,

36* 命令是"E:>notepad E::123.txt"

37*/

38E:>notepad :123.txt

这种方法能很好的将一个文本文件使用交换数据流的形式寄生在另外一个文件上(任何类型的文件上),从一定程度上起到了隐藏文本文件的目的。

b.如何利用NTFS交换数据流隐藏图片文件

图片文件也能寄生在任何类型的文件上,下面给出几个实例:

01/*寄生到123.txt上*/

02E:>typebbb.jpg>>123.txt:bbb.jpg

03

04/*寄生到test文件夹上*/

05E:>typebbb.jpg>>test:bbb.jpg

06

07/*寄生到aaa.exe这个可执行文件上*/

08E:>typebbb.jpg>>aaa.exe:bbb.jpg

09

10/*寄生到E盘根目录*/

11E:>typebbb.jpg>>E::bbb.jpg

12

13/*

本文由优信彩票购彩大厅发布于互联网资讯,转载请注明出处:NTFS隐写

您可能还会对下面的文章感兴趣: