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/
