sleuthkit/sleuthkit
GitHub: sleuthkit/sleuthkit
Sleuth Kit 是一个开源数字取证工具库,通过命令行工具分析磁盘和文件系统镜像,帮助调查人员从中发现和恢复电子证据。
Stars: 3111 | Forks: 702
[](https://travis-ci.org/sleuthkit/sleuthkit)
[](https://ci.appveyor.com/project/bcarrier/sleuthkit)
# [The Sleuth Kit](http://www.sleuthkit.org/sleuthkit)
## 简介
The Sleuth Kit 是一个开源的取证工具包,用于分析
Microsoft 和 UNIX 文件系统及磁盘。The Sleuth Kit 使
调查人员能够识别和恢复在事件响应期间获取的镜像或从实时系统中
获取的镜像中的证据。The Sleuth Kit 是
开源的,这允许
调查人员验证该工具的
操作或根据特定需求对其进行自定义。
The Sleuth Kit 使用了由 Wietse Venema 和 Dan Farmer 编写的 The Coroner's Toolkit (TCT) 的文件系统分析工具的
代码。为了实现平台独立性,对 TCT
代码进行了修改。此外,
添加了对 NTFS(参见 [wiki/ntfs](http://wiki.sleuthkit.org/index.php?title=NTFS_Implementation_Notes))
和 FAT(参见 [wiki/fat](http://wiki.sleuthkit.org/index.php?title=FAT_Implementation_Notes))文件系统的支持。以前,The Sleuth Kit
被称为 The @stake Sleuth Kit (TASK)。The Sleuth Kit 现在
独立于任何商业或学术机构。
建议将这些命令行工具与
Autopsy Forensic Browser 结合使用。Autopsy,(http://www.sleuthkit.org/autopsy),
是 The Sleuth Kit 工具的图形界面,可自动化
许多流程并提供诸如图像搜索
和 MD5 图像完整性检查等功能。
与任何调查工具一样,使用 The Sleuth
Kit 发现的任何结果都应该使用第二个工具重新创建以验证数据。
## 概览
The Sleuth Kit 允许分析由 'dd' 或其他创建原始镜像的类似应用程序创建的磁盘或文件系统镜像。
这些工具属于底层工具,每个工具执行单一任务。当
结合使用时,它们可以执行完整的分析。有关这些工具的更详细
描述,请参阅 [wiki/filesystem](http://wiki.sleuthkit.org/index.php?title=TSK_Tool_Overview)。
这些工具以文件系统分层的方法进行简要描述。每个
工具名称都以分配给该层的字母开头。
### 文件系统层:
一个磁盘包含一个或多个分区(或切片)。每个
分区都包含一个文件系统。文件系统的示例包括
Berkeley Fast File System (FFS)、Extended 2 File System (EXT2FS)、
File Allocation Table (FAT) 和 New Technologies File System (NTFS)。
fsstat 工具以 ASCII 格式显示文件系统详细信息。
此显示中的数据示例包括卷名、最近挂载
时间以及 UNIX 文件系统中每个“组”的详细信息。
### 内容层(数据块):
文件系统的内容层包含实际的文件内容
或数据。数据以大块存储,名称包括块、
片段和簇。这一层中的所有工具都以字母
'blk' 开头。
blkcat 工具可用于显示文件系统的特定
单元的内容(类似于 'dd' 带一些参数所做的事情)。
单元大小取决于文件系统。'blkls' 工具显示
文件系统所有未分配单元的内容,
从而产生已删除内容的字节流。可以搜索输出以查找
已删除的文件内容。'blkcalc' 程序允许识别
'blkls' 生成的镜像中某个单元在原始镜像中的
单元位置。
The Sleuth Kit 区别于 TCT 的一个新特性是针对
'blkls'(或 TCT 中的 'unrm')的 '-l' 参数。此参数列出了数据
单元的详细信息,类似于 'ils' 命令。'blkstat' 工具显示
特定数据单元的统计信息(包括分配状态
和组号)。
### 元数据层(inode):
元数据层描述文件或目录。此层包含
描述性数据(如日期和大小)以及数据单元的地址。此层使用计算机
可以高效处理的术语来描述
文件。存储数据的
结构具有诸如 inode 和目录项之类的名称。此层中的所有工具
都以 'i' 开头。
'ils' 程序列出元数据结构的某些值。
默认情况下,它只列出未分配的值。'istat'
以 ASCII 格式显示特定
结构的元数据信息。The Sleuth Kit 的新增功能是 'istat' 将显示
符号链接的目标。'icat' 函数显示
分配给元数据结构的数据单元的内容
(类似于 UNIX 的 cat(1) 命令)。'ifind' 工具将识别
哪个元数据结构分配了给定的内容单元或
文件名。
有关 NTFS 中寻址元数据属性的信息,请参阅
[NTFS wiki](http://wiki.sleuthkit.org/index.php?title=NTFS_Implementation_Notes)。
### 人机接口层(文件):
人机接口层允许以
比直接使用元数据
层更方便的方式与文件进行交互。在某些操作系统中,存在用于
元数据和人工接口层的独立结构,而其他系统则将它们结合在一起。
此层中的所有工具都以字母 'f' 开头。
'fls' 程序列出文件和目录名称。此工具将
同时显示已删除文件的名称。'ffind' 程序将
识别分配了给定
元数据结构的文件的名称。对于某些文件系统,还将识别已删除的文件。
#### 时间线生成
时间线有助于快速了解文件活动的概貌。
使用 The Sleuth Kit 可以轻松创建文件 MAC 时间的
时间线。mactime (TCT) 程序将
由 fls 和 ils 生成的 'body' 文件作为输入。要获取有关已分配和
未分配文件名的数据,请使用 'fls -rm dir',而对于未分配的 inode
请使用 'ils -m'。请注意,这些工具的行为
与 TCT 中的不同。有关更多信息,请参阅 [wiki/mactime](http://wiki.sleuthkit.org/index.php?title=Mactime)。
#### 哈希数据库
哈希数据库用于快速识别文件是否已知。获取文件的
MD5 或 SHA-1 哈希值,并使用数据库来识别
之前是否见过它。这样即使
文件被重命名,也能进行识别。
The Sleuth Kit 包含 'md5' 和 'sha1' 工具,用于生成
文件和其他数据的哈希值。
其中还包含 'hfind' 工具。'hfind' 工具允许创建
哈希数据库的索引,并使用
二进制搜索算法执行快速查找。'hfind' 工具可以对 NIST
National Software Reference Library (NSRL) (www.nsrl.nist.gov) 和
由 'md5' 或 'md5sum' 命令创建的文件执行查找。有关更多
详细信息,请参阅
[wiki/hfind](http://wiki.sleuthkit.org/index.php?title=Hfind) 文件。
#### 文件类型分类
不同类型的文件通常具有不同的内部结构。
'file' 命令随大多数版本的 UNIX 一起提供,The Sleuth Kit 中也附带了其
副本。它用于识别
文件或其他数据的类型,而不管其名称和扩展名如何。
它甚至可以用于给定的数据单元,以帮助识别哪个文件
使用该单元进行存储。请注意,'file' 命令通常使用
文件前几个字节中的数据,因此它可能无法
根据中间的块或簇来识别文件类型。
The Sleuth Kit 中的 'sorter' 程序将使用其他 Sleuth Kit
工具将文件系统镜像中的文件分类到各个类别中。
这些类别基于配置文件中的规则集。
'sorter' 工具还将使用哈希数据库来标记已知的恶意文件
并忽略已知的正常文件。有关更多详细信息,请参阅 [wiki/sorter](http://wiki.sleuthkit.org/index.php?title=Sorter)
文件。
## 许可协议
TSK 根据其最初开发的地点使用了多种
许可协议。这些许可位于 [licenses
目录](https://github.com/sleuthkit/sleuthkit/tree/develop/licenses)中。
- 文件系统工具(在
[tools/fstools](https://github.com/sleuthkit/sleuthkit/tree/develop/tools/fstools)
目录中)在 IBM 开源许可协议和 Common
Public License 下发布。
- srch_strings 和 fiwalk 在 GNU Public License 下发布
- tools 目录中的其他工具在 Common Public License 下发布
- 对 TCT 中原始 'mactime' 的修改以及
'mac-daddy' 在 Common Public License 下发布。
该库使用了在 MIT 和 BSD 3-clause 下发布的实用程序。
## 安装
有关安装说明,请参阅 INSTALL.txt 文档。
## 其他文档
[wiki](http://wiki.sleuthkit.org/index.php?title=Main_Page) 包含更详细地
描述所提供工具的文档。The Sleuth Kit Informer 是一份包含
新文档和文章的新闻通讯。
## 邮件列表
SourceForge 上存在邮件列表,包括用户列表和低音量
公告列表。
Brian Carrier
carrier at sleuthkit dot org
标签:HTTP工具, UML, 客户端加密, 数字取证, 数据恢复, 磁盘调查, 自动化脚本