骨灰级取证工具The Sleuth Kit导出全部已删除文件

The Sleuth Kit是命令行工具和 C 库的集合,可可以借助它分析磁盘镜像并从中恢复文件。它在Autopsy和许多其他开源和商业取证工具的幕后使用。

支持DD、E01、AFF格式镜像的分析。支持NTFS, FAT, ExFAT, UFS 1, UFS 2, EXT2FS, EXT3FS, Ext4, HFS, ISO 9660, 和YAFFS2文件系统。可以实时运行在系统上,分析本地磁盘。

这是一个在2008年开源的项目,更新到现在,直接前往Github下载Windows版本命令行工具。

1
https://github.com/sleuthkit/sleuthkit/releases


解压后发现很多exe程序,可以用命令行运行,每个exe都有特定的作用,可以在命令行中直接运行查看使用提示,或者去官网查看更加细致的手册。

1
https://wiki.sleuthkit.org/index.php?title=TSK_Tool_Overview

恢复文件

假设我们现在有一个E01镜像,想要恢复某个文件,可以使用The Sleuth Kit中的小工具按照如下实现:

首先使用mmls查看分区信息

1
mmls -B H:\image\system.E01


我们获取到了两块Basic data partition分区的起始偏移地址,接下来用fsstat探测一下第二个Basic分区的文件系统

1
fsstat -o 0001699840 H:\image\system.E01


发现是NTFS,除此之外还告诉了MFT的起始簇和一些其他的基本信息。

接着用fls工具探测这个分区上已经被删除的文件

1
fls -prd -o 0001699840 h:\image\system.E01


探测到5个已经被删除的文件以及他们在文件系统上的索引号,其中两个是先删除到回收站后来清空的,继续使用icat将文件内容导出,icat会直接将文件内容输出到控制台,因此需要用>将输出内容重定向到一个新文件。

1
icat -o 0000651264 h:\image\system.E01 61-128-1 > 1.png


这样一个文件就恢复成功了。

坑点解析:

千万不要使用PowerShell运行icat,PowerShell重定向导出的文件2.png不是用二进制写入的,看一下文件头是BOM,是用TEXT写入的文件,导出的文件打不开,而且文件要大一些,这个问题研究了两小时,一度让我怀疑是不是The Sleuth Kit已经年久失修有问题不好用了。


开发脚本一次性导出

我的需求是导出全部的已删除文件,The Sleuth Kit目前没有这个功能,但是可以通过结合上述工具遍历所有文件调用icat导出,这个脚本已经开发好了,是我写的第一个简单小工具,名为ExportDeletedFiles,使用的SleuthKit套件的版本为4.12.1,欢迎下载使用,双击点赞,仓库地址如下:

1
https://github.com/Forensax/ExportDeletedFiles

使用方式

下载源码

1
git clone https://github.com/Forensax/ExportDeletedFiles.git
1
cd ExportDeletedFiles

或者直接下载仓库Release中的源代码


运行main.py

1
python main.py

输入镜像位置


回车运行


运行完成后可以查看日志


导出的文件在export文件夹中,以NTFS分区的偏移地址作为文件夹名称,里面是这个分区导出的被删除文件


参考文章:https://wiki.sleuthkit.org/