【数据加解密篇】利用NTFS数据流(ADS)隐写加密取证分析

文摘   2024-11-06 22:20   江苏  

数据的价值远超案件,很多数据的价值没在当前的案件中发挥作用,并不代表着它就没有用。

在 NTFS 文件系统中,可以通过隐写来将一些不为人知的、甚至是恶意的程序、代码隐藏在"NTFS 数据流(ADS)"等特殊文件中,一般的文件管理器和工具是无法发现和对其处理的,本文通过一些介绍,来初步认识下常用的Windows操作系统NTFS文件系统数据流---【蘇小沐】


1

实验环境



CMD终端
X-Ways Forensics,[v20.5,x64]
FTK Imanger ,[v4.7.1.2]
NTFSStreamsEditor,[v2.0.2]
Windows 11 专业工作站版,[24H2(26100.2161)]

1



NTFS数据流(ADS)

NTFS数据流是Windows NTFS文件系统的高级特性,称NTFS数据流:NTFS交换数据流、NTFS可选数据流(Alternate Data Streams, ADS)。

NTFS数据流 (ADS)  给文件附加了一些额外的信息,这些本不属于该文件的信息就叫做"交换数据流";而文件本身(宿主文件)则叫做该文件的"主数据流(Primary Data Stream)"可选数据流无法从原始文件长度中得知,但会随着对原始文件的删除、移动、复制到不支持可选数据流的分区(如 FAT 分区、exFAT或网络共享位置)上而丢失

  • 主数据流:能够通过文件资源管理器直接看到的。

  • 非主数据流:寄宿于主数据流中,需要通过特殊的方法才可查看。一个文件有一个主数据流和多个非主数据流,也就是说NTFS数据流允许文件与多个数据流进行关联。

例如,一个名为 text.txt 的文件可以包含一个名为  text.txt:(格式是  "文件名:流名")的可选数据流,并只允许知道该数据流名称或专门为数据流而设计的浏览程序查看。因此可以利用这部分数据流的特性进行文件隐藏,可以向ADS中写入文本、音频、图像、可执行程序等文件,来达到隐写的效果。

 

一、创建ADS数据流(CMD命令)

以下命令均在cmd终端中执行,非PowerShell终端。

在NTFS分区创建ADS数据流文件有两种形式:一是指定宿主文件;二是创建单独的ADS文件。

同理还可将图片、视频等文件寄生到另一个文件或者文件夹、根目录上。

1

宿主文件(主数据流:正常可见文件)


【创建宿主文件"蘇小沐密码本.txt",这里内容设置为:SXM12345678】

2

常用的两个创建命令:echo和type


【echo语法:echo "要隐藏的附加文件内容" >宿主文件:要隐藏的附加文件】 

【命令注释:先将要隐藏的附加文件内容写入到"要隐藏的附加文件"中,并与宿主文件进行关联,即寄生在宿主文件文件上。

【type语法:type 要隐藏的附加文件 > 宿主文件:要隐藏的附加文件

1

 


(一)

依附文本:文本隐藏到文本中(以下命令均在cmd中执行)

隐藏"蘇小沐真实密码本.txt"文件到"蘇小沐密码本.txt"里面(蘇小沐真实密码本.txt不可见)【FTK看不到】

【语法:echo "要隐藏的附加文件内容" >宿主文件:要隐藏的附加文件】 

【命令注释:先将要隐藏的附加文件内容写入到"要隐藏的附加文件"中,并与宿主文件进行关联,即寄生在宿主文件文件上。

1

寄生宿主文件(文件不同名)


【命令:echo "DFIR***" > 蘇小沐密码本.txt:蘇小沐真实密码本.txt】

【命令注释:先将内容"DFIR***"写入到"蘇小沐真实密码本.txt"中,并与宿主文件"蘇小沐密码本.txt"进行关联,即"蘇小沐真实密码本.txt"文件寄生在"蘇小沐密码本.txt"文件上。

通过dir 命令查询文件列表还是只看到原来的"蘇小沐密码本.txt"文本,但是文本的最后修改时间变化了。

2

寄生宿主文件(与宿主文件同名)


【命令:echo "DFIRSXM***" > 蘇小沐密码本.txt:蘇小沐密码本.txt】

【命令注释:先将内容"DFIRSXM***"写入到"蘇小沐密码本.txt"中,并与宿主文件"蘇小沐密码本.txt"进行关联,即"蘇小沐密码本.txt"文件寄生在"蘇小沐密码本.txt"文件上。拥有了两个同名文件!!!

2

 


(二)

依附文件夹:文本隐藏到文件夹/根目录

寄生宿主文件夹/根目录(与宿主文件同名)

为了区分,这里新建一个ADS123文件夹,里面新建一个"蘇小沐密码本123.txt",内容为SXM2345678。

【命令:echo "SXMDFIRSXM***" >  :蘇小沐密码本.txt】

【命令注释:先将内容"SXMDFIRSXM***"写入到"蘇小沐密码本123.txt"中,并与宿主文件夹/根目录进行关联,即ADS文件夹拥有了两个同名文件!!!


二、隐藏文件检测方法


1



(一)

CMD终端命令

【局限性】:因为直接通过文件资源管理器是看不到哪些文件被隐藏的,所以想通过CMD终端命令直接打开被隐藏文件需要具备两大前提:前提(1)是需要知道隐藏文件被寄生在何处。前提(2)是需要知道隐藏文件的全称。

1

CMD终端more命令


可以通过more指令操控数据流的方式查看文件内容。(more是一个在命令行界面中用于逐页显示文本文件内容的命令)

(1)查看寄生宿主文件:

【more语法:more < 宿主文件】

【more语法:more < 宿主文件:要隐藏的附加文件】

(2)查看寄生宿主文件夹/根目录

【more语法:more < :要隐藏的附加文件】

2

CMD终端notepad命令


txt文本类的可用cmd的notepad命令,打开记事本程序查看隐藏文件内容。

【语法:notepad 原始文件:隐藏文件】

2

 


(二)

X-Ways专业软件


借助WinHex、X-Ways等专业软件分析查看ADS数据流。

1

查看寄生宿主文件(文件不同名)


将文件所在盘加载到X-Ways软件中,选中文件夹可看到文件夹数目为2,说明文件夹下有2个文件。点击进入看到"蘇小沐密码本.txt"文件图标下方有"…"点点点,表示这个文件有下级。

在"蘇小沐密码本.txt"文件上右键浏览,就可以看到其ADS数据流文件了。

右键浏览,就可以看到"蘇小沐真实密码本.txt"文件了,其属性为ADS。

2

查看寄生宿主文件(与宿主文件同名)


使用X-Ways更新磁盘快照可以看到现在文件夹数目变成了3,txt文件的数目变成了2。

同样的方法右键浏览会发现里面还有两个文件,文件属性都是ADS。

【时间属性:新增加的文件】

3

查看寄生宿主文件夹/根目录(与宿主文件同名)


使用X-Ways更新磁盘快照可以看到,ADS下面有两个同名文件,但只有一个文件属性是ADS。

3

 


(三)

NTFSStreamsEditor软件

【官网:Releases · studycpp/NTFSStreamsEditor --- 发布 ·studycpp/NTFSStreams编辑器

NTFSStreamsEditor 是一种 NTFS 数据流处理工具,提供强大的搜索和扫描功能来帮助识别危险。同时,NTFSStreamsEditor 提供了最强大的删除、追加、导入、导出、备份和恢复等完整处理方式,是 NTFS 数据流处理的必备工具。

1

查看寄生宿主文件(文件不同名)


可以自定义磁盘/文件夹来缩短检索时间,如果有隐藏的ADS,会直接显示在搜索结果中。

2

查看寄生宿主文件(与宿主文件同名)


还可以对ADS文件选择导出、删除、附件、备份等功能。

双击文件就可以查看文本内容。

4



(四)


其实用FTK Imager也可以简单分析查看ADS,右侧证据树显示有下级符号,一般是可以继续展开预览的。

5

 


(五)


可以通过将ADS文件移到非NTFS分区的系统中,不过容易丢失ADS数据流,造成数据受损等,不太建议这种方式。使用NTFSStreamsEditor和X-Ways等比较方便。
总结

书写片面,纯粹做个记录,有错漏之处欢迎指正。

公众号回复关键词ADS自动获取资源合集。

【声明:欢迎转发收藏,个人创作不易,喜欢记得点点赞!!!转载引用请注明出处,著作所有权归 [蘇小沐] 所有】

【注:共享资源收集于官网或互联网公开材料,仅供学习研究,如有侵权请联系删除,谢谢!】

记录

开始编辑:2024年 11月 04日

最后编辑:2024年 11月 06日

 

END


往期精彩回顾



▲ 【电子取证篇】WinHex入门教程合集,看这一篇就够了




▲ 【数据恢复篇】浅谈FTK Imager数据恢复功能



▲ 【电子书赠送福利】蘇小沐电子数据取证实务教程!风吹哪页读哪页,哪页不会撕哪页!


 

关注我,了解更多取证知识,别忘+看哦!

DFIR蘇小沐
致力于电子数据取证(数字取证)与事件应急响应实战技术经验分享,计算机取证、手机取证、网络取证与犯罪调查、数据恢复、模糊图像增强、司法鉴定等技术研究【蘇小沐】
 最新文章