原文:
annas-archive.org/md5/765e210cce0450716bde57b7647ec979
译者:飞龙
第三部分:Kali Linux 数字取证与事件响应工具
现在开始有趣的部分。从这一点开始,我们将采用动手操作的方法,进行实际实验。在本节中,我们将首先学习如何使用各种工具进行内存(RAM)和存储介质的取证获取。接着,我们将介绍文件恢复和数据雕刻工具,最后深入分析内存转储,并进行不同类型的文物分析。
本部分包含以下章节:
-
第八章,证据获取工具
-
第九章,文件恢复和数据雕刻工具
-
第十章,使用 Volatility 3 进行内存取证和分析
-
第十一章,文物、恶意软件和勒索软件分析
第八章:证据获取工具
在上一章中,我们了解到文档和适当的 DFIR 程序在任何调查中都至关重要。它们通过提供数据真实性的证明和原始证据及文档的保存,确保调查的完整性,这些可以在重复使用工具和方法时获得相同的结果。
本章将重点展示并演示合法的取证技术,通过创建证据的位流副本(包括数据哈希),同时使用各种工具进行驱动器、RAM 和分页文件的证据获取。
这是 DFIR 调查中的第一个技术步骤,因此熟悉本章所涵盖的证据获取工具和流程非常重要。本章结束后,您将了解如何进行正式的证据获取,以供后续章节的分析。
本章将涵盖以下主题:
-
使用fdisk命令进行分区识别
-
为证据完整性创建强哈希
-
使用 DC3DD 进行驱动器获取
-
使用 DD 进行驱动器获取
-
使用 Guymager 进行驱动器获取
-
使用 FTK Imager 在 Wine 中进行驱动器和内存获取
-
使用 Belkasoft RAM Capturer 在 Wine 中获取 RAM 和分页文件
使用 fdisk 命令进行分区识别
对于任何使用 Kali 作为独立操作系统的用户,挂载可移动驱动器的过程非常简单,只需插入可移动存储驱动器,然后运行fdisk命令。然而,对于那些将 Kali 作为虚拟机使用的用户,首先需要确保可移动存储设备被 VirtualBox 识别。为此,请按照以下步骤操作:
- 在运行 Kali Linux 的 VirtualBox 窗口中,点击设备,然后点击USB选项,如下图所示,系统会显示所有检测到的 USB 设备列表。您可以截图或拍照保存此列表,以便进行对比。
图 8.1 – VirtualBox 管理器设备菜单
- 在上述步骤中,检测到了八个设备。现在,您可以插入您的 2GB microSD 卡,然后再次点击设备 | USB,查看您的 microSD 卡显示为哪个设备。在下图中,我们可以看到 USB 设备列表中新增了一项条目,Generic Mass Storage Device [0100]。点击此条目将设备挂载到 Kali Linux 中。
图 8.2 – VirtualBox 管理器 USB 设备菜单
一旦设备被 VirtualBox 识别并在 Kali 中挂载,您应该能在 Kali 桌面上看到设备图标。在以下截图中,我们可以看到 8GB 的 microSD 卡已经挂载并可供 Kali 使用。
图 8.3 – 存储介质桌面图标
- 一旦我们的磁盘已挂载,我们现在可以使用 fdisk 命令查看驱动器的分区详细信息。
现在我们已成功挂载可移动存储驱动器,在下一节中,我们将学习如何使用 fdisk 命令识别设备和分区。
使用 fdisk 命令进行设备识别
对于本练习,一张 8GB 的 Sony Pro Duo 卡通过外部 USB 3.0 卡读卡器连接到我的独立 Kali Linux 桌面。你也可以使用任何其他类型的存储介质进行本练习,因为无论使用何种设备,过程完全相同。在开始任何获取过程之前,我们首先会运行 sudo fdisk -l 命令,列出所有已连接的存储设备,以便区分它们。这样做是必要的,因为我们将不使用设备所分配的存储设备名称,而是使用其磁盘识别信息。
打开一个新的终端,输入以下命令并按下 Enter 键:
sudo fdisk -l
在以下截图中,主驱动器被列为 sda,而附加的 Sony Pro Duo 卡被列为 sdb。
图 8.4 – fdisk –l 命令输出
如上图所示,Sony ProDuo 卡的详细信息如下:
-
Disk:sdb
-
Size:7.4 GB
-
Sector size:512 字节
-
Filesystem:FAT32
如前面的截图所示,Kali Linux 识别了两个设备:
-
sda:包含三个分区的主硬盘
-
sdb:需要进行取证获取或镜像的存储驱动器
对于初次接触 Kali 或任何 Linux 版本或变种的用户,可能会发现 Kali 中的驱动器和分区识别及命名规则与 Windows 设备有所不同。
在 Linux 中,典型的设备可以被称为 /dev/sda,而在 Windows 中,驱动器通常被识别为 Disk 0、Disk 1,依此类推:
-
/dev:这是指所有可以读取或写入的设备和驱动器的路径,这些设备被 Linux 识别
-
/sda:这是指SCSI(即小型计算机系统接口)、SATA 和 USB 设备
sd 代表 SCSI 大容量存储驱动程序,后续的字母(例如,a、b 等)表示驱动器编号:
-
sda:驱动器 0,即第一个识别的驱动器
-
sdb:第二个驱动器或存储介质
虽然 Windows 将分区识别为主分区、逻辑分区和扩展分区,但 Linux 分区则是按照驱动器字母后面的数字进行识别的:
-
sda1:第一个磁盘(sda)上的第一个分区
-
sda2:第一个磁盘上的第二个分区
-
sdb1:第二个磁盘(sdb)上的第一个分区
-
sdb2:第二个磁盘上的第二个分区
有关 Linux 设备命名规范的更多信息,请访问 www.dell.com/support/kbdoc/en-tt/000132092/ubuntu-linux-terms-for-your-hard-drive-and-devices-explained#:~:text=Under%20Linux%2C%20the%20original%20naming,address%2Dwise%20and%20so%20on
.
现在我们可以识别 Linux 文件系统中的驱动器和分区,接下来让我们学习如何为证据生成哈希,以确保完整性。
为证据完整性创建强哈希
为了提供证据未被篡改的证明,必须在法医采集前、期间和之后,对证据驱动器运行加密算法。这些算法会生成一个输出字符串(或哈希输出),该字符串由不同长度的十六进制字符(a–f 和 0–9)组成,具体取决于算法的强度。
常见的加密算法如下:
-
MD5:消息摘要 5
-
SHA-1:安全哈希算法版本 1
-
SHA-256:SHA-2 256 位
注意
有关加密哈希的更多信息,请访问 www.tutorialspoint.com/cryptography/cryptography_hash_functions.htm
。
在 Kali Linux 中,我们可以使用 md5sum、sha1sum 或 sha256sum 命令,后跟设备路径,以生成证据/输入文件的哈希输出。例如,要创建一个 SHA-256 哈希,我们可以使用以下命令,其中 sdx 表示我们试图采集或映像的驱动器:
Sha256sum /dev/sdx.
虽然我提到了 md5sum 命令,但我建议使用更强的算法,如 SHA-1 或 SHA-256,因为 MD5 是较老的算法,可能会受到攻击:
-
MD5 强度:128 位哈希值
-
SHA-1 强度:160 位哈希值
-
SHA-256 强度:256 位值
-
SHA-3 强度:256 位值(但比 SHA-2 更快)
为了对我的 Pro Duo 卡(sdb)生成 MD5 哈希输出,我使用了以下命令:
sudo md5sum /dev/sdb.
为了对我的 Pro Duo 卡(sdb)生成 SHA-1 哈希输出,我使用了以下命令:
sudo sha1sum /dev/sdb.
为了对我的 Pro Duo 卡(sdb)生成 SHA-256 哈希输出,我使用了以下命令:
sudo sha256sum /dev/sdb.
在下面的截图中,我运行了所有前述命令。请注意,SHA-256 输出是最长的。
图 8.5 – 加密算法输出哈希值
重要说明
在进行法医采集或法医映像操作时,原始文件的哈希输出必须始终与法医采集的法医映像的输出相匹配,这可以确保证据及证据副本(法医映像)的完整性。
现在我们已经区分了驱动器并确认了要映像的驱动器(sdb),我们可以开始使用 DC3DD 进行取证映像。尽管我使用的是一块旧的 8GB Pro Duo 存储驱动器来演示 DC3DD 的使用,但你可以使用任何驱动器(无论是便携式还是其他)来练习本章中的工具。请务必在继续之前使用 fdisk -l 命令来识别您的驱动器和分区。
使用 DC3DD 获取驱动器
我们将使用的第一个获取工具是 DC3DD(由 国防部网络犯罪中心 开发)。DC3DD 是非常流行的 数据转储(DD)工具的一个补丁,用于取证采集和哈希处理。
这些是 DD 的功能:
-
位流(原始)磁盘获取和克隆
-
复制磁盘分区
-
复制文件夹和文件
-
硬盘驱动器错误检查
-
硬盘驱动器的取证擦除或数据的取证及安全删除
每当 DD 更新时,DC3DD 也会更新。DC3DD 提供了 DD 的所有优点,并增加了更多的功能,包括以下内容:
-
即时哈希(或工具即时完成的哈希),使用更多算法选择(MD5、SHA-1、SHA-256 和 SHA-512)
-
进度和采集时间监控表
-
将错误写入文件
-
分割输出文件
-
文件验证
-
擦除输出文件(模式擦除)
DC3DD 必须在 Kali Linux 中手动安装。首先,我们将通过使用 apt-get update 命令更新 Kali Linux 的版本。
图 8.6 – 更新 Kali Linux
一旦 Kali 更新完成,您可以通过输入 sudo apt-get install dc3dd 命令手动安装 DC3DD。
图 8.7 – 安装 dc3dd
DC3DD 是一个 CLI 工具,可以通过首先打开终端并输入 dc3dd 在 Kali Linux 中轻松运行。首先,我建议使用 dc3dd --help 命令,它列出了与 dc3dd 一起使用的可用参数:
图 8.8 – dc3dd 帮助选项
如前面屏幕截图所示,显示了使用 dc3dd --help 命令的情况,DC3DD 命令的典型用法如下所示:
dc3dd [option 1] [option 2] ... [option n]
为了创建我 8GB 驱动器的取证映像,我在 dc3dd 中使用了以下选项:
sudo dc3dd if=/dev/sdb hash=sha1 log=dc3dd8gb of=8gbproduo.dd
以下屏幕截图显示了前述命令的输出。
图 8.9 – dc3dd 中的驱动器获取命令
以下列表解释了 图 8.9 中显示的屏幕截图的输出:
-
if:这指定了 输入文件,即我们将要映像的设备。
-
hash:这指定了我们将用于完整性验证的哈希算法类型。在这种情况下,我使用了较旧的 MD5 哈希。
-
log:这指定了日志文件的名称,该文件记录设备和采集的详细信息,包括错误。
-
of:这指定了由 DC3DD 创建的取证镜像的输出文件名。虽然在此示例中指定了 .dd 镜像文件类型,但 DC3DD 还支持其他格式,包括 .img,如稍后示例所示。
应记录设备的大小(以扇区和字节为单位),并在稍后与设备字段的输出结果进行比较。一旦采集过程完成,输入和输出结果将被显示。
在 图 8.10 中,最后一行显示了采集过程的进度和状态,显示了已复制的数据量、经过的时间(以秒为单位)以及成像过程的速度(以 Mbps 计):
图 8.10 – 完成的 dc3dd 输出
设备或文件越大,所需的采集时间就越长。我建议你去泡杯咖啡或饮品,或者看看 Packt 网站上其他精彩的书籍,链接如下:www.packtpub.com/
。
分析 图 8.10 中的结果,我们可以看到相同数量的扇区(15630336)已被成像,没有坏扇区被零替换。我们还可以看到为该镜像创建了精确的 SHA1 哈希,确保我们创建了没有修改的精确副本。
在终端中,我们还可以使用 ls 命令列出目录内容,以确保已经创建了 DC3DD 输出文件(8gbproduo.dd)和日志(dc3dd8gb):
图 8.11 – 使用 ls 命令列出主目录
要访问我们的取证镜像和日志文件,我们可以通过点击桌面左上角的文件夹图标,然后点击 打开文件夹 来进入 /home 目录。
在 Home 文件夹中,第一个文件 8gbproduo.dd 是通过 DC3DD 使用 of=8gbproduo.dd 命令创建的输出镜像。最后一个文件 dc3dd8gb 是日志文件,当我们使用 log=dc3dd8gb 命令时创建:
图 8.12 – Home 文件夹中的取证镜像和日志文件
保留此日志文件非常重要,因为它记录了采集过程及其结果,这些结果在完成时会显示在屏幕上:
图 8.13 – 日志文件中的内容
在 第十二章 Autopsy Forensic Browser 和 第十三章 使用 Autopsy 4 GUI 执行完整的 DFIR 分析 中,我们将使用 Autopsy 分析已获取的取证镜像;然而,调查员也可以根据需要将获取的证据镜像复制或直接克隆到另一台设备上。
作为示例,我们可以将之前获取的取证镜像(8gbproduo.dd)克隆到一个新驱动器上,该驱动器被识别为sdc。执行此任务使用的命令如下:
dc3dd if=8gbproduo.dd of=/dev/sdc log=drivecopy.log
在将镜像复制到驱动器时,目标驱动器的大小应等于或大于镜像文件的大小。
验证映像文件的哈希输出
要验证sdb的哈希输出,可以使用以下命令:
sudo sha1sum /dev/sdb
以下截图显示了前一个命令的输出:
图 8.14 – sha1sum 输出
你还可以使用以下命令:
cat 8gbproduo.dd | sha1sum
以下截图显示了前一个命令的输出:
图 8.15 – cat sha1sum 输出
使用 DC3DD 擦除驱动器
我们已经看到了 DC3DD 作为一个非常强大的取证采集工具的功能,但我还想更进一步,向你介绍它作为数据擦除工具的能力。
DC3DD 可以通过三种方式覆盖数据并擦除驱动器:
-
使用零填充数据和驱动器。使用的命令如下:
dc3dd wipe=/dev/sdb
以下截图显示了前一个命令的输出:
图 8.16 – dc3dd 擦除命令输出
-
使用十六进制模式和pat选项进行数据和驱动器的覆盖和填充。使用的命令如下:
dc3dd wipe=/dev/sdb pat=10101010
以下截图显示了前一个命令的输出:
图 8.17 – 使用模式输出的 dc3dd 擦除命令
-
使用文本模式和tpat选项进行数据和驱动器的覆盖和填充。使用的命令如下:
dc3dd wipe=/dev/sdb tpat=CFSI
以下截图显示了前一个命令的输出:
图 8.18 – 使用文本模式输出的 dc3dd 擦除命令
我们已经介绍了dc3dd工具的使用及其擦除介质的各种方法。现在让我们来看另一个工具,DD,它也可以用于取证数据复制和擦除。
使用 DD 进行驱动器采集
在我们开始使用 DD 之前,我需要再次提醒你注意 DD 的一个特点,即它能够擦除数据、分区和驱动器。因此,你可能会发现 DD 有时被亲切地称为数据销毁者。使用 DD 和 DC3DD 时,一定要首先确认你的设备、分区、输入输出文件和参数。
在本章的练习中,我将使用一个较旧但仍可正常使用的 2GB 闪存驱动器进行 DC3DD 采集过程。
如果你还希望使用 DD 工具,其命令和用法与此非常相似。
你可能需要首先确保可以通过运行 dd –-help 来访问 dd 工具。如果找不到 dd 命令,请通过运行 apt-get update 命令来更新 Kali,然后再次运行 dd –-help 命令。
图 8.19 – dd 帮助选项
为了进行镜像获取,我使用了以下命令:
dd if=/dev/sdb of=produo8gb.img bs=65536 conv=noerror,sync
以下截图显示了前述命令的输出:
图 8.20 – 使用 dd 进行磁盘获取
让我们分析前述命令中的各个选项:
-
If: 输入文件(sdb 设备)
-
Of: 输出文件(取证镜像的名称)
-
Bs: 块大小(默认大小为 512)
-
conv=noerror, sync: 即使出现错误也继续进行映像操作(noerror),如果出现错误,则将块填充为空(sync)。
在前述命令中,指定了 .img 输出文件扩展名;然而,你也可以通过在输出文件的 **(**of) 选项中指定文件扩展名来使用其他格式,例如 .iso。
我们可以通过使用 ls 命令来查看创建的文件,在这里我们也能看到这两个镜像。
以下截图显示了前述命令的输出:
图 8.21 – 主目录中的证据获取文件
我们现在将探索另一个非常流行的获取工具——Guymager,它提供了许多相同的功能,并且具有 图形用户界面(GUI)。
使用 Guymager 进行磁盘获取
Guymager 是另一个独立的获取工具,可用于创建取证镜像,也可以执行磁盘克隆。Guymager 由 Guy Voncken 开发,完全开源,具有许多与 DC3DD 相同的功能,并且仅适用于基于 Linux 的主机。尽管有些调查人员可能更喜欢使用命令行工具,但 Guymager 是一个 GUI 工具,适合初学者,因此可能会被优先选择。
对于这次获取,我将使用与 DC3DD 示例中相同的 2GB 闪存驱动器,在结束时我们可以比较结果。同样重要的是,要记得在获取和创建证据及驱动器的取证镜像时继续使用写保护器,以免向驱动器写入数据或修改原始证据文件。
如同在 DC3DD 获取中所做的那样,我们应该首先确保我们熟悉连接到机器的设备,可以使用 fdisk -l 或 sudo fdisk -l 命令。
运行 Guymager
可以通过在 Kali 中使用菜单启动 Guymager,点击顶部的 Applications 菜单,选择 11 - Forensics 选项,然后展开 Forensic Imaging Tools 菜单,如下截图所示:
图 8.22 – Kali Linux 取证菜单
Guymager 应用程序启动后,显示在 Kali Linux 中识别的现有驱动器。如以下截图所示,正在使用的 2GB 闪存驱动器的详细信息显示如下:
-
Linux 设备:识别为 /dev/sdb
-
型号:USB_Flash_Memory
-
状态:显示为 空闲,因为图像采集尚未开始
-
大小:2.0GB
-
序列号:001CC0C60D…(每个驱动器的序列号都是唯一的)
-
隐藏 区域:未知
图 8.23 – Guymager 界面
如果你的设备没有出现在 Guymager 中,或者你需要添加一个额外的设备,可以点击应用程序左上角的 重新扫描 按钮来检测该设备。
使用 Guymager 采集证据
要开始采集过程,右键点击证据驱动器(本例中为 /dev/sdb)并选择 采集镜像。请注意,如果你希望将证据驱动器克隆到另一个驱动器,还可以选择 克隆设备 选项。如前所述,克隆设备时,目标设备的容量必须等于或大于源(原始)证据驱动器的容量:
图 8.24 – Guymager 中的采集和克隆选项
在实际采集过程开始之前,调查员会被提示输入他们自己的详细信息以及证据的以下两个部分:
-
文件格式:
-
文件扩展名:.dd、.xxx 和 .Exx
-
拆分大小:允许调查员选择多个图像部分的大小
-
案件管理信息:案件编号、证据编号、检查员姓名、描述和备注
-
图 8.25 – Guymager 文件格式选项
-
目标位置:
-
镜像目录:创建的镜像文件和日志(信息文件)的存储位置
-
镜像文件名:镜像文件的名称
-
图 8.26 – Guymager 目标文件夹选项
哈希计算/验证
可以选择并计算多个哈希算法,允许调查员从 MD5、SHA-1 和 SHA-256 中选择。
采集后重新读取源以进行验证 选项用于验证源。
采集后验证镜像 选项用于验证目标。
图 8.27 – Guymager 加密算法选项
在 图 8.27 的底部,注意有两个灰色选项。
Guymager 增加了一个方便的 复制镜像… 按钮(在 图 8.27 中为灰色),可以创建镜像的副本,而无需重复输入数据的过程。
对于新用户,您可能需要指定保存图像文件的目录。在目标部分,点击图像目录按钮并选择您的位置。对于本次采集,我选择了桌面目录作为图像文件和日志/信息文件的保存位置。
以下截图展示了我用于 Guymager 采集的数据,其中选择了桌面作为图像目录,并使用了MD5和SHA-1哈希算法:
图 8.28 – Guymager 采集图像文件夹选项
一旦点击开始按钮(参考图 8.29),请注意状态从空闲变为运行中。进度字段现在还显示了进度条:
图 8.29 – Guymager 驱动器采集过程
仔细查看屏幕左下角的详细信息,我们可以看到大小、图像和信息文件的路径、名称和扩展名、当前速度,以及选择的哈希计算。我们还可以看到图像验证已开启:
图 8.30 – Guymager 进程详情
一旦采集过程完成,状态字段按钮的颜色会从蓝色变为绿色,表示采集过程已完成。如果在哈希验证/计算面板中选择了验证选项,它还会显示完成 - 验证通过。进度条也会显示100%:
图 8.31 – Guymager 完成的采集过程
我们的输出文件和信息文件可以在桌面上找到,因为这已在证据中指定。接下来,我们将通过验证并比较哈希算法来查看这个过程。
探索.info 文件
双击图像目录窗口中的信息文件,可以查看有关采集过程从开始到完成的各种详细信息,包括哈希输出。
这个信息文件包含了比 DC3DD 生成的日志文件更多的数据,包括案件管理的详细信息。
让我们更仔细地查看**.info**文件中的哈希详细信息:
我们可以看到,MD5和SHA-1哈希已经创建并验证,如以下截图中的最后一行所示:
图 8.32 – Guymager 日志文件哈希输出
这完成了使用 Guymager 的证据和驱动器采集过程,相比之前的命令行工具dc3dd和dd,使用起来要简单得多。
让我们看一下另一个采集工具 FTK Imager,它也可以在 Kali Linux 中使用。
使用 FTK Imager 在 Wine 中进行驱动器和内存采集
有几个适用于 Windows 系统的工具,你可能希望利用它们来捕获 Windows 设备上的内存和分页文件。然后,可以在 Kali 机器上使用Volatility 3进行内存分析,使用Autopsy进行磁盘分析。首先让我们来看一下如何在 Kali Linux 中通过 Wine 安装和使用 FTK Imager。
安装 FTK Imager
FTK(Forensic Toolkit)Imager 是一个免费的 Windows 工具,用于实时获取内存(RAM)、分页文件和磁盘映像。
按照以下步骤在 Kali Linux 中安装 FTK Imager,以创建取证数据:
-
首先,从官方网站下载 FTK Imager:
go.exterro.com/l/43312/2022-08-23/f7rytx
。在注册页面填写所有相关信息。完成所有字段后,点击提交按钮,然后你将被提示下载应用程序。 -
下载完成后,点击主页文件夹图标,然后点击下载文件夹,接着选择打开文件夹,如图所示:
图 8.33 – Kali 文件夹菜单
- 接下来,右键点击你下载的AccessData_FTK_Imager文件,选择打开方式,然后选择使用“Wine Windows 程序加载器”打开,如以下截图所示。
图 8.34 – 在 Wine 中打开 FTK Imager
- 现在,FTK Imager 将开始在你的 Kali Linux 机器上安装。点击下一步继续。
图 8.35 – FTK Imager 安装程序
- 接受许可协议,点击下一步接受目标文件夹,然后点击安装按钮。安装完成后,点击完成按钮启动 FTK Imager,如图所示。
图 8.36 – FTK 安装完成
- 你可能会被提示下载 Wine Gecko 安装程序,这是某些应用程序正常运行所必需的。点击安装继续。
图 8.37 – Wine Gecko 安装程序
现在,FTK Imager 应该已经安装并在你的 Kali Linux 机器上运行。
图 8.38 – Kali Linux 中的 FTK Imager 界面
- 若要查看成像和采集选项,请点击文件。
图 8.39 – FTK Imager 文件菜单
- 在文件菜单中,我们可以看到 FTK Imager 提供了多个选项用于证据采集和分析。创建磁盘映像…选项允许你对物理和逻辑驱动器、文件夹内容、CD 和 DVD 执行法医采集。点击创建磁盘 **映像…**选项。
图 8.40 – FTK Imager 源选择选项
- 点击下一步继续。我选择了一个 32 GB 的 Kingston 物理驱动器进行采集。你可以选择任何你想要的驱动器。选定后,点击完成。
图 8.41 – 源驱动器选择
- 接下来,我们需要选择一个目标位置来保存映像文件。点击添加,选择映像类型(Raw、SMART、E01 或 AFF),然后点击下一步。
图 8.42 – 映像采集类型
- 完成表格,填写证据项目信息字段,然后点击下一步。
图 8.43 – 采集证据详情
- 最后,选择映像目标文件夹并输入带扩展名的文件名。
图 8.44 – 映像目标文件夹
我已将映像碎片大小设置为0。这意味着软件将不会碎片化或拆分映像文件。点击完成,然后点击开始以启动采集过程。
图 8.45 – FTK Imager 证据获取过程
创建的磁盘映像现在可以使用你选择的工具进行分析,例如《法医分析:使用 Autopsy》,该内容将在第十章中介绍,内存取证与 Volatility 3 分析,以及第十一章中,工件、恶意软件和 勒索软件分析。
使用 FTK Imager 进行 RAM 采集
我们还可以使用 FTK Imager 执行实时采集,获取 RAM 和页面文件:
- 点击文件和内存捕获。
图 8.46 – FTK Imager 内存和页面文件获取过程
-
接着,选择目标路径,并指定内存转储(.mem)文件的文件名。如果要包含页面文件,请勾选包含 页面文件复选框。
-
点击捕获内存以开始采集过程。
状态栏显示进度,表明该过程何时完成。与静态驱动器采集过程相比,这通常不会花费太长时间。在虚拟机中使用可能会遇到问题;但是,你可以在安装了 Wine 的 Kali 独立安装版或任何 Windows 机器上使用此功能。
图 8.47 – FTK 内存获取过程
这是使用 FTK Imager 获取 RAM 的一个相对简单的过程。接下来我们来看另一个工具,RAM Capturer,它也可以用于 RAM 获取。
使用 Belkasoft RAM Capturer 获取 RAM 和分页文件
Belkasoft 是一家创建法医工具的公司,除了提供免费的 RAM Capturer 工具外,还提供完整的法医获取和分析工具套件,该工具可以从 belkasoft.com/ram-capturer
下载。该工具最好在 Windows 上使用,但由于它在进行内存和分页文件分析时的速度和受欢迎程度,这里也提到它。
浏览 https://belkasoft.com/ram-capturer 页面后,点击 Download Now 按钮,输入你的电子邮件地址,然后点击 Proceed。下载链接的邮件将在 24 小时内发送到你的邮箱。
一旦下载并在你的 Windows 机器上解压,选择合适的版本(x86 或 x64),然后启动环境。
Belkasoft RAM Capturer 的图形界面非常简单。系统会提示你指定一个输出文件夹路径,点击 Capture! 后,它会开始获取内存和分页文件。
图 8.48 – Belkasoft Live RAM Capturer 获取
该工具需要几分钟来完成获取,之后,你可以使用选择的工具进行哈希计算和分析。这就是我们使用 RAM Capturer 的全部过程,它是用于 RAM 获取的最简单工具之一。
总结
在本章中,我们介绍了几种可以在 Kali Linux 中本地使用的工具,以及另一个名为 FTK Imager 的工具,它本地支持 Windows,但一旦安装了 Wine 后也可以在 Kali Linux 中安装,用于获取数字证据。我们首先了解了能够识别设备的重要性,以便能够准确地使用 fdisk - l 命令获取证据文件的法医副本或镜像。对于法医分析来说,需要证据的位流副本,因为这些副本提供了证据的精确副本,一比特一比特地复制,这就是为什么我们使用 DC3DD、DD 和 Guymager 等工具的原因。
首先,我们使用了 DC3DD,这是数据转储工具的增强版,并通过终端执行了多个任务,包括设备成像、哈希计算、验证和磁盘擦除。我们还使用 DD 进行获取,DD 与 DC3DD 非常相似。
我们的第三个工具,Guymager,具有内置的案件管理功能,并且与 DC3DD 有许多相似之处,但它是一个图形界面工具,对于初学者来说可能更容易使用。
本章涵盖的所有工具都能提供准确且符合法医标准的结果。对于那些不经常使用 Guymager、DD 和 DC3DD 的用户来说,Guymager 可能是一个更易于使用的工具,因为所有的采集选项,包括克隆,都可以通过 GUI 轻松访问,同时也提供了易于阅读的日志,包含案件管理的详细信息。然而,对于需要高级操作(如磁盘擦除)的用户,可能会希望使用 DC3DD。不过,最终的选择仍然是您的。
我们还查看了 FTK Imager 和 Belkasoft Ram Capturer。FTK Imager 可以在 Windows 上运行,能够获取 RAM 和磁盘镜像,但它也可以通过 Wine 轻松安装在 Kali 上,而 Belkasoft RAM Capturer(同样适用于 Windows)仅进行 RAM 采集。
对于我们在 Kali Linux 中使用的第一批法医工具来说,表现不错!接下来,我们将进入一些分析和文件恢复工具。真是令人兴奋!
第九章:文件恢复和数据雕刻工具
现在我们已经了解了如何创建证据的取证镜像,让我们来看一下文件恢复和数据雕刻过程,使用 Kali Linux 中的特定工具。
文件雕刻通过使用文件结构和文件头等特定特征,从未分配空间中恢复数据和文件,而不是依赖传统的由文件系统创建或与文件系统相关联的元数据。可以将文件雕刻类比为冰雕。它开始时是一个巨大的冰块,当交给一个熟练的人时,可以被雕刻成艺术品。以同样的方式,DFIR(数字取证与事件响应)调查员和分析师可以使用前一章提到的任何工具创建取证镜像,然后使用多种工具从所获取的取证镜像中提取有用的数据和文件。
在本章中,我们将涵盖以下主题:
-
文件基础
-
下载本章实验所需的示例文件
-
使用 Foremost 执行文件恢复和数据雕刻
-
使用 Magicrescue 执行镜像恢复
-
使用 Scalpel 进行数据雕刻
-
使用 bulk_extractor 进行数据提取
-
使用 scrounge_ntfs 进行 NTFS 恢复
-
使用 Recoverjpeg 进行 JPEG 恢复
文件基础
在我们开始实际操作之前,先简要了解一些常见术语。
上一次我们在第六章《理解文件系统与存储》中讲解了文件系统时,我们了解到各种操作系统使用自己特定的文件系统来存储、访问和修改数据。存储介质也使用文件系统来完成相同的操作。
元数据,即关于数据的数据,帮助操作系统识别数据。元数据包括技术信息,如创建和修改日期以及数据的文件类型。这些数据使文件的定位和索引变得更加容易。
正如其名字所示,未分配空间是操作系统或文件表标记为空的存储介质区域,或者是未分配给任何文件或数据的区域。虽然文件的位置和信息可能不存在,甚至可能被破坏,但文件的头部和尾部仍然存在一些特征,可以用来识别文件,甚至是文件的碎片。
即使文件扩展名已更改或完全丢失,文件头仍包含可以识别文件类型的信息,我们可以通过分析头部和尾部信息来尝试雕刻文件。数据雕刻是一个相当漫长的过程,应使用自动化工具来节省时间。如果调查员对正在寻找的文件类型有所了解,能更好地聚焦,也能节省时间。然而,这毕竟是取证,我们知道时间和耐心是关键。
一些常见的文件类型,如在文件头部以十六进制格式显示的文件头信息,包括以下内容:
-
联合图像专家组(JPEG): FF D8 FF E0
-
便携文档格式(PDF): 25 50 44 46
在第十二章中将深入分析文件和头部,第十三章中则介绍了使用 Autopsy 进行完整的 DFIR 分析,使用 Autopsy 工具。首先,让我们下载我们将在 Kali Linux 中用于数据雕刻的示例文件。
下载示例文件
在我们开始 DFIR 文件恢复和数据雕刻活动之前,我认为先下载所有示例文件是个好主意,这样我们就可以直接进入使用每个工具的具体操作,而不会被中断。
我们将使用以下网站,这些网站慷慨地向公众提供免费数据集和采集资源。特别感谢所有汇编并投入时间和资源使这些数据集对我们开放的人们:
-
数字取证工具测试镜像:
dftt.sourceforge.net/
-
计算机取证参考数据集(CFReDS):
cfreds.nist.gov/
-
数字语料库:
digitalcorpora.org/
-
Foremost 示例文件:
cfreds-archive.nist.gov/FileCarving/Images/L0_Documents.dd.bz2
-
Scalpel:
prdownloads.sourceforge.net/dftt/11-carve-fat.zip?download
-
Bulk Extractor:
digitalcorpora.s3.amazonaws.com/corpora/drives/nps-2010-emails/nps-2010-emails.E01
尽管我们实验室只会使用上述示例文件,你完全可以从前述网站下载其他示例文件,并尝试使用以下工具进行雕刻。
使用 Foremost 进行文件恢复和数据雕刻
Foremost 是一个简单而有效的命令行工具,通过读取文件的头部和尾部来雕刻和恢复文件。我们可以通过点击应用程序 | 11 - 取证 | Foremost来启动 Foremost。但我更倾向于从终端启动 Foremost,并进入存放我们示例采集文件的文件夹,这样可以简化整个过程,避免出错。好了,让我们开始吧:
- 如果你还没有下载示例取证采集文件,可以通过点击这个链接进行下载:
cfreds-archive.nist.gov/FileCarving/Images/L0_Documents.dd.bz2
- 下载该文件后,我建议在下载文件夹中右键点击并选择创建文件夹,以便创建一个新文件夹。我们将这个文件夹命名为Foremost。在本章接下来的操作中,我们还将为每个工具创建文件夹,以避免下载文件夹凌乱,并且为了确保有一个有序的 DFIR 工作区。
图 9.1 – 带有下载文件夹的文件下载
- 将L0_Documents.dd.bz2文件拖入你刚刚创建的Foremost文件夹。默认情况下,L0_Documents.dd.bz2文件会被下载到你的下载文件夹。下载的文件是压缩的**BunZip (.bz2)格式,包含一个必须解压的datadump (.dd)**采集文件。
为了提取**.dd文件,右键点击L0_Documents.dd.bz2文件,然后点击提取到此处**选项,如图所示。
图 9.2 – 提取下载的文件
现在你应该能在你的Foremost文件夹中看到L0_Documents.dd证据文件。
图 9.3 – 已提取的图像文件
- 现在是有趣的部分!点击屏幕顶部的新建终端图标,打开一个新终端,开始从我们的法医采集样本中提取和恢复文件。
进入终端后,我们必须使用cd命令将工作目录更改为下载文件夹中的Foremost文件夹。为此,在终端中输入以下命令并按回车:
cd /Downloads/Foremost
重要提示
所有命令都是区分大小写的,应该与我输入的完全一致。
-
接下来,输入ls命令来列出并显示文件,以确保我们在正确的目录中,文件也在该目录下。
ls
在下面的截图中,我已经输入了上述命令,并可以看到我们已下载并解压的文件。
图 9.4 – 使用 ls 命令
-
若想更好地了解 Foremost 及其使用的开关,请尝试浏览Foremost 系统管理员手册。可以通过输入以下命令来实现:
man foremost
图 9.5 – Foremost 帮助手册
-
使用 Foremost 的语法如下:
foremost -i (forensic image) -o (output folder) -options
-
使用上述格式,输入以下命令和选项,从证据文件中提取文件并恢复到我们选择的文件夹中:
foremost -i L0_Documents.dd -o L0_Documents_Recovery
在这个例子中,我们指定了L0_documents.dd文件作为输入文件**(-i),并指定了一个名为L0_Documents_Recovery的空文件夹作为输出文件(-o)**。此外,根据需要还可以指定其他开关。
图 9.6 – Foremost 命令输出
尽管前面的输出字符可能难以读取,但雕刻的文件会在指定的输出文件夹中清晰地分类和总结。
- 要查看我们已雕刻的文件,点击屏幕顶部的 Home 文件夹图标,点击 Downloads 文件夹,然后点击 Open Folder。双击你的 Foremost 文件夹,然后打开 LO_Documents_Recovery 文件夹。
图 9.7 – Foremost 恢复文件夹
- Foremost 已自动为相关文件类型创建了子文件夹。要查看所有已雕刻和恢复的文件列表,可以打开 audit.txt 文件。
图 9.8 – audit.txt 文件内容
- audit.txt 文件告诉我们,共有九个文件被雕刻/恢复,包括图像、MS Office 和 PDF 文档。你可以随意浏览各种子文件夹,以查看雕刻出的文件。
图 9.9 – 恢复的 .xlsx 文档
恭喜你成功完成了第一次 DFIR 恢复!接下来,我们将介绍另一种恢复工具,叫做 Magic Rescue。
使用 Magicrescue 恢复图像
Magicrescue 是一个较老的工具,但它仍然非常有用,因为它可以快速扫描并恢复某些必须手动指定的文件类型。在这个实验中,我将使用一个 32GB 的 SanDisk 闪存驱动器,它曾包含若干音频、视频和图像文件,这些文件全部被意外删除:
-
我将首先运行 fdisk 命令,通过输入以下内容来查看设备信息:
sudo fdisk -l
以下屏幕截图中的 fdisk 命令输出显示,闪存驱动器被识别为 sdc2。
图 9.10 – fdisk 命令输出,显示磁盘信息
-
在继续之前,查看 magicrescue 帮助手册是非常有用的,可以通过输入以下命令来实现:
man magicrescue
以下图示展示了 magicrescue 中的使用选项:
图 9.11 – Magicrescue 使用选项
- 要运行 magicrescue 并搜索和恢复文件,我们首先需要知道可以恢复哪些文件类型。我已经导航到 usr | share | magicrescue | recipes 文件夹,里面显示了 magicrescue 可用的配方或文件类型。这些 配方,就是在使用 magicrescue 命令时必须手动指定的内容。
图 9.12 – Magicrescue 配方类型
-
要使用 magicrescue 从我的闪存驱动器恢复 JPEG 文件,该驱动器被识别为 sdb2,我将首先在桌面上创建一个名为 Rescue 的文件夹,将其设置为保存恢复文件的目标文件夹。
-
在新的终端中,通过输入以下内容切换到 Desktop 目录:
cd Desktop
-
然后,输入以下命令创建一个新文件夹:
mkdir Rescue
-
通过输入以下命令切换到Rescue目录:
cd Rescue
以下截图显示了切换目录时终端中的输出。
图 9.13 – 切换工作目录
-
要使用 Magic Rescue 从我的sdb2驱动器中恢复文件到桌面上的Rescue文件夹,我将输入以下命令,并使用特定的图像文件选项:
sudo magicrescue -r png -r jpeg-jfif -r jpeg-exif -d recovered -M io /dev/sdc > logs
一旦运行,Kali 会输出已恢复文件的详细信息,如以下截图所示。
图 9.14 – Magicrescue 文件切割与恢复
- 现在我们可以打开桌面上的Rescue文件夹来查看恢复的文件。如以下截图所示,几个已删除的图像被快速恢复。
图 9.15 – 切割和恢复的文件
现在让我们继续介绍另一个流行且强大的文件切割工具,名为 Scalpel。
使用 Scalpel 进行数据切割
Scalpel 是对早期版本的 Foremost 进行改进后创建的。Scalpel 旨在解决 Foremost 在切割数据时出现的高 CPU 和内存占用问题。
与 Foremost 不同,感兴趣的文件类型必须由调查人员在 Scalpel 配置文件中指定。此文件名为scalpel.conf,位于**etc/scapel/**目录下:
图 9.16 – Scalpel 配置文件
要指定文件类型,调查人员必须删除包含文件类型的行开头的注释,因为所有支持的文件类型都被井号注释掉。以下截图显示了默认的 Scalpel 配置文件(scalpel.conf),其中所有文件类型都被注释掉。请注意,每一行都以井号开始:
图 9.17 – Scalpel 配置文件中的文件类型
我已删除某些行开头的井号,以让 Scalpel 知道搜索这些特定的文件类型;这样也能减少搜索所有支持的文件类型所需的时间。以下截图(图 9.17)显示,Scalpel 将搜索 GIF、PNG 和 TIFF 文件,因为注释已经被移除。我还删除了视频、MS Office、电子邮件和 PDF 文件类型前的井号,以允许 Scalpel 搜索更多的文件类型。如果你在保存文件更改时遇到问题,可能需要以具有 root 权限的用户身份进行此操作:
- 对于这个实验,我们将使用之前下载的11-carve-fat.dd证据文件。如果你还没有下载,可以通过点击以下链接现在下载:
prdownloads.sourceforge.net/dftt/11-carve-fat.zip?download
该文件以 .zip 格式下载,必须先解压才能使用。
-
在 Downloads 文件夹中,右键点击 11-carve-fat.zip 文件,选择 Extract Here 选项,然后将 11-carve-fat.zip 文件解压到 Downloads 文件夹。
-
让我们使用终端将目录更改为 Downloads 文件夹,就像我们使用 Foremost 时那样,输入以下命令:
cd Downloads
-
要查看 Scalpel 中可用的选项及其使用方法,输入以下命令:
scalpel -h
如下图所示,使用 scalpel 时我们可以进行多种切割和恢复操作。
图 9.18 – Scalpel 使用选项
-
要对我们的示例证据文件运行 Scalpel,输入以下命令:
scalpel -o scalpelOutput/ 11-carve-fat.dd
以下截图显示了之前使用的命令的输出结果。
图 9.19 – Scalpel 切割命令
以下截图显示了我们刚才使用的命令的继续输出。
图 9.20 – Scalpel 命令输出
在之前的截图中(图 9.20),我们可以看到 Scalpel 构建了一个切割列表,显示了文件类型以及头部和尾部信息,并展示了已切割的文件数量。
仔细查看 Scalpel 输出的最后几行,我们可以看到切割过程已完成 100%,共切割了 18 个文件:
图 9.21 – Scalpel 命令输出的一部分
- 现在我们可以打开 scalpelOutput 文件夹查看已切割的文件。Scalpel 输出的结果与 Foremost 类似,两个输出文件夹都包含多个子文件夹,其中存放着切割的文件,并附有一个包含详细发现的 audit.txt 文件:
图 9.22 – scalpelOutput 文件夹中的切割内容
到目前为止,我们看到 Foremost、magicrescue 和 Scalpel 在文件切割和数据恢复方面非常出色;然而,它们仅限于特定的文件类型。为了进一步提取数据,我们将介绍另一个工具,称为 bulk_extractor。
使用 bulk_extractor 提取数据
bulk_extractor 工具提取了多种额外类型的信息,这些信息在调查中非常有用。虽然 bulk_extractor 相当强大,能够恢复和切割图像、视频和文档文件,但它还能够切割和提取的其他数据类型包括以下内容:
-
信用卡号码
-
电子邮件地址
-
URL
-
在线搜索
-
社交媒体个人资料和信息
对于这个示例,我们将使用一个免费提供的证据文件,名为 nps-2010-emails.E01:
- nps-2010-emails.E01 文件可以直接从数字语料库网站下载,网站允许将法证证据镜像用于法证研究目的。
如果还没有下载,可以在 digitalcorpora.s3.amazonaws.com/corpora/drives/nps-2010-emails/nps-2010-emails.E01
下载该文件。
-
下载完成后,打开新的终端并切换到 Downloads 文件夹,就像我们之前做的那样。你可以通过输入以下命令查看可用的选项和用法:
bulk_extractor -h
以下截图展示了之前使用的命令的输出。
图 9.23 – bulk_extractor 使用选项
-
像 Foremost 和 Scalpel 一样,bulk_extractor 的使用语法非常简单,需要指定输出文件夹 (-o) 和法证镜像。现在我们使用 bulk_extractor 来雕刻证据文件,并将所有发现的文件和信息保存到 Downloads 文件夹中的一个名为 bulk_carved 的文件夹里,输入以下命令:
bulk_extractor -o bulk_carved nps-2010-emails.E01
图 9.24 – bulk_extractor 命令输出
- 完成后,bulk_extractor 会指示所有线程已完成,并提供过程摘要和一些发现。以下截图的最后一行列出了 67 个找到的电子邮件特征:
图 9.25 – bulk_extractor 输出的片段
- 为了查看 bulk_extractor 的输出和发现,我们可以将目录更改为 Downloads 文件夹中的 bulk_carved 文件夹,并使用 ls -l 命令。以下截图中,我们可以看到几个文本文件,如 domain_histogram.txt、domain.txt、email_domain_histogram.txt 和 email.txt,它们包含数据,因为它们的文件大小大于零:
图 9.26 – bulk_extractor 雕刻的文件列表
- 我们还可以打开 bulk_carved 文件夹,双击包含数据的文本文件。请注意,并非所有文件都包含信息。文件大小为 零 的文件将不包含任何信息。
图 9.27 – bulk_extractor 输出文件夹中的雕刻文件
让我们查看一下 email.txt 文件,如下截图所示。我们可以看到 bulk_extractor 雕刻了几个电子邮件地址和附件详细信息。
图 9.28 – 雕刻的 email.txt 文件中的内容
现在我们已经了解了一些最流行的文件雕刻工具,让我们来看一个名为 scrounge-ntfs 的文件恢复工具。
使用 scrounge-ntfs 恢复 NTFS
scrounge-ntfs 是一个小工具,随 Kali Linux 的默认版本以及 Everything 元包一起提供。scrouge-ntfs 是一个小巧但功能强大的命令行工具,用于恢复格式化为 NTFS(即新技术文件系统)的驱动器,通常由 Windows 设备使用。大多数存储介质,包括闪存驱动器和存储介质,也可以使用 Windows 系统中的默认格式化工具格式化为 NTFS。
硬盘出现 MFT(即主文件表)损坏的情况非常常见。该表存储关于所有文件的信息,包括大小、权限、内容和时间戳。如果该表损坏或丢失,驱动器的内容可能无法访问,或者如果驱动器包含可启动的操作系统,它可能无法启动。
无论 NTFS 驱动器因何种原因变得损坏,scrounge-ntfs 都是专门为恢复 NTFS 分区内的文件而设计的。对于本实验,我将使用一个格式化为 NTFS 的外部硬盘,并且已删除其中的所有内容:
-
让我们首先通过运行以下命令来看一下我们的设备在 Kali 中的列出情况:
sudo fdisk -l
以下截图显示了之前输入命令的输出。
图 9.29 – fdisk 输出
如图所示,我的附加驱动器也列为 sdb。
- 在我们开始恢复过程之前,我想在桌面上创建一个名为Scrounge_recovery的文件夹,所有**scrounge-ntfs-**恢复的文件将保存在该文件夹中。
为此,我将通过输入以下内容切换到 Desktop 目录:
cd Desktop
-
然后,我将通过输入以下内容来创建新目录:
mkdir Scrounge_recovery
-
现在,我将更改输出目录,以避免在输入 scrounge-ntfs 命令时每次都指定目录名称,方法是输入以下内容:
cd Scrounge_recovery
以下截图显示了之前输入命令的输出。
图 9.30 – 更改工作目录
请注意在上面的截图中(图 9.30),我们可以看到我的当前目录是 /Desktop/Scrounge_recovery。
-
现在,让我们通过输入以下内容查看 scrounge_ntfs 的使用情况和选项:
Scrounge-ntfs -h
以下截图显示了之前输入命令的输出。
图 9.31 – scrounge-ntfs 使用选项
-
让我们通过输入以下内容列出所有驱动器分区:
sudo scrounge-ntfs -l /dev/sdb
以下截图显示了之前输入命令的输出。
图 9.32 – 驱动器详情
现在我们可以看到具体的扇区、簇和偏移量值(我也在这里列出了它们以便清晰说明),我们可以使用前面scrounge-ntfs -h输出中指定的格式(图 9.32):
-
起始 扇区:16128
-
结束 扇区:976768002
-
簇 大小:8
-
MFT 偏移量:24
-
scrounge-ntfs的默认使用方法如下所示:
sudo scrounge-ntfs [-m offset] [-c clustersize] [-o outdir] disk start end
让我们来逐一分析前面的选项:
-
-o [outdir] = 输出目录,用于保存所有恢复的文件
-
disk = 要恢复的驱动器
-
start = 起始扇区
-
end = 结束扇区
-
对于我的驱动器,命令将如下所示:
sudo scrounge-ntfs -m 629456 -c 8 /dev/sdb/ 2048 15726592
我没有指定输出目录或目录命令,因为我已经在之前创建的Scrounge_recovery输出目录中。
- 一旦你核对过这些值,确保它们正确无误,就按下Enter键。
图 9.33 – scrounge-ntfs 命令和输出
在前面的输出中,您可以看到正在恢复的文件。
- 我现在可以列出Scrounge_recovery目录中的所有文件,或者双击桌面上的Scrounge_directory以查看我恢复的文件:
图 9.34 – 恢复的文件
正如本节所示,scrounge-ntfs是一个非常有用的 NTFS 驱动器和分区恢复工具。接下来我们将介绍本章的最后一个工具——Recoverjpeg,它可以快速恢复图像文件。
使用 Recoverjpeg 恢复图像
本章我要介绍的最后一个工具是recoverjpeg,顾名思义,它用于恢复 JPEG 图像。这个工具可以快速而轻松地从任何存储介质中恢复已删除的照片。对于本实验,我将使用一只已经格式化的 32GB 闪存驱动器,这只驱动器曾存储着我希望恢复的家庭照片:
- 我首先会在桌面上创建一个名为Recoverjpeg的文件夹,所有恢复的文件都将保存在这个文件夹中。这有助于保持文件的整洁,因为如果不指定一个输出文件夹,所有恢复的文件将被保存在Home文件夹或当前工作目录中,这样会使你的工作空间变得凌乱。
在以下截图中,我输入了cd命令,后跟mkdir Recoverjpeg,以便在桌面上创建这个文件夹:
图 9.35 – 创建输出文件夹
-
接下来,我将通过输入以下命令来安装recoverjpeg工具:
sudo apt-get install recoverjpeg
以下截图显示了先前输入命令的输出。
图 9.36 – 安装 recoverjpeg
-
请注意,前一截图中的最后一行提示我们按Y键以继续安装。按Y键后再按Enter键继续。
-
然后,我会通过输入sudo fdisk –l来确保 Kali 系统能够识别我的闪存驱动器:
图 9.37 – fdisk 命令输出
在前面的截图中,我们可以看到我的 Cruzer Blade 32GB 闪存驱动器列为**/dev/sdb**。
- 现在我将通过输入cd Recoverjpeg命令,切换到之前创建的Recoverjpeg文件夹,在这里所有恢复的文件将被存储:
图 9.38 – 切换到输出目录
- 要查看 Recoverjpeg 的使用选项,输入recoverjpeg:
图 9.39 – recoverjpeg 使用选项
- 现在我知道了我要从哪个驱动器恢复图片,我使用recoverjpeg来扫描并恢复图片,输入以下命令:
sudo recover jpeg /dev/sdb
以下截图显示了之前输入的命令的输出。
图 9.40 – 使用 recoverjpeg 命令
重要提示
根据驱动器或镜像的大小,这可能需要几分钟时间。一旦恢复完成,recoverjpeg 会显示恢复的文件数量。在图 8.44中,我们可以看到总共恢复了 2,021 个文件。
图 9.41 – recoverjpeg 过程完成
恢复的文件保存在桌面上的Recoverjpeg文件夹中,但不会保留原始文件名。相反,所有恢复的图片将按数字顺序命名,从image00000.jpg开始,如下图所示。
图 9.42 – 输出文件夹中的恢复 jpeg 照片
希望你和我一样觉得这个工具既实用又易于使用。这也标志着我们章节的结束。我鼓励你练习使用这些工具,因为你会发现数据恢复是 DFIR 中最常见的一个方面。
总结
在本章中,我们学习了使用 Kali Linux 中的流行开源工具进行文件恢复和数据提取。我们首先使用了非常强大的 Foremost 工具进行文件提取,它从文件头部和尾部提取支持的文件类型,整个下载的取证图像都被提取了出来。然后,我们使用 Magicrescue 和 Scalpel 做了同样的事,但我们需要稍微修改,选择我们希望提取的文件类型。Foremost 和 Scalpel 都生成了audit.txt文件,总结了提取列表及其详细信息,并包含了包含实际证据的子文件夹。
bulk_extractor 是一款非常棒的工具,它可以提取数据并找到有用的信息,如电子邮件地址、访问过的 URL、Facebook URL、信用卡号码等各种信息。bulk_extractor 也非常适合需要文件恢复和数据提取的调查,可以与 Foremost 或 Scalpel 结合使用,甚至两者都可以一起使用。
最后,我们介绍了使用scrounge_NTFS和recoverjpeg从驱动器而非取证镜像中恢复数据和图像的方法。
现在我们已经讲解了文件雕刻和恢复,接下来我们将转向更具分析性的内容。在下一章,我们将使用非常强大的 volatility,探讨如何作为内存取证的一部分,分析 RAM 和分页文件。到时候见!
第十章:使用 Volatility 3 进行内存取证与分析
在前几章中,我们探讨了数据雕刻和文件恢复的各种方法。在本章中,我们将研究使用非常强大的 Volatility 3 对随机访问内存(RAM)中存储的内容进行分析。RAM 是易失性的,这意味着当没有电流或电荷传输到 RAM 时,RAM 中的数据会很容易丢失。由于 RAM 中的数据最为易失,它在易失性排序中排得很高,必须作为高优先级进行取证获取和保存。
许多类型的数据和取证物证存储在 RAM 和分页文件中。如前几章所讨论的,登录密码、用户信息、正在运行和隐藏的进程、恶意软件,甚至是加密密码,都是在进行 RAM 分析时可以发现的许多有趣数据之一,这进一步加深了内存取证的必要性。
在本章中,我们将探讨非常强大的 Volatility 框架及其在内存取证中的多种应用,包括以下主题:
-
Volatility 3 的新功能
-
下载用于分析的示例内存转储文件
-
在 Kali Linux 中安装 Volatility 3
-
使用 Volatility 3 进行内存转储分析
Volatility 3 的新功能
Volatility 框架是一个开源的跨平台事件响应框架,配有许多有用的插件,能够通过内存快照(也称为内存转储)为调查人员提供大量信息。Volatility 的概念已经存在了十多年,除了分析正在运行和隐藏的进程外,它也是恶意软件分析中非常流行的选择。
为了创建内存转储,可以使用一些工具,如Belkasoft RAM Capturer、FTK Imager、dd、dc3dd、CAINE、Helix和LiME(即Linux 内存提取器),这些工具可以获取内存镜像或内存转储(我们之前在第八章,证据获取工具中做过)并使用 Volatility 框架中的各种插件进行分析。
Volatility 框架可以在任何支持 Python 的操作系统(OS)上运行,包括 32 位和 64 位操作系统:
-
Windows XP、7、8、8.1 和 Windows 10
-
Windows Server 2003、2008、2012/R2 和 2016
-
Linux 2.6.11-4.2.3(包括 Kali、Debian、Ubuntu 和 CentOS)以及 macOS Leopard(10.5.x)和 Snow Leopard(10.12.x)
Volatility 支持多种内存转储格式(包括 32 位和 64 位),其中包括以下几种:
-
Windows 崩溃和休眠转储(Windows 7 及之前版本)
-
VirtualBox
-
VMware – .****vmem转储
-
VMware 保存状态和挂起转储 – .**vmss/.vmsn**
-
原始物理内存 – **.**dd
-
通过 IEEE 1394 FireWire 进行直接物理内存转储
-
专家证人格式(EWF)– **.**E01
-
QEMU(快速虚拟机)
Volatility 甚至支持不同格式之间的转换,并且宣称能够完成其他类似工具所能完成的所有任务。
在本书的前几版中,我们使用的是基于已废弃的 Python 2 的 Volatility 2。Volatility 3 基于 Python 3,并做出了以下更改:
-
更快的内存转储扫描和处理
-
支持更新的操作系统
-
更高效的插件
-
操作系统特定插件
在开始使用 Volatility 3 之前,首先下载我们将要分析的所有样本内存转储文件。
下载样本内存转储文件
本章中,我们将使用一个名为cridex.vmem的内存转储文件,通过多种 Volatility 3 插件进行分析。该文件可以从files.sempersecurus.org/dumps/cridex_memdump.zip
下载。
在github.com/volatilityfoundation/volatility/wiki/Memory-Samples
上还有许多其他公开可用的图像可以分析。为了练习使用 Volatility 框架并进一步提升你的分析技能,你可以根据需要下载尽可能多的图像,并使用 Volatility 中的各种插件。
首先下载并解压我们的样本内存转储文件,稍后我们将其移至 Volatility 安装文件夹进行分析。如果你还没有下载该文件,请现在下载。
我已经将cridex.vem样本文件下载到我的Downloads文件夹。要解压文件,请右键点击该文件,然后像之前下载的文件一样点击Extract Here。
我们现在将安装 Volatility 3,并将cridex.vmem内存转储文件复制到安装文件夹中进行分析。
现在我们已经下载了所有的样本文件,接下来在我们的 Kali 机器上安装 Volatility 3。
在 Kali Linux 中安装 Volatility 3
Volatility 不再默认安装在 Kali Linux 中,需要手动安装:
-
首先从官网
www.volatilityfoundation.org/releases-vol3
下载 Volatility 3。 -
确保点击Volatility 3标签页中的**.zip**文件链接,如下图所示:
图 10.1 – Volatility 下载页面
我选择将文件保存在Downloads文件夹中。我还通过右键点击**.zip文件并选择Extract Here**来解压文件,如下图所示。
图 10.2 – 解压 Volatility 3 ZIP 文件
注意
我还将解压后的文件夹重命名为volatility3,以简化操作。务必准确记下文件夹名称,因为后续会用到。
- 在安装 Volatility 3 之前,我强烈建议您更新 Kali 安装,以确保所有文件都是最新的。请运行 sudo apt-get update 命令来完成此操作。
图 10.3 – 更新 Kali Linux
-
现在系统已经更新,让我们通过输入以下命令安装 Python 3:
sudo apt install python3
以下截图显示了在安装 Volatility 3 时运行前述命令的输出。
图 10.4 – 在 Kali 中安装 Python 3
-
Volatility 3 还需要安装一些依赖项才能完全发挥功能。要安装所有必需的依赖项,请输入以下命令:
sudo apt install python3-pip python-setuptools build-essential
以下截图显示了在安装 Volatility 3 时运行前述命令的输出。
图 10.5 – 安装 Volatility 3 依赖项
-
现在让我们切换到包含所有 Volatility 3 文件的文件夹。在此示例中,我将我的文件夹重命名为 volatility3,并将其放在 Downloads 文件夹中。要切换到该目录,我将使用以下命令:
cd Downloads/volatility3
以下截图显示了前述命令的输出。
图 10.6 – 更改目录
- 然后我们可以使用 ls 命令列出并显示 volatility3 文件夹中的所有文件:
图 10.7 – ls 命令输出
在前述截图中,我们可以看到设置和运行 Volatility 3 所需的所有文件。
-
在我的 volatility3 文件夹中,现在可以通过输入以下命令来安装 Volatility 3:
sudo python3 setup.py install
以下截图显示了在安装 Python 3 时运行前述命令的输出。
图 10.8 – 安装 Volatility 3
-
现在 Python 3 及所有 Volatility 包和先决条件已经安装完成,我们可以通过输入以下命令来验证安装:
python3 vol.py
以下截图显示了前述命令的输出。
图 10.9 – Volatility 安装验证
Volatility 包含许多插件,您需要不时参考它们。我建议您在另一个终端中打开所有插件的列表,方便参考,因为这样比不断滚动终端顶部查找 Volatility 插件命令要容易得多。
-
在 volatility3 目录中打开一个新的终端,并输入以下命令以查看所有插件:
python3 vol.py –h
以下截图显示了前述命令的输出。
图 10.10 – Volatility 帮助命令
Volatility 3 现在使用针对 Linux、Mac 和 Windows 的OS 特定插件,如以下python3 vol.py –h输出的片段所示:
图 10.11 – Volatility 3 中的 OS 特定插件
-
在开始分析我们之前下载的cridex.vmem样本内存转储文件之前,让我们将文件从当前目录(Downloads 文件夹)复制并粘贴到volatility3文件夹中。这样做可以让我们在每次使用插件时,避免每次都指定文件的长路径,方便访问内存转储文件。
-
保持之前的终端窗口打开,让我们打开一个新终端并切换到我们的volatility3文件夹,然后执行ls命令,确保我们的cridex.vmem内存转储样本可以在该目录中找到,如下图所示。
图 10.12 – volatility3 目录的内容
这里是激动人心的部分,让我们使用 Volatility 3 进行一些 DFIR 分析,看看能发现什么!
使用 Volatility 3 进行内存转储分析
对于那些可能已经阅读过本书早期版本,或者熟悉使用 Volatility 2 的读者,你们会发现 Volatility 3 在插件方面有所不同。你们还可能注意到,插件工作的速度在 Volatility 3 中也更快了。
在本次实验中,我们将采用非常结构化的方法使用 Volatility 3 中的各种插件。我们首先查看进程和服务识别,收集一些用户信息,查看注册表信息,发现设备上可能运行的恶意软件。
使用 Volatility 3 非常简单。一旦你进入 Volatility 目录,使用插件的命令基本相同,只是插件名称不同。
语法如下:
python3 -f (dump name) (OS.plugin)
在前面的例子中,-f指定了转储文件的文件名,在我们的案例中是cridex.vmem,而OS.plugin将是我们希望针对内存转储运行的插件。让我们将info插件作为我们的第一个分析任务。
图像和操作系统验证
尽管在 Volatility 3 中不再需要,但识别创建内存转储的设备的操作系统版本依然很有用,以确保我们使用正确的插件,因为这些插件现在是针对不同操作系统的,这一点我们在本章前面已经学过。
让我们通过使用info插件来找出系统上运行的是哪个操作系统:
python3 vol.py -f cridex.vmem windows.info
以下截图展示了前述命令的输出。
图 10.13 – Volatility 3 info 插件输出
info插件的输出很长;然而,我已在下图中包含了部分输出,我们可以看到该内存转储是从 Windows XP Service Pack 3 机器上获取的:
图 10.14 – info 插件输出片段
这告诉我们,必须仅对这个转储使用 Windows 插件进行分析。现在让我们尝试识别正在运行的进程和服务。
进程识别与分析
让我们正式开始 DFIR 内存转储分析,尝试识别和关联连接的进程、它们的 ID、启动时间以及内存映像中的偏移位置。我们将使用几个插件,但首先使用以下三个插件来开始:
-
pslist
-
pstree
-
psscan
pslist 插件
该工具不仅显示所有正在运行的进程列表,还提供有用的信息,如进程 ID(PID)和父进程 ID(PPID),并显示进程启动的时间。
运行pslist插件的命令如下:
python3 vol.py -f cridex.vmem windows.pslist
在以下截图中,我们可以看到System、smss、csrss、winlogon.exe、services.exe、lsass.exe、svchost.exe和explorer.exe服务首先启动,随后是其他一些服务。注意到任何可疑的服务吗?
图 10.15 – pslist 插件输出
PID 标识进程,PPID 标识进程的父进程。从pslist输出中,我们可以看到winlogon.exe进程的 PID 是608,PPID 是368。services.exe和lsass.exe进程(紧随winlogon.exe进程之后)的 PPID 均为608,这表明winlogon.exe实际上是services.exe和lsass.exe的 PPID。
对于那些刚接触 PID 和进程的人,快速的 Google 搜索可以帮助识别和描述相关信息。熟悉许多启动进程也非常有用,这样可以迅速指出那些可能不寻常或可疑的进程。
进程的时间和顺序也应注意,因为这些信息可能对调查有帮助。如果我们稍微向下滚动,可以看到explorer.exe的 PID 是1484,它是reader_sl.exe的 PPID。
让我们使用pstree插件进一步深入分析。
pstree 插件
另一个可用于列出进程的命令是pstree插件。这个插件显示的进程列表与pslist插件相同,但还使用缩进来标识子进程和父进程。
通过输入以下命令运行pstree插件:
python3 vol.py -f cridex.vmem windows.pstree
在下面的截图中,星号代表树形结构。一个星号表示 PID,而多个星号表示它是子进程。
图 10.16 – pstree 插件输出
让我们查看第一个星号,它代表 PID 为 386 的 smss.exe 进程。我们可以看到在该进程下,有其他进程显示为多个星号,并且它们的 PPID 是 386,表示它们是 smss.exe 的子进程。类似地,如果我们进一步查看,我们会发现 PID 为 1484 的 explorer.exe 是 PPID 为 1484 的 reader_sl.exe 的父进程。适应这种格式需要一些时间,但它有助于简化 DFIR 分析中的父子进程关系。
psscan 插件
psscan 命令显示了非活动甚至隐藏的进程,这些进程可能被恶意软件(如 rootkits)利用,且以此方式逃避用户和杀毒程序的发现。
让我们通过输入以下命令运行 psscan 插件:
python3 vol.py -f cridex.vmem windows.psscan
以下截图显示了运行 psscan 插件时前述命令的输出。
图 10.17 – psscan 输出
到目前为止,似乎没有什么特别的,我们继续深入分析。
modscan 插件
modscan 插件显示内存映像中所有模块的列表。这有助于我们识别进程、系统文件和动态链接库(DLL)文件的路径和目录。
通过输入以下命令运行 modscan 插件:
python3 vol.py -f cridex.vmem windows.modscan
如下截图所示,modscan 插件列出了在之前的进程扫描中未显示的所有正在运行的模块。
图 10.18 – modscan 插件输出
让我们继续查看。
getsids 插件
所有用户也可以通过 安全标识符(SID)唯一标识。getsids 命令具有四个非常有用的项目,按进程启动的顺序排列(请参考 图 10.15 和 图 10.16 中的 pslist 和 pstree 命令截图)。
getsids 命令输出的格式如下:
**[进程] (PID) [**SID] (用户)
列表中的第一个结果例如列出了以下内容:
系统 (4) : S – 1 – 5- 18 (用户)
其中:
-
系统 是进程
-
(4) 是 PID
-
S - 1 - 5- 18 是 SID
-
用户 是本地系统
要运行 getsids 插件,请输入以下命令:
python3 vol.py -f cridex.vmem windows.getsids
以下截图显示了运行 getsids 插件时前述命令的输出。
图 10.19 – getsids 插件输出
如果我们继续向下滚动,可以看到 reader_sl.exe 进程是由名为 Robert 的用户启动的,SID 为 S-1-5-21。
图 10.20 – getsids 输出片段
envars 插件
让我们继续使用envars插件进行分析,它显示进程环境变量,并将所有进程与路径和用户很好地映射。
通过键入以下内容运行envars插件:
python3 vol.py -f cridex.vmem windows.envars
图 10.21 – envars 插件输出
滚动浏览冗长的输出,直到看到reader_sl.exe进程,我们可以找到一些关于该进程、路径和目录、计算机名称架构、驱动器信息和临时文件位置的非常有用的信息。很有价值的内容。
图 10.22 – envars 输出片段
让我们做一些注册表分析,看看能得出什么结果。
hivelist 插件
hivelist插件列出了在内存转储时存在的注册表蜂巢,并会显示已登录用户。hivelist命令显示了虚拟和物理地址的详细信息,以及易于阅读的明文名称和位置。
要运行此插件,请键入以下内容:
vol.py -f cridex.vmem windows.registry.hivelist
以下截图显示了运行hivelist插件时前述命令的输出结果。
图 10.23 – hivelist 插件输出
密码转储
Security Accounts Manager(SAM)文件的位置也通过hivelist插件列出,如下图所示(图 10.24)。SAM文件包含 Windows 机器中用户名的哈希密码。SAM文件的路径在以下截图中可以看到:Windows\system32\config\SAM。在系统开机时,Windows 用户无法访问此文件。可以进一步使用该文件中的哈希密码,通过使用字典和如 John the Ripper 等密码破解工具(也可以在 Kali Linux 中找到)来破解密码:
图 10.24 – SAM 文件位置
让我们使用userassist插件进一步展开分析。
userassist 插件
userassist插件显示更多的注册表信息,正如我们在以下截图中看到的,它提供了关于用户、文件位置、访问的文件和时间戳的更多细节。
要运行userassist插件,请键入以下内容:
python3 vol.py -f cridex.vmem windows.registry.userassist
以下截图显示了运行userassist插件时前述命令的输出结果。
图 10.25 – userassist 插件输出
最后,在本章中,让我们看看是否能找到任何恶意代码或应用程序。
malfind 插件
正如其名所示,malfind插件扫描转储文件以查找任何恶意嵌入的代码。在第十一章《伪造物、恶意软件和勒索软件分析》中,我们将更详细地讨论这一点,但让我们看看是否能在当前的 DFIR 调查中找到任何嵌入的代码。
要运行malfind插件,输入以下命令:
python3 vol.py -f cridex.vmem windows.malfind
以下截图显示了运行malfind插件时的前述命令输出。
图 10.26 – malfind 插件输出
这个插件稍微复杂一些,但一旦理解了基础内容,它就非常有用。我们需要关注的列名如下:
-
PID
-
进程
-
提交内容
-
私有内存
让我们更仔细地查看malfind输出中的reader_sl.exe详细信息,如下所示。
图 10.27 – malfind 代码片段
让我们分析前面malfind代码片段的第一行输出:
-
PID: 1640
-
进程: reader_sl.exe
-
提交内容: PAGE_EXECUTE_READWRITE
-
私有内存: 33
-
文件 输出: 1
在前面的输出中,我们看到reader_sl.exe是可执行代码,并且在内存中写入了隐藏代码。我们将在下一章深入探讨恶意软件分析。
摘要
在本章中,我们探讨了使用 Volatility 3 框架中众多插件之一进行内存取证和分析。我们成功地进行了进程、注册表、DLL,甚至恶意软件分析,使用了这个多功能的工具。正如我们所见,Volatility 可以在 DFIR 分析中执行几个重要功能,应该与我们之前使用的其他工具一起使用,以进行深入和详细的取证分析和调查。
一定要下载更多公开可用的内存镜像和样本,来测试你在这一领域的技能。尽可能多地尝试各种插件,当然,一定要记录你的发现,并考虑在线分享它们。
接下来,我们将更加深入地探讨 Volatility,并进行勒索软件分析,使用更多工具来发现和分析各种 DFIR 伪造物。下章见!
第十一章:痕迹、恶意软件和勒索软件分析
在本章中,我们将介绍几种不同的工具,用于揭示各种数字痕迹、恶意软件和勒索软件,其中一些驻留在 RAM 和交换文件中,正如我们在上一章中学到的,这在 DFIR 调查中非常有用。
首先,我们将探讨使用像 p0f 这样的工具进行痕迹分析,以识别设备和操作系统,使用 swap_digger 进行交换文件分析,然后使用 MimiPenguin 进行密码转储。接下来,我们将深入了解使用 pdf-parser 和 PDFiD 进行 PDF 恶意软件分析,使用混合分析进行恶意文件分析,最后通过使用 Volatility 3 进行勒索软件分析来结束。
本章将涵盖以下主题:
-
使用 p0f 识别设备和操作系统
-
查看 swap_digger 工具以探索 Linux 痕迹
-
使用 MimiPenguin 进行密码转储
-
PDF 恶意软件分析
-
使用混合分析进行恶意文件分析
-
使用 Volatility 3 进行勒索软件分析
使用 p0f 识别设备和操作系统
让我们从p0f开始。p0f 是一个小工具,可以用于被动扫描和检测网络中的操作系统。此扫描工具被认为是被动的,因为它不会向其他主机发送数据,除非同步(SYN)数据包。这在 DFIR 调查中静默收集其他主机信息时非常有用。
让我们看看如何安装并使用 p0f 来检测网络上的其他主机操作系统:
- 根据您运行的 Kali 版本(2019.3 – 2023.1),您可以运行p0f –h命令以确定是否已预安装该工具。如果没有,Kali 会询问您是否要安装它。按y接受并安装,如以下截图所示。
图 11.1 – 在 Kali 中安装 p0f
- 安装后再次运行p0f –h命令。此命令将显示网络接口选项、操作模式、输出设置和性能相关选项。
图 11.2 – p0f 使用选项
-
一旦确认安装,您可以指定要使用的接口(如果您知道选择哪个接口)。通过输入以下命令来检查您的网络接口:
ifconfig
以下截图显示了前面提到的ifconfig命令的输出。
图 11.3 – ipconfig 命令输出
注意
您还可以使用p0f –L命令列出所有接口。
-
图 11.3中的输出显示我有两个接口,其中eth0是我的以太网/LAN 接口,IP 为172.16.77.159,默认127.0.0.1环回地址。我将使用eth0接口和p0f,通过输入以下命令:
sudo p0f -i eth0
以下截图显示了前面命令的输出。
图 11.4 – p0f eth0 输出
这可能需要一些时间来运行,但在以下截图中,我们可以看到输出返回了客户端的详细信息,如 IP 地址和操作系统。
图 11.5 – p0f 结果输出
让我们进一步探索,通过打开浏览器检测我们可能正在与哪些其他主机进行通信。
-
在 Kali 中打开 web 浏览器,你将看到终端窗口显示更多的 IP 信息。默认情况下,Firefox 浏览器的主页会将我们引导至 Offensive Security 网站,因此 p0f 会显示关于连接和网络跳转到服务器的信息,以及关于服务器的信息。
-
尝试浏览一个网站。我已经在浏览器中打开了 www.cfsi.co。p0f 会实时更新终端中的信息,显示的第一条记录显示了来自 172.16.77.159(我的 Kali 机器)到 185.230.60.211 通过端口 80 的 SYN 请求。我还可以看到关于我的 Kali 机器的信息,比如操作系统(Linux 2.2-3.x),这是 p0f 识别出的指纹:
图 11.6 – 浏览后更新的 p0f 输出
-
让我们获取有关 IP 地址 185.230.60.211 的更多信息。在终端窗口中,点击 文件 | 新建标签页。在新标签页中,输入以下内容:
whois 185.230.60.211
在以下 whois 输出中,我们可以看到该 IP 地址指向 wix.com,这是 www.cfsi.co 网站的主机:
图 11.7 – whois 输出
- 滚动查看 p0f 输出,查看其他一些信息,包括服务器的正常运行时间及其他 IP 地址和中转节点:
图 11.8 – 额外的 p0f 输出
现在我们已经学会了如何安装并使用 p0f 来检测我们的设备正在与哪些操作系统通信,接下来让我们了解另一个工具 swap_digger,用于探索 Linux 工件。
查看 swap_digger 工具以探索 Linux 工件
swap_digger 工具对 Linux 交换文件进行自动化分析,能够提取如系统密码、用户名、表单凭证等工件,甚至是 Wi-Fi 信息,如 SSID,甚至可能是存储在交换文件中的密码。
安装和使用 swap_digger
按照以下步骤安装并使用 swap_digger 进行交换分析:
-
在终端中切换到桌面目录,并通过输入以下命令将 swap_digger 克隆到桌面:
git clone https://github.com/sevagas/swap_digger.git
以下截图显示了安装 swap_digger 命令的输出。
图 11.9 – 安装 swap_digger
-
输入 cd swap_digger 切换到 swap_digger 目录,然后输入以下命令以确保 swap_digger 拥有所需的访问权限:
chmod +x swap_digger.sh
-
要查看所有 swap_digger 使用选项,输入以下命令:
sudo ./swap_digger.sh -h
以下屏幕截图显示了前述命令的输出。
图 11.10 – swap_digger 使用选项
-
要尝试在交换文件中查找密码,输入以下命令:
sudo ./swap_digger.sh -p
以下屏幕截图显示了前述命令的输出。
图 11.11 – 使用 swap_digger 查找密码
- 随时尝试 swap_digger 中的其他可用选项,发现 Linux 系统交换文件中的其他工件。
接下来,让我们看看如何使用 MimiPenguin 工具进行密码转储。
使用 MimiPenguin 进行密码转储
MimiPenguin 工具基于非常流行的密码破解工具 Mimikatz。与 swap_digger 类似,MimiPenguin 也可以通过转储内存进程来检索在内存中运行的工件,这些工件可能包含未加密的明文密码,如以下步骤所示:
-
首先,我们从当前位置切换到 Desktop 文件夹,然后在新的终端中输入以下命令,将 MimiPenguin 克隆到桌面:
git clone https://github.com/huntergregal/mimipenguin
以下屏幕截图显示了安装 MimiPenguin 时前述命令的输出。
图 11.12 – 安装 MimiPenguin
- 输入 cd mimipenguin 切换到 mimipenguin 目录,然后输入 ls 显示其中的文件。
以下屏幕截图显示了前述 ls 命令的输出。
图 11.13 – 查看 mimipenguin 文件夹内容
-
输入以下命令运行 MimiPenguin:
sudo ./mimipenguin.sh
可能需要一些时间才能找到密码。为了节省时间,我已经将密码更改为一个非常简单的密码:
图 11.14 – MimiPenguin 输出显示密码
现在我们已经学会了如何使用 MimiPenguin 转储密码,让我们更进一步,手动分析 PDF 文档中的嵌入式恶意软件。
PDF 恶意软件分析
在这一部分,我们将看看 PDF 恶意软件取证和分析。PDF 可能是最常见的共享信息文档格式,因为很多人宁愿打开 PDF 文件而不是 Office 文档,如 .docx 或 .xls 格式的文件,因为后者更可能包含宏甚至病毒。尽管 PDF 是更受信任的文档类型,但仍然常见一些被恶意软件感染或包含隐藏信息的文件。
虽然我们不会分析恶意 PDF 文件,因为这可能导致系统感染或出现不良后果,但我仍然会向你介绍一个叫做 pdf-parser 的工具,它可以用来检查 PDF 文档的元素并找出恶意代码和其他可疑元素。
这可能被认为是一个高级工具,因为通常只有具有编程经验的人才会使用它来识别 shellcode、流和过滤器。然而,即使是初学者也能够分析输出结果并识别嵌入的可执行文件 (.exe) 文件。网络上和 Twitter 上有一些 PDF 恶意软件样本在流传,但我还是建议你不要尝试下载这些文件,除非你是专业人士,并且是在隔离环境下的沙盒机器上进行操作,确保如果感染,数据或网络不会受到损害。
让我们开始学习如何使用 pdf-parser 分析 PDF 文档:
-
首先,让我们通过输入以下命令查看 pdf-parser 的使用方法和可用选项:
pdf-parser -h
以下截图展示了前述命令的输出结果。
图 11.15 – pdf-parser 使用选项
-
接下来,让我们查看 Didier Stevens(
blog.didierstevens.com/about/
)创建的测试文件的相关统计信息,我将该文件重命名为 testpdf.pdf 并保存在桌面上。我们可以通过输入以下命令分析这个文件,判断它是否包含嵌入代码或隐藏的恶意软件:pdf-parser -a testpdf.pdf
在以下截图中,我们可以看到,实际上确实有一个嵌入文件,这个文件也可能是一个 JavaScript 文件。
图 11.16 – pdf-parser 结果
-
让我们使用 -f 选项应用过滤器,深入挖掘,看看 pdf-parser 是否能够识别嵌入的文件,使用以下选项:
pdf-parser -f testpdf.pdf
在以下截图中,我们可以确认这确实是一个嵌入文件。这个文件是一个名为 eicar-dropper.doc 的 Word 文档,它被嵌入在 PDF 文件中。
图 11.17 – pdf-parser 发现的嵌入文件
-
我们也可以通过使用 PDFiD 工具确认 JavaScript 文件的存在,运行以下命令:
pdfid testpdf.pdf
以下截图展示了前述命令的输出结果。
图 11.18 – 使用 PDFiD 发现嵌入文件
现在我们已经学习了如何手动检查和分析可能包含恶意软件的 PDF 文件,接下来让我们看一下一个在线工具,用于自动化恶意软件分析。
使用 Hybrid Analysis 进行恶意文件分析
你也可以使用像Hybrid Analysis这样的在线工具(www.hybrid-analysis.com/
)来分析各种类型的可疑文件。如果你怀疑某个电子邮件中的链接或 URL 可能存在问题,你也可以将链接粘贴到该网站进行分析。
作为示例,我将使用我在前一节中分析过的testpdf.pdf文件,这个文件是通过pdf-parse和PDFiD分析的。我将首先访问www.hybrid-analysis.com
网站,然后将可疑文件拖到上传区域并点击Analyze,如下面的截图所示。
图 11.19 – hybrid-analysis.com 网站
提交 PDF 文件后,结果显示该文件可能是恶意的,如下截图所示:
图 11.20 – hybrid-analysis.com 文件分析和结果
文件的异常特征和可疑指示符的详细信息也已提供,如下截图所示:
图 11.21 – hybrid-analysis.com 结果页面显示恶意指示符
我希望你在学习 PDF 和文档恶意软件取证与分析方面玩得开心。对于我们的最后一个工具,我们将再次回顾 Volatility 3 来进行勒索软件分析。
使用 Volatility 3 进行勒索软件分析
在我们最后一节中,让我们回顾一下非常强大的 RAM 分析工具 Volatility 3,这个工具我们在第十章《使用 Volatility 3 进行内存取证与分析》中有讲解。在继续之前,可以花点时间复习一下那一章。
在这个实验中,我们将使用一个名为wcry.raw的内存转储文件,里面包含关于 Windows 系统中 WannaCry 勒索软件感染的信息。我们将使用多种 Volatility 3 插件对其进行分析。
让我们首先下载并解压样本内存转储,稍后我们将其移到 Volatility 安装文件夹中进行分析:
- WannaCry 内存转储文件可以从
mega.nz/file/7Z1ySZBT#KX5ZJKYzQgDHSa72lPFwqKL6CsZS7oQGbyyQrMTH9XY
下载。
我已将 WannaCry 内存转储文件下载到我的Downloads文件夹中,文件名为wannacry pw- infected.7z。
-
为了解压文件,右键点击**.7z文件,并像之前下载的文件那样点击Extract Here**。
-
文件是加密保护的,当系统提示输入密码时,你需要输入infected这个词。解压后,你应该会在Downloads文件夹中看到一个名为wannacry pw- infected的文件夹。双击该文件夹,你应该可以看到wcry.raw内存转储文件。
-
在我们开始分析下载的wcry.raw样本内存转储文件之前,先将文件从当前的wannacry pw- infected目录复制并粘贴到我们在第五章中使用过的volatility3文件夹中,分析cridex.vmem内存转储。这么做使得访问内存转储文件更为简便,无需每次使用不同插件时都指定一个冗长的文件路径。
-
为确保我们的 Volatility 3 文件和wcry.raw文件都在正确的文件夹中,让我们打开一个新终端并切换目录到我们的volatility3文件夹,然后执行ls命令,如下截图所示:
图 11.22 – volatility3 目录的内容
现在进入激动人心的部分。让我们使用 Volatility 3 进行一些勒索软件 DFIR 分析,看看能找到什么:
-
让我们使用info插件找出系统运行的操作系统:
python3 vol.py -f wcry.raw windows.info
以下截图显示了前面命令的输出结果。
图 11.23 – Volatility 3 info 插件输出
info插件的输出很长;不过,我已将输出的一部分列出,如下所示,可以看到该内存转储文件来自一台 Windows XP Service Pack 3 机器。
图 11.24 – info 插件输出片段
如前一章所做的那样,让我们再次使用pslist、pstree和psscan插件分别进行一些进程识别与分析。
pslist 插件
让我们使用pslist插件获取所有正在运行的进程列表:
python3 vol.py -f wcry.raw windows.pslist
在以下截图中,我们可以看到System、smss、csrss、winlogon.exe、services.exe、lsass.exe、svchost.exe和explorer.exe服务首先被启动,然后是其他一些服务:
图 11.25 – pslist 插件输出
立即使用pslist插件,我们可以看到一个可疑条目(倒数第四个)叫做**@WanaDecryptor@,它的 PID 是740**,PPID 是1940。为了方便,我将该条目的片段列出如下:
图 11.26 – pslist 插件输出片段,显示@WanaDecryptor@进程
查看pslist输出后,我们可以看到winlogon.exe进程(图 11**.25**)的 PID 为620,PPID 为348。services.exe和lsass.exe进程(紧接在winlogon.exe进程后)的 PPID 都是620,这表明winlogon.exe实际上是services.exe和lsass.exe的 PPID。
我们还可以看到explorer.exe(PID 为1636)是tasksche.exe和ctfmon.exe的父进程(PPID)。
进一步查看,我们看到tasksche.exe(任务计划程序)PID 为1940,是**@WanaDecryptor@**的父进程(PPID)。
让我们使用pstree插件以不同的方式查看这个问题:
python3 vol.py -f wcry.raw windows.pstree
在以下截图中,我们更容易看到explorer.exe是ctfmon、tasksche和**@WanaDecryptor@**的父进程:
图 11.27 – pstree 插件输出
让我们现在使用psscan插件来显示恶意软件可以使用的进程,例如 rootkit,这些进程通常用来逃避用户和杀毒程序的发现:
volatility --profile=WinXPSP2x86 -f 0zapftis.vmem psscan
以下截图显示了前一个命令的输出。
图 11.28 – psscan 插件输出
pslist和psscan命令的输出应进行比较,以注意它们的相似之处。
让我们运行cmdline插件来映射并查看进程和可执行文件的路径:
python3 vol.py -f wcry.raw windows.cmdline
在下图中,我们现在可以确认系统上有一个**@WanaDecryptor@**可执行文件,且某个时刻已被用户执行:
图 11.29 – cmdline 插件输出
让我们尝试使用envars插件查找更多关于**@WanaDecryptor@.exe**的信息,以将感染与用户关联:
python3 vol.py -f wcry.raw windows.envars
以下截图显示了前一个命令的输出。
图 11.30 – envars 插件输出
envars插件输出较长,因此我已经向下滚动并截取了以下截图中的**@WanaDecryptor@**进程:
图 11.31 – 额外的 envars 插件输出
在envars输出的图 11.31中,我们发现了一些非常有用的信息。现在我们可以确定用户 Donny 的文件已被WannaCry/**@WanaDecryptor@**感染,并且我们知道所有感染路径。
现在我们使用getsids插件查看进程的权限:
python3 vol.py -f wcry.raw windows.getsids
以下截图显示了getsids插件命令的输出:
图 11.32 – getsids 插件输出
如果我们向下滚动一点,就能看到**@WanaDecryptor@进程(PID 为740**)具有本地用户和管理员权限。
图 11.33 – getsids 插件输出继续
让我们通过运行privileges插件来验证这一点,查看**@WanaDecryptor@**的访问权限:
python3 vol.py -f wcry.raw windows.privileges
如前所述,**@WanaDecryptor@**进程可以执行多个任务,可能还具有读/写访问权限。
图 11.34 – 额外权限插件输出
我们可以确认这一点,并且通过使用**@WanaDecryptor@恶意软件的malfind插件找到具体的实例,该插件还会指出其他可能已被入侵的进程,如winlogon**:
python3 vol.py -f wcry.raw windows.malfind
以下截图显示了前述命令的输出:
图 11.35 – malfind 插件输出
希望你喜欢使用 Volatility 分析并发现 WannaCry 勒索病毒。这确实需要很多工作,但只要稍加练习,你就能轻松掌握这一非常重要的 DFIR 工具。
小结
这一章真是紧张刺激!我们学习了如何使用p0f检测正在运行的进程和连接,并且还使用swap_digger进行了调查,揭示了许多有用的文件碎片,比如在活动的 Linux 系统的分页文件中存储的密码。然后,我们还使用MimiPenguin尝试提取系统当前的密码。
接着,我们进入了一个非常激动人心的话题——恶意软件分析,我们通过使用pdf-parser和PDFiD发现了嵌入在 PDF 文件中的恶意文件,我还向你介绍了一个我经常用来分析可疑文件和网址的在线工具,hybrid-analysis.com。
最后,我们进行了一个令人兴奋的实验室,使用非常有用的 Volatility 3 工具进行勒索软件分析,发现了属于 WannaCry 勒索病毒的进程,并通过进一步分析,成功定位了被感染的用户、路径、文件和其他进程。
接下来,我们将深入探讨使用 Kali Linux 中的 Autopsy 浏览器进行自动化文件分析。下章见!
第四部分:自动化数字取证与事件响应套件
在这一部分,我们将介绍 DFIR 调查员和分析师使用的最受欢迎且强大的开源工具之一——Autopsy。Autopsy 同时支持 Linux 和 Windows 操作系统,虽然在本书的前几个版本中我们只介绍了 Linux 版本,但在本版本中,我非常高兴能向大家展示如何在 Kali Linux 中使用 Wine 启动更强大的 Windows 版本。
本部分包含以下章节:
-
第十二章,Autopsy 取证浏览器
-
第十三章,使用 Autopsy 4 图形界面进行全面 DFIR 分析
第十二章:尸检取证浏览器
尸检与侦探工具包密切相关。两者均由 Brian Carrier 创建。侦探工具包是一套功能强大的命令行界面(CLI)取证工具,而尸检则是基于侦探工具包之上的图形用户界面(GUI;发音为gooey),通过网络浏览器进行访问。侦探工具包支持多种磁盘映像文件格式,包括原始数据转储(DD)、EnCase(.01)以及高级取证格式(AFF)。
侦探工具包使用 CLI 工具执行以下任务:
-
查找并列出已分配和未分配(已删除)文件,甚至是被 rootkit 隐藏的文件
-
揭示 NTFS备用数据流(ADS),其中文件可以隐藏在其他文件中
-
按类型列出文件
-
显示元数据
-
创建时间线
尸检可以在光盘(CD)/通用串行总线(USB)上以取证模式运行,作为实时分析的一部分,或者可以在专用的 Kali Linux 机器上以死模式进行分析。
本章我们将讨论以下主题:
-
侦探工具包与尸检取证浏览器简介
-
下载样本文件进行使用并在尸检浏览器中创建案件
-
使用尸检取证浏览器进行证据分析
侦探工具包与尸检简介
在本章中,我们将重点介绍尸检浏览器,它基于侦探工具包中的数据恢复与磁盘分析工具。侦探工具包中的工具都是命令行工具,尸检浏览器则通过图形界面让我们能够访问这些工具及其功能,从而便于进行磁盘与文件雕刻、恢复、分析和报告。
尸检提供 GUI 访问侦探工具包中的各种调查命令行工具,包括文件分析、图像与文件哈希值计算、已删除文件恢复以及案件管理等功能。虽然尸检的安装有些复杂,但幸运的是,它已经内置在 Kali Linux 中,并且非常容易设置和使用。
尽管尸检浏览器基于侦探工具包,但在使用 Windows 版本与 Linux 版本时,尸检的功能有所不同。我们将在第十三章《使用尸检 4 GUI 进行完整 DFIR 分析》中介绍 Windows 版本的尸检,使用 Wine 环境。Kali Linux 中侦探工具包和尸检 2.4 所提供的一些官方功能包括:
-
图像分析:分析目录和文件,包括文件排序、恢复已删除文件以及预览文件
-
文件活动时间线:根据文件的写入、访问和创建时间戳创建时间线
-
映像完整性:创建用于图像文件的 MD5 哈希值,以及单个文件的哈希值
-
哈希数据库:将未知文件的数字哈希值或指纹(如疑似恶意**.exe**文件)与 NIST 国家软件参考库(NSRL)中的哈希值进行比对
-
事件排序器:按日期和时间排序显示事件
-
文件分析:分析整个图像文件,以显示目录和文件信息及内容
-
关键词搜索:允许使用关键词列表和预定义表达式列表进行搜索
-
元数据分析:允许查看文件的元数据详情和数据恢复所需的文件结构
现在我们已经熟悉了 Autopsy 的一些用途,在开始使用该工具之前,先下载我们的示例文件以进行分析。
下载示例文件并在 Autopsy 浏览器中创建一个案例
在本节中,我们将找到下载所需示例文件的链接,这些文件将通过 Autopsy 浏览器进行分析。
下载图像文件
用于分析的图像文件可以通过以下网址公开下载:downloads.digitalcorpora.org/corpora/scenarios/2009-m57-patents/usb/
。
请务必记住下载示例文件的位置,因为后续会用到。
我们将要使用的文件是 terry-work-usb-2009-12-11.E01,如下面的截图所示:
图 12.1 – digitalcorpora.org 上的示例证据文件
请注意
在调查硬盘和设备时,一定要始终遵循正确的获取程序,并使用写保护器避免篡改原始证据。
现在我们已经下载了示例图像文件(或者可能是我们自己法医获取的图像),让我们通过先了解不同的启动方式来使用 Autopsy 浏览器进行分析。
启动 Autopsy
有两种方式可以启动 Autopsy:
- 对于第一种方法,我们通过点击 Applications | 11 - Forensics | autopsy (root) 来使用 应用程序 菜单:
图 12.2 – Kali Linux 法医菜单中的 autopsy (root)
- 另外,我们可以点击 Kali Linux 屏幕左上角的搜索栏,输入 autopsy,然后点击 autopsy (root) 图标:
图 12.3 – 搜索 autopsy (root) 应用程序
一旦点击 Autopsy 图标,将打开一个新的终端,显示程序信息以及用于打开 Autopsy 法医浏览器的连接详情。
注
Autopsy 法医浏览器在过去几年没有更新;然而,我们将在下一章中使用更新的 GUI 版本。
在以下截图中,我们可以看到版本号列为2.24,并且显示证据库文件夹的路径为**/var/lib/autopsy**:
图 12.4 – 启动 Autopsy 法医浏览器的流程
- 或者,您也可以将下列链接复制并粘贴到浏览器中,而不是点击图 12.4中显示的链接:http://localhost:9999/autopsy。
图 12.5 – 从终端打开 Autopsy
一旦使用任一方法打开链接,您将看到以下界面,即进入 Autopsy 法医浏览器的网页界面。
图 12.6 – Autopsy 法医浏览器网页界面
在 Autopsy 法医浏览器中创建新案件
创建新案件,请按照以下步骤操作:
- 当 Autopsy 法医浏览器打开时,调查员会看到三个选项:打开案件、新建案件和帮助。
点击新建案件:
图 12.7 – 新建案件选项
- 输入案件名称、描述和调查员姓名的详细信息。对于案件名称,我输入了Terry_USB,因为它与我们用于本次调查的图像名称(terry-work-usb)相符。输入完所有信息后,点击新建案件:
图 12.8 – 新建案件详情
- 案件目录和配置文件的位置如图 12.9所示。请注意案件目录的位置,如截图中所示:案件目录(/var/lib/autopsy/Terry_USB/)已创建。点击添加主机以继续:
图 12.9 – 案件位置和目录详情
注意
提供了多个调查员姓名字段,因为可能会有多个调查员共同工作。
-
输入主机名(被调查的计算机名称)和主机描述的详细信息。
-
以下是一些可选设置:
-
时区:如果未指定,默认为本地设置
-
时间偏移调整:在秒级别上添加一个值,用于补偿时间差异
-
警报哈希数据库路径:指定已创建的已知坏哈希数据库的路径
-
忽略哈希数据库路径:指定创建的已知好哈希数据库的路径,类似于 NIST NSRL:
-
图 12.10 – 案件详情信息
-
点击添加主机按钮以继续。
-
一旦主机添加并创建了目录,我们就可以通过点击添加映像按钮来添加要分析的法医映像:
图 12.11 – 主机详情
- 点击添加图像文件按钮以添加图像文件:
图 12.12 – 添加取证图像文件
- 要导入图像进行分析,必须指定完整路径。在我的机器上,我将图像文件保存在默认的下载文件夹中。因此,文件的位置为**/Downloads/terry-work-usb-2009-12-11.E01**,如图 12.13所示。
图 12.13 – 位置和导入方法详情
注意
对于导入方法,我们选择Symlink。这样,图像文件可以从当前所在的位置(下载)导入到证据保管库目录,而不需要涉及移动或复制图像文件的风险。
- 点击下一步后,显示图像文件的详细信息。点击添加按钮继续,然后点击确定。
图 12.14 – 图像文件详情
- 到目前为止,我们已经准备好分析图像文件。确保选择C:/选项,然后点击分析。
图 12.15 – 卷选择
现在我们已经添加了下载的样本证据文件,并配置了所有案件和目录的详细信息,可以开始对样本证据文件进行分析。
使用 Autopsy 取证浏览器进行证据分析
现在,我们已经创建了案件,添加了包含适当目录的主机信息,并添加了样本证据文件,接下来进入分析阶段,涉及以下文件和驱动器分析、文件雕刻和恢复的步骤:
- 点击分析按钮后(见图 12.15),我们将看到多个选项以标签的形式呈现,开始我们的调查:
图 12.16 – 分析标签选项
- 我们通过点击图像详情标签来查看图像的详细信息。在以下截图中,我们可以看到卷序列号和操作系统(OEM 名称)列为BSD 4.4:
图 12.17 – 图像详情标签
- 接下来,我们点击文件分析标签。此标签进入文件浏览模式,允许查看图像中的目录和文件。图像中的目录默认在主视图区域列出:
图 12.18 – 文件分析标签
如前面的截图所示,对于每个目录和文件,都会显示该项的书写时间、访问时间、修改时间和创建时间,以及其大小和元数据:
-
书写时间:文件最后一次写入的日期和时间
-
访问时间:文件最后一次被访问的日期和时间(仅日期是准确的)
-
更改时间:文件描述性数据更改的日期和时间
-
创建时间:文件创建的日期和时间
-
元数据:描述文件的元数据和文件信息
注意
如果我们向下滚动一点,可以看到红色标记的恢复项,它们是已删除的文件,如 图 12.19 所示。
图 12.19 – 恢复的文件
- 如果我们继续向下滚动,还可以看到一个 VNC 的安装文件(vnc-4_1_3-x86_win32.exe),它可能被下载并用于另一台机器,因为该操作系统不是 Windows。
还有一个键盘记录器安装文件(xpadvancedkeylogger.exe)被列为红色,意味着它已被删除。
图 12.20 – 发现已删除的键盘记录器软件
-
Autopsy 浏览器窗口的左侧窗格还包含四个主要功能,可以帮助我们进行 DFIR 调查和分析:
-
目录查找:允许搜索目录
-
文件名查找:允许通过 Perl 表达式或文件名搜索文件
-
所有已删除的文件:在镜像中搜索已删除的文件
-
展开目录:展开所有目录,便于查看内容
-
图 12.21 – 其他分析菜单
- 点击 展开目录 按钮,可以轻松查看并访问左侧窗格和主窗口中的所有内容。目录旁边的 + 图标表示该目录可以进一步展开,以查看子目录(++)及其内容:
图 12.22 – 左侧窗格中的展开目录
- 要查看已删除的文件,我们点击左侧窗格中的 所有已删除的文件 按钮。已删除的文件用红色标记,并且也遵循相同的格式,包括 写入时间、访问时间、更改时间 和 创建时间。在下面的截图中,我们可以看到该镜像包含多个已删除的文件:
图 12.23 – 查看所有已删除的文件
这就是我们使用 Autopsy 法医浏览器进行分析的全部内容。然而,在下一章中,我们将继续介绍另一个版本,称为 Autopsy GUI v4。
摘要
在本章中,我们介绍了使用 Autopsy 法医浏览器和 The Sleuth Kit 进行自动化 DFIR 调查和分析。与单独的工具相比,Autopsy 拥有案例管理功能,支持多种类型的文件分析、搜索和已分配、未分配、隐藏文件的排序。Autopsy 还可以在文件和目录级别执行哈希操作,以维护证据的完整性。
在下一章,我们将使用更新且更强大的独立版 Autopsy GUI 4.0 来分析本章中使用的相同文件进行对比。