Kali-Linux-数字取证第三版-一-
Kali Linux 数字取证第三版(一)
原文:
annas-archive.org/md5/765e210cce0450716bde57b7647ec979译者:飞龙
前言
在本书的第三版中,你会发现理论和方法论大致保持不变,但更新了关于一般技术信息、最佳实践和框架的内容,因为这些程序和文档在整个领域中都是标准的;然而,你会发现技术章节包含了使用新示例的新实验。我还增加了几章全新的内容,深入探讨了伪造物分析、自动化数据恢复、恶意软件和网络分析,展示了多个工具并提供实际操作,即使是初学者也能轻松跟随。我们甚至使用了 Wine,它使我们能够在 Kali Linux 中安装非常流行的(数字取证与事件响应)(DFIR)工具,这些工具是为 Windows 平台设计的(如 Autopsy 4)。本书对希望学习或增强 DFIR 和蓝队技能、并通过结合渗透测试技能与数字取证和事件响应技能成为紫队员的红队成员和渗透测试人员非常有帮助。
本书适用对象
本书的第三版经过精心结构设计,旨在帮助各个层次的读者理解,从初学者和数字取证新手到事件响应专业人员,本书的前六章帮助你了解所使用的技术,并指导你设置 Kali Linux,之后将深入探讨取证分析、数据恢复、恶意软件分析、自动化 DFIR 分析和网络取证调查。希望学习蓝队技能以成为紫队员的红队成员和渗透测试人员也会发现本书内容非常有用。
本书涵盖的内容
第一章,红队、蓝队与紫队基础,向你介绍渗透测试人员和取证调查人员所属的不同类型的网络安全团队及所需的技能。
第二章,数字取证简介,为你介绍数字取证和取证方法学的世界,并且介绍各种取证操作系统。
第三章,安装 Kali Linux,涵盖了可以用来安装 Kali Linux 的各种方法,可以将其作为虚拟机或独立操作系统安装,也可以从闪存驱动器或 SD 卡运行。
第四章,附加 Kali 安装和安装后任务,在 Kali 安装的基础上,指导你执行附加安装和安装后任务,如启用 root 用户和更新 Kali Linux。
第五章,在 Kali Linux 中安装 Wine,展示了 Linux 系统的多功能性,你将在本章中学习如何在 Kali Linux 系统中使用 Wine 安装和使用为 Windows 平台设计的取证工具。
第六章,理解文件系统和存储介质,深入探讨操作系统和各种文件存储格式的领域,包括终端用户甚至操作系统无法看到的秘密隐藏位置。我们还将检查与数据相关的数据,称为元数据,并了解其易变性。
第七章,事件响应、数据获取和 DFIR 框架,探讨当事件被报告或检测到时会发生什么。谁是首位响应者,如何保持证据的完整性?在本章中,我们将研究数据获取和证据收集的最佳实践、程序和框架。
第八章,证据获取工具,建立在数据获取和最佳实践的理论基础上,并教授如何使用行业认可的工具,如 DC3DD、DD、Guymager、FTK Imager 和 RAM Capturer,进行数据和图像的获取,同时保持证据的完整性。
第九章,文件恢复和数据雕刻工具,通过使用 Magic Rescue、Scalpel、Bulk_Extractor、scrounge_ntfs 和 recoverjpeg 等各种工具来刻画和恢复从取证获取的镜像和媒体中的数据和工件,介绍了数字取证的调查面。
第十章,使用 Volatility 3 进行内存取证和分析,带我们进入内存工件的分析,并展示了如何保存易失性证据(如 RAM 内容和交换文件)的重要性。
第十一章,工件、恶意软件和勒索软件分析,带我们深入了解如何使用 p0f、swap_digger 和 mimipenguin 进行工件分析,随后演示如何使用 pdf-parser、hybrid-analysis.com 和 Volatility 执行恶意软件和勒索软件分析。
第十二章,尸检取证浏览器,展示了在 Kali Linux 中使用单一工具进行自动化文件恢复和分析。
第十三章,使用 Autopsy 4 GUI 执行完整的 DFIR 分析,更深入地探讨了使用最强大且免费的取证工具之一进行自动化文件雕刻、数据恢复和分析,这一工具将取证能力和调查推向专业级别,涵盖数字取证调查的各个方面,从哈希计算到报告。
第十四章,网络发现工具,展示了网络扫描和侦察工具,如 netdiscover、nmap 和 Shodan,虽然这些工具并非专门设计用于取证工具,但在执行事件响应时,它们提供的额外信息非常有用。
第十五章,使用 Xplico 进行数据包捕获分析,深入介绍了如何利用一个工具进行自动化数据包分析,调查网络和互联网流量。
第十六章,网络取证分析工具,本书的最后一章,演示了如何使用各种工具和网站(包括 Wireshark、NetworkMiner、packettotal.com和apackets.com)捕获和分析数据包。
充分利用本书
尽管我们已尽最大努力解释本书中的所有概念和技术,但如果你有下载和安装软件的经验,并且至少熟悉基本的计算机和网络概念,如 RAM、CPU、虚拟化和网络端口,那会更加有帮助。
| 本书涵盖的软件/硬件 | 操作系统要求 |
|---|---|
| Kali 2022.x 及更高版本 | 最低配置:配备 8 GB RAM、250 GB 可用硬盘空间的 PC 或笔记本电脑,和 Ryzen 7 或 i5 CPU;推荐配置:16 GB RAM、250 GB 可用硬盘空间,Ryzen 7 或 i7 CPU |
如果你使用的是本书的数字版,我们建议你自己输入代码,或者从本书的 GitHub 仓库访问代码(下一个章节中提供了链接)。这样做有助于避免与复制粘贴代码相关的潜在错误。
下载示例代码文件
你可以从 GitHub 下载本书的示例代码文件,地址为github.com/PacktPublishing/Digital-Forensics-with-Kali-Linux-Third-Edition。如果代码有更新,它将会在 GitHub 仓库中更新。
我们还提供了其他来自丰富图书和视频目录的代码包,访问地址:github.com/PacktPublishing/。快来看看吧!
下载彩色图片
我们还提供了一个 PDF 文件,包含了本书中使用的截图和图表的彩色版本。你可以在这里下载:packt.link/vLuYi。
使用的约定
本书中使用了许多文本约定。
文本中的代码:表示文本中的代码词汇、数据库表名、文件夹名称、文件名、文件扩展名、路径名、虚拟网址、用户输入和 Twitter 用户名。示例如下:“开启你的 Pi,Kali 将会启动。再次提醒,默认的用户名和密码都是kali(小写)。"
任何命令行输入或输出都会如下所示:
sudo apt update
粗体:表示一个新术语、一个重要的单词,或屏幕上显示的单词。例如,菜单或对话框中的词汇显示为 粗体。例如:“您可以通过点击主 Kali 菜单中的 应用程序 | 11-取证 来查看一些取证工具。”
提示或重要说明
如下所示。
联系我们
我们始终欢迎读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请通过电子邮件联系我们 customercare@packtpub.com,并在邮件主题中注明书名。
勘误:尽管我们已尽全力确保内容的准确性,但错误仍然可能发生。如果您在本书中发现错误,我们将非常感激您向我们报告。请访问 www.packtpub.com/support/errata 并填写表格。
盗版:如果您在互联网上发现任何非法复制的我们的作品,我们将非常感激您提供该作品的所在网址或网站名称。请通过 copyright@packt.com 联系我们,并附上材料的链接。
如果您有意成为作者:如果您在某个领域拥有专业知识,并且有意撰写或参与书籍创作,请访问 authors.packtpub.com。
分享您的想法
在阅读完《数字取证与 Kali Linux》后,我们希望听听您的想法!请 点击这里直接进入亚马逊评论页面,分享您的反馈。
您的评论对我们和技术社区至关重要,帮助我们确保提供优质的内容。
下载本书的免费 PDF 版本
感谢您购买本书!
你喜欢随时随地阅读,但又无法携带纸质书籍吗?你的电子书购买与您选择的设备不兼容吗?
不用担心,现在每本 Packt 书籍都会附赠一份免费的无 DRM PDF 版本。
随时随地,任何设备上阅读。直接从您最喜欢的技术书籍中搜索、复制并粘贴代码到您的应用程序中。
福利还不止这些,您还可以独享折扣、新闻通讯以及每日送达的精彩免费内容。
按照这些简单步骤,您就可以获得这些福利:
- 扫描二维码或访问下面的链接

packt.link/free-ebook/9781837635153
-
提交您的购买证明
-
就是这样!我们会直接将您的免费 PDF 和其他福利发送到您的邮箱。
第一部分:蓝队与紫队基础知识
当我们开始进入数字取证与事件响应(DFIR)的学习旅程时,了解蓝队和紫队的概念至关重要,这些与红队相比较,并且还需要牢牢掌握创建蓝队和紫队实验室环境所需的基础知识。本节将解释相关术语,并探讨成为蓝队和紫队成员所需的技能,还将展示设置 DFIR 实验室环境的各种方法。
本部分包含以下章节:
-
第一章,红队、蓝队与紫队基础知识
-
第二章,数字取证简介
-
第三章,安装 Kali Linux
-
第四章,其他 Kali 安装与后期安装任务
-
第五章,在 Kali Linux 中安装 Wine
第一章:红队、蓝队和紫队的基本概念
欢迎阅读《Kali Linux 数字取证》的第三版,对于曾经购买过前几版的读者,欢迎再次回归。我还想真诚地感谢你们再次选择这本令人兴奋的书籍。与第二版一样,第三版已经更新了新的工具、易于跟随的实验室,并添加了几章新内容。我们即将开始一段激动人心的旅程,我很高兴地宣布一些重要的新增内容,包括安装 Wine,这将使我们能够在 Kali Linux 中运行 Windows 工具,并将在第五章《在 Kali Linux 中安装 Wine》中全面介绍。第十章《使用 Volatility 3 进行内存取证与分析》也是全新内容,展示了如何在较新的操作系统上执行 RAM 工件分析。另一个新章节讲述了如何使用 Autopsy v4 图形用户界面 (GUI) 执行全面的 数字取证与事件响应 (DFIR) 分析与调查,内容可以在第十三章《使用 Autopsy 4 GUI 执行全面的 DFIR 分析》中找到。
除了这些重要新增内容,我们还将探讨一些新话题,比如使用 Raspberry Pi 4 创建便携式 Kali Linux 盒子,了解诸如 DD-rescue、scrounge-ntfs、Magic Rescue、PDF-Parser、Timeliner、netdiscover 等工具,并介绍 Shodan.io 和 apackets.com 用于 物联网 (IoT) 发现和数据包分析。
对于本书,我们采取一种非常结构化的数字取证方法,正如我们在法医科学中所做的那样。首先,我们将漫步进入数字取证的世界,了解其历史,以及一些用于取证的工具和操作系统,并立即向你介绍证据保存的相关概念。
话虽如此,我们有很多内容需要覆盖,将从学习 Kali 和各类网络安全团队开始,了解红队、蓝队和紫队之间的区别。对于我们回归的高级读者,如果你们已经具备 Kali Linux 和相关团队的基础知识,可以跳过前两章,直接进入第三章《安装 Kali Linux》、第四章《附加的 Kali 安装和安装后任务》以及第五章《在 Kali Linux 中安装 Wine》,这些章节详细讲解了 Kali 和 Wine 的安装过程。
本章将涵盖以下关键话题:
-
什么是 Kali Linux?
-
理解红队
-
理解蓝队
-
理解紫队
在我们开始讨论这些话题之前,以下是我如何进入 Kali Linux 世界的简短介绍,因为我觉得你们中的一些人可能会与我的故事产生共鸣!
我是如何开始接触 Kali Linux 的
数字取证已经吸引了我超过 15 年的关注。自从我得到了我的第一台 PC(感谢爸爸妈妈)以来,我一直在想,当我从那台巨大容量为 2 GB 的硬盘(Gigabyte)中删除文件,或将文件移动到(并且经常隐藏在)一个不太显眼的 3.5 英寸软盘中时,究竟发生了什么。那张软盘的最大容量为 1.44 MB(Megabytes)。
我很快发现,硬盘和软盘并不具备我曾经自信相信的数字不朽性。可悲的是,许多文件、文档和由我亲手在微软画图中创作的无价艺术作品,已经永远消失在数字的彼岸,再也无法找回。唉,世界永远无法知道这些。
直到几年后,当我在我的超快速 42 Kbps 拨号上网连接(得益于我那台昂贵的 USRobotics 拨号调制解调器)上浏览神奇的世界宽网(WWW)时,我才偶然看到了一篇关于文件恢复及相关工具的文章,每次我尝试连接到互联网时,它都会发出科技神灵的赞歌。这一过程涉及一种隐秘的忍者般技巧,即使是黑色行动小组也会为之羡慕,因为这一切都是在不让父母察觉的情况下完成的,这样他们就不会因为我占用了电话线而无法打电话(亲爱的妈妈、爸爸和年长的姐姐,抱歉了)。
前一篇关于数据恢复的文章远没有今天许多伟大的同行评审论文、期刊和书籍那样详细且内容丰富,这些资料如今在数字取证领域广泛可得。作为该领域的一个完全新手(也称为“菜鸟”),我确实学到了许多关于文件系统、数据和元数据、存储度量及各种存储介质工作原理的基础知识。正是在这个时候,尽管我读过关于 Linux 操作系统及其各种发行版(或称为“发行版”)的资料,我开始理解为什么 Linux 发行版在数据恢复和取证中如此受欢迎。
我勇敢地下载了 Auditor 和 Slax Linux 发行版,再次使用拨号上网连接。仅仅下载这些操作系统就已经是一项壮举,这让我感到非常有成就感,因为当时我完全不知道如何安装它们,更不用说如何实际使用它们了。在那个时候,简单的安装和图形用户界面(GUI)仍在不断开发中,尽管它们对用户友好(或者像我那样对我来说并不友好),这大多是由于我的经验不足、硬件不合适以及缺乏资源,如在线论坛、博客和 YouTube,这些我当时还不懂得利用。
随着时间的推移,我研究了许多在 Windows、Macintosh 和各种 Linux 发行版平台上找到的工具。我发现许多数字取证工具可以安装在不同的 Linux 发行版或版本中,而且这些工具大多数都得到了良好的维护,持续开发,并且在该领域得到了同行的广泛接受。Kali Linux 是一种 Linux 发行版或版本,但在深入了解之前,让我先解释一下 Linux 发行版或版本的概念。以你最喜欢的饮料为例:这种饮料有很多不同的口味,有些不加甜味剂或糖,颜色各异,甚至有不同的尺寸。无论如何变化,基本的原料始终是构成饮料的核心成分。类似地,我们也有 Linux,以及不同类型和版本的 Linux。一些更受欢迎的 Linux 发行版和版本包括 RedHat、CentOS、Ubuntu、Mint、KNOPPIX,当然,还有 Kali Linux。更多关于 Kali Linux 的内容将在 第三章,安装 Kali Linux 中讨论。
话虽如此,让我们进入下一个部分,开始探索迷人的 Kali Linux 世界吧!
什么是 Kali Linux?
Kali Linux 是一个基于 Debian 的操作系统,被全球的网络安全专家、学生和 IT 爱好者广泛使用。Debian 是一种完全免费的 Linux 版本,稳定、持续更新,支持多种硬件,并且也被像 Ubuntu 和 Zorin 这样的流行操作系统使用。Kali Linux 在网络安全领域并不陌生,甚至可以追溯到 2000 年代中期,但当时它被称为 BackTrack,这个名字是由两个平台—Auditor Security 和 Whax 合并而成的。这一合并发生在 2006 年,随后发布的 BackTrack 版本一直持续到 2011 年,当时基于 Ubuntu 10.04 发布了 BackTrack 5 版本。
2013 年,Offensive Security 发布了首个 Kali v1 (Moto) 版本,该版本基于 Debian 7,随后在 2015 年发布了基于 Debian 8 的 Kali v2。之后,Kali Linux Rolling 版本于 2016 年发布,发行版的名称反映了发布的年份以及每个季度的主要更新。例如,在写这篇文章时,我使用的是 Kali 2022.3 和 2022.4,这两个版本都基于 Debian 的最新版本。你可以在 www.debian.org/intro/about 找到更多关于开放源代码和免费的 Debian 项目的信息。
作为一名网络安全专家、首席信息安全官(CISO)、渗透测试员(pentester)以及 DFIR 领域的专家,自从 2006 年开始为认证伦理黑客考试做准备以来,我已经使用 BackTrack(现在的 Kali Linux)超过十年了。自那时以来,我使用过各种操作系统进行渗透测试和数字取证,但我最喜欢的工具,特别是对于渗透测试,仍然是 Kali Linux。尽管 Kali Linux 近年来更注重渗透测试,而非 DFIR,但它让我可以在同一个平台上同时使用渗透测试和 DFIR 工具,而不必在它们之间切换。
对于那些可能已经购买了本书第一版和第二版的读者,我想说,你们一定会觉得很有收获,因为我不仅更新了许多实验,并在这一版中引入了新工具,还包括了一个关于如何在 Kali Linux 中安装 Wine 的章节。Windows 模拟器(Wine)可以让你在 Kali Linux 中运行 Windows 应用程序。虽然需要一些配置,但我已经编写了一份逐步指南,讲解如何在第五章《在 Kali Linux 中安装 Wine》一章中安装 Wine。
你们中的一些人可能会好奇,为什么我们要安装 Wine,而不是直接使用 Windows 机器。其实有几个合理的原因。首先,成本是一个重要因素。如果你是学生、处于待业状态、换职业,或者生活在一个汇率和外汇限制购买许可的地区,Windows 许可证的费用就显得不那么便宜了。写这篇文章时,Windows 10 专业版的许可证费用为$199.00,微软官网上列出的价格是www.microsoft.com/en-us/d/windows-10-pro/df77x4d43rkt?activetab=pivot:overviewtab。
尽管本书中我们不会使用商业工具,但有一些非常棒的免费 DFIR 工具可以在 Windows 上使用,例如Belkasoft RAM Capturer、Autopsy 4 GUI和NetworkMiner,我们现在可以在开源的 Kali Linux 环境中安装它们,而无需依赖许可的 Windows 机器。这些工具将在第八章《证据采集工具》、第十三章《使用 Autopsy 4 GUI 进行完整的 DFIR 分析》和第十六章《网络取证分析工具》中详细介绍。
另一个考虑因素是,Wine 再次帮我们省去了在物理机器之间切换的麻烦,并且在使用虚拟机时,还能节省一些资源,比如随机存取内存(RAM)、中央处理单元(CPU)、硬盘驱动器(HDD)空间以及其他资源,接下来我们会在下一章中更详细地讨论这一点。
最后,我们可以使用工具在 Kali Linux 中安装许多其他 Windows 应用程序,无论是生产力工具,还是用于渗透测试的工具,从而使我们的 Kali Linux 安装成为一个完美的紫队操作系统环境,我们将在本章稍后讨论。
为什么 Kali Linux 如此受欢迎?
除了作为最早的 InfoSec 发行版之一,Kali Linux 还有非常大的支持基础,你可以在 YouTube、TikTok 和互联网上找到数千个关于安装、使用内置工具以及安装额外工具的教程,这使得它成为一个更具用户友好的平台。
Kali Linux 还附带了超过 600 个工具,所有这些工具都被很好地分类在 Kali 的应用程序菜单中。Kali 中包含的许多工具可以执行各种网络安全任务,涵盖从开源情报(OSINT)、扫描、漏洞评估、利用和渗透测试、办公和生产力工具,当然还有 DFIR。工具的完整列表可以在 www.kali.org/tools/all-tools/ 查找。
以下截图展示了 Kali Linux 菜单中类别的预览。

图 1.1 – Kali Linux 菜单中的类别列表
Kali Linux 用户还可以选择手动下载和安装(元)包,而不是下载一个非常大的安装文件。Kali Linux(元)包包含可能特定于某些评估或任务的工具和依赖项,如信息收集、漏洞评估、无线黑客和取证。或者,用户可以下载kali-linux-everything(元)包。我们将在第四章《附加 Kali 安装和后安装任务》中详细介绍(元)包的安装,但如果你想了解更多关于(元)包的内容,可以在 www.kali.org/docs/general-use/metapackages/ 查找完整列表。
Kali Linux 之所以如此受欢迎的另一个原因是,它提供了多个版本,适用于各种物理、虚拟、移动和便携设备。Kali 可以作为独立的操作系统镜像提供,也可以通过其为虚拟平台(如 VMware 和 VirtualBox)预构建的镜像进行虚拟安装,相关内容将在第三章《Kali Linux 安装》和第四章《Kali 安装及后安装任务》中详细讨论。此外,还有适用于 ARM 设备、云实例的 Kali 版本,甚至可以在 Windows 子系统 for Linux (WSL) 中运行 Kali Linux。个人来说,我还使用了一款名为 Kali NetHunter 的移动版本 Kali Linux,它运行在一部旧的 OnePlus 手机和 Raspberry Pi 4 上,连接上移动电源后,便成为了最终的便携式安全评估工具包。至于手机安装,NetHunter(甚至在某些情况下 Kali Linux 本身)可以安装在三星、诺基亚、一加、索尼、小米、谷歌或中兴等多种手机上。我们将在第四章《Kali 安装及后安装任务》中讨论如何在 VirtualBox 和 Raspberry Pi 4 上安装 Kali Linux。
Kali Linux 提供所有这些功能免费且可以通过少数几次点击和命令轻松升级,并且可以添加新工具,这使得它成为完美的紫队解决方案。让我们来看一下红队、蓝队和紫队,以及每个团队所需的技能集。
理解红队
可能是 Kali Linux 用户中最为熟知的团队,红队是负责处理与 OSINT、扫描、漏洞评估和渗透测试相关的安全进攻方面的个体的集合,评估的对象包括但不限于个人、公司、终端用户(台式机、笔记本、移动设备)以及网络和关键基础设施,如服务器、路由器、交换机、防火墙、NAS、数据库、Web 应用和门户。还有一些系统,如物联网 (IoT)、操作技术 (OT) 设备和工业控制系统 (ICS) 也需要由技术精湛的红队成员进行评估。
红队成员通常被认为是高度熟练的道德黑客和渗透测试员,除了具备进行先前提到的评估所需的技能外,还可能拥有允许他们执行这些任务的技术认证。尽管认证未必直接反映个人的能力,但已知它们能帮助获得工作机会。
一些红队认证包括(但不限于):
-
进攻性安全认证专家 (OSCP):由 Kali Linux 的开发者创建
-
认证道德黑客 (CEH):由EC-Council颁发
-
实用网络渗透测试员(PNPT):由 TCM Security 开发
-
Pentest+:由 CompTIA 提供
-
SANS SEC:来自 SANS 学院的课程
-
e-Learn 初级渗透测试员(eJPT):由e-Learn Security为有兴趣成为红队员的初学者开发
最终,所有这些知识使得红队员能够进行进攻性攻击(在获得明确许可的情况下)对公司进行模拟,模拟内部和外部威胁行为者,并本质上以恶意行为者可能利用和攻破个人、公司或重要资产的方式对系统和安全机制进行入侵。
Kali Linux 通常包含执行几乎所有类型的进攻性安全和红队评估所需的工具。从个人角度来看,Kali Linux 是我进行渗透测试时首选的操作系统,因为大多数用于指纹识别、侦察、开源情报(OSINT)、漏洞评估、利用和报告的工具都已经预装并随平台提供。我已经使用 Kali 进行红队演习超过 12 年了,而且我不认为这种情况会很快改变,因为他们多年来一直在维护操作系统并支持工具。
现在我们来谈谈蓝队工作。
理解蓝队
蓝队员通常被认为属于防守方,而不是进攻方,正如之前所写的红队员。虽然红队员专注于威胁模拟和可能的利用,但蓝队员是保护者。
红队和蓝队在许多方面是相似的,因为每个队伍的主要目标都是保护资源,并理解与数据泄露和漏洞相关的潜在影响和风险。红队可能专注于攻击技术,如网络攻击链和渗透测试,而蓝队则专注于确保不仅有防御机制来防止攻击,还要确保实施了正式的政策、程序,甚至框架,以确保有效的数字取证与事件响应(DFIR)。
蓝队员的工作内容远比红队员更多,因为蓝队员必须分析威胁,理解其风险和影响,实施安全和保护措施,理解取证和事件响应,并确保有效的监控、响应服务和措施的实施。如果蓝队员拥有红队员的知识或经验,那将非常有帮助,因为这可以更深入地理解攻击面和威胁环境。
蓝队员还必须具备广泛的技术和分析知识。虽然没有 IT 背景的人也有可能进入蓝队和 DFIR 领域,但这需要具备网络和系统管理员、以及安全分析师和威胁猎人的相关知识。例如,了解系统必须进行及时的更新和补丁修复是一种最佳实践。蓝队员不仅会理解为何需要打补丁,还会意识到在加固设备以减少攻击面时需要做更多的工作,同时还要考虑零日漏洞和人类弱点的可能性,这些可能轻易地让攻击者突破所有已实施的技术防护措施。
同时,蓝队员也常常看到招聘广告要求熟练使用安全信息与事件管理(SIEM)工具,这些工具提供实时分析、监控和警报,极大地帮助 DFIR 管理,并使得在保护数据、系统和资产时,能够更好地理解维持高安全性态势所需的保护级别。
蓝队成员必须认识到,他们的责任不仅仅局限于内部和外部资源,还会在考虑要保护的资产的威胁环境时得到扩展。威胁环境可以是设备、人员、数据,以及任何在攻击者策划攻击时可能有用的信息。这就是深入理解 OSINT 的重要性。尽管前面提到过这是一项红队技能,但对于蓝队员来说,这同样重要,因为它能够帮助他们在互联网上、社交媒体上以及暗网中搜索任何可能对自己构成威胁或在某种程度上帮助威胁行为者的信息。
一个好的例子是,蓝队员(在采取所有必要措施保护自己后)在暗网上搜索泄露的数据库,查找他们所在公司的泄露电子邮件或虚拟私人网络(VPN)凭证。蓝队员还可以使用像 Shodan.io 这样的网站,稍后我们将在本书中讨论它,用来从外部视角查找可访问的设备,如外部访问防火墙、服务器和闭路电视摄像头。以上所有场景都能帮助蓝队员制定所谓的威胁概况,尽管这些概况并不直接关注内部和外部资产,但仍会收集潜在威胁,甚至是外部发现的妥协指标(IoC)。
学习 OSINT 的一个很好的免费资源是 TCM Academy 在 YouTube 上提供的免费 4 小时课程,可以通过此链接访问:www.youtube.com/watch?v=qwA6MmbeGNo。
尽管许多前面提到的技能是通过研究和无数小时的挖掘、观看 YouTube 视频和参加专业课程学习的,我列出了几项认证,它们可能有助于你在蓝队和 DFIR 领域进一步深造和发展职业生涯。
一些蓝队认证包括(但不限于):
-
计算机黑客取证调查员(CHFI)来自 EC-Council
-
认证云安全工程师(CCSE)来自 EC-Council
-
认证取证计算机检查员(CFEC)来自 IACIS
-
GIAC 认证取证检查员(GFCE)来自 SANS
本书将详细探讨作为 DFIR 调查员和分析员所需的工具。尽管我们不会深入讨论商业工具的使用,但我会提到一些你可能在从事 DFIR 或作为蓝队员的职业生涯中需要了解的工具,尽管本书中涵盖的开源工具已经足够让你开始并开展完整的 DFIR 调查,只要遵循最佳实践和程序。
同样,DFIR 调查员和分析员必须了解遵循最佳实践和程序在证据采集、获取、分析和文档化中的重要性,因为证据和案件的完整性可能很容易被破坏。证据分析和报告结果应该是可重复的,这意味着其他 DFIR 调查员和分析员应该能够重复你所做的测试,并得到与您相同的结果。
在这方面,蓝队人员应该有一个详细且文档化的行动计划,并具备专用工具的知识。对于蓝队,有许多免费且文档化良好的最佳实践和框架,我们将在下一章中讨论其中的一些。
让我们简要回顾一下在 DFIR 调查中可能需要使用的工具,本书将涵盖所有这些工具。以下列表提供了一个具体任务的一行描述以及为完成该任务而使用的工具。可以将其视为蓝队开源工具的备忘单。你也可以复制这页,作为你进行取证和事件响应工作时的参考:
-
DFIR 的取证操作系统 – 我们定制的 Kali Linux 版本、CSI Linux 和 CAINE
-
创建一个可启动的 Kali Linux USB – Rufus 和 Etcher
-
为 Raspberry Pi 创建一个便携版本的 Kali Linux – Imager(Pi Imager)
-
在 Kali 中安装 Windows 工具 – Wine
-
内存采集 – FTK Imager 和 Belkasoft RAM Capturer
-
证据和驱动器采集 – DD、DC3DD、Guymager 和 FTK Imager
-
文件恢复和数据雕刻 – Foremost、Magic Rescue、DD-Rescue、Scalpel 和 Bulk_extractor
-
PDF 取证 – pdfparser
-
NTFS 驱动器恢复 – scrounge-ntfs
-
内存/RAM 分析 – Volatility 3
-
操作系统识别 – p0f
-
实时 Linux 取证 – Linux Explorer
-
工件发现工具 – swap_digger, mimipenguin 和 pdgmail
-
基于浏览器的取证分析工具 – Autopsy Forensic Browser
-
完整的取证分析工具 – Autopsy 4
-
网络发现工具 – netdiscover 和 nmap
-
IoT 搜索引擎 – Shodan.io
-
基于浏览器的网络数据包捕获分析 – Xplico
-
自动化的网络数据包捕获分析 – Network Miner 和 PcapXray
-
在线 Pcap 分析工具 – packettotal.com, apackets.com
接下来,让我们来看看紫队合作。
了解紫队合作
现在,让我们进入紫队合作的“禅宗时刻”。紫队合作这个术语指的是红蓝队技能的结合。紫色也可以通过混合红色和蓝色获得,因此得名紫队合作。回顾在红蓝队部分提到的所有技能和认证,可能会觉得这是一个不可能完成的任务;然而,我可以向你保证,有许多紫队成员曾经是新手,最终成了专业人士,我也是其中之一。
当我在 2000 年代初期开始我的网络安全之旅时,我对道德黑客和渗透测试(红队)更感兴趣,那时我常常整夜坐在桌前阅读、研究,并使用当时极为有限的工具。直到大约 2008 年,我才决定涉足数字取证与事件响应(DFIR),并对取证领域产生了浓厚兴趣,以至于我开始教授 CHFI 课程并与 CEH 课程并行授课。
每次我想要专注于某一领域时,总会遇到一个新工具,促使我关注另一个领域。幸运的是,这一切最终对我有利,因为我很快意识到红蓝队之间有很多重叠的部分,而且也没有哪个时刻我可以说自己已经学够了。我的意思是,网络安全是一个动态变化的领域,拥有多种路径,你永远无法学得足够。总有新的漏洞、新的调查工具或新的事件响应程序等待你去学习,而你需要决定是专注于某个领域,还是像我一样继续学习和成长,并在需要时应用你的知识。
快进到今天,我是计算机取证与安全研究所的所有者,在这里我不仅领导一个紫队,还担任首席渗透测试员以及首席取证和事件响应调查员。同样,一旦你全身心投入,是完全有可能在这两个领域都成为专家的。
在这方面,我可以自信地说,Kali Linux 是开始的完美平台,因为它提供了最适合紫队合作的工具。让我们快速浏览一些可供使用的渗透工具(红队工具),这些工具都在任何版本的 Kali 中预安装。
这只是 Kali 中Exploitation菜单中的工具的一部分;然而,我在红队评估中通常会专注使用metasploit 框架、msf payload creator和社会工程工具包(root 权限)。

图 1.2 – Exploitation 菜单中的工具
现在让我们看看 Kali Linux 中的取证菜单:

图 1.3 – 反取证菜单中的工具
再次强调,这只是一些取证工具,其他工具也可以通过查看所有应用程序菜单找到,我们将在第三章,安装 Kali Linux中探索。Kali Linux 是为紫队提供多种工具的少数用户友好平台之一,我期待在接下来的章节中向您展示如何有效使用其中的许多工具。
在第三章,安装 Kali Linux,我将逐步向您展示如何在安全的虚拟测试环境中设置 Kali Linux,我们可以在其中使用工具并下载样本文件进行分析。虽然此虚拟机将连接到互联网,但我们将在沙盒环境中使用它,以确保不影响您的生产环境。在第五章,在 Kali Linux 中安装 Wine,我还将带您完成在 Kali Linux 中安装 Wine 的过程,以帮助构建您的终极蓝队和紫队工具库,现在结合了最好的开源 Windows 和 Linux 工具。
现在我们已经了解了红队、蓝队和紫队的区别,我们将继续理解数字取证,并查看其他取证平台和一些商业工具,尤其重要的是,在第二章,数字取证简介中,我们将深入了解取证框架。
总结
在本章中,我们介绍了 Kali Linux 的基于 Debian 的操作系统及其在网络安全领域的实用性。我们还了解了网络安全中的不同团队,如红队(由关注攻击性安全和道德黑客的个人组成,如渗透测试员)和蓝队(由关注网络和数据防御的个人组成,如取证调查员)。我们还了解到,具备红队和蓝队技能和经验的个人被视为高技能紫队成员,这表明该个人精通广泛的漏洞评估、渗透测试、以及事件响应和数字取证工具,其中许多工具可以在 Kali Linux 中找到。
接下来,我们将更深入地探讨数字取证,了解其他取证操作系统,并学习取证框架以及常用的开源和商业工具。下一章见!
第二章:数字取证简介
本章介绍了数字取证科学的各个方面。它将特别为那些可能是数字取证与事件响应(DFIR)新手的读者介绍基础知识,随着本书的进展,我们将在这些基础上进一步深入。
本章将涵盖的主题有:
-
什么是数字取证?
-
蓝队和紫队的需求
-
数字取证的方法论与框架
-
数字取证操作系统(OSs)的比较
-
数字调查中使用多种取证工具的需求
-
商用取证工具与开源取证工具的比较
什么是数字取证?
我在本章中首先要介绍的内容是理解数字取证及其正确的实践和程序。你可能已经接触过几本书、博客,甚至视频,展示了数字取证的各个方面以及使用的不同工具。理解取证本身是一门科学,涉及非常明确的最佳实践和方法,以揭示某些事物是否存在,至关重要。
数字取证涉及从各种存储介质中保存、获取、记录、分析和解释证据。它不仅限于笔记本电脑、台式机、平板电脑和移动设备,还包括跨公共或私人网络传输的数据。
在大多数情况下,数字取证涉及使用各种方法和工具来发现和/或恢复数据。数字取证调查包括但不限于以下内容:
-
数据恢复:调查和恢复可能已被删除、更改文件扩展名,甚至隐藏的数据。
-
身份盗窃:许多欺诈活动,从盗用信用卡到伪造社交媒体账户,通常涉及某种形式的身份盗窃。
-
恶意软件与勒索软件调查:至今,通过特洛伊木马和蠕虫传播的勒索软件,已成为对公司、军事组织和个人的最大威胁之一。恶意软件也可以通过移动设备和智能设备传播。
-
网络和互联网调查:调查拒绝服务攻击(DoS)和分布式拒绝服务攻击(DDoS),并追踪被访问的设备,包括打印机和文件。
-
电子邮件调查:可以调查源头和 IP(互联网协议)来源、附件内容以及地理定位信息。
-
企业间谍活动:许多公司正在逐步远离打印副本,转向云端和传统磁盘存储。因此,数字足迹总是会留下;如果敏感信息被访问或传输,会发生什么?
-
儿童色情调查:令人痛心的是,现实情况是,儿童在互联网上以及深网中广泛遭受剥削。通过技术手段和高技能的法医分析师,调查人员可以分析互联网流量、浏览历史、支付交易、电子邮件记录和图片等,开展调查工作,摧毁这些剥削网络。
接下来,我们将探讨蓝队和紫队的必要性以及每个团队所需的技能。
蓝队和紫队的必要性
如在第一章《红队、蓝队和紫队基础》一文中所讨论,蓝队更关注数字取证与事件响应(DFIR),而紫队成员则是那些能够理解并操作网络安全攻防两端的人员。
最近,尤其是在 Covid-19 大流行封锁期间,您可能已经注意到或看到网络攻击有了显著增加。这些攻击的一个主要因素是员工在各个层级上缺乏安全意识培训,导致他们成为钓鱼攻击的受害者。在封锁期间,发生了大量钓鱼攻击,这些攻击通过社交工程手段诱使用户打开恶意邮件或泄露个人或公司信息。攻击者使用与 Covid-19 疫情爆发、健康更新相关的邮件主题,甚至通过受害者亲友的电子邮件账户请求帮助,伪装成这些受害者被困在封锁中的国家,需要财务援助才能回家。
在过去一两年里,来自臭名昭著的勒索软件和高级持续性威胁(APT)团体的勒索软件攻击显著增加,且勒索软件在暗网中已经可以轻易购买。ALPHV、Darkside、Revil 和 BlackCat 只是一些最臭名昭著的勒索软件和 APT 团体,它们的名字通常会让任何网络安全专业人士感到恐惧。这些团体以破坏个人和公司为主,随后要求支付数千到数百万美元不等的赎金。除了数据被高度加密并丢失外,这些团体现在还会通过 DDoS 攻击进一步攻击受害者,并将被窃取的受害者数据发布在暗网博客上。我们将在本书后续内容中深入探讨勒索软件问题。
应对事件是一回事,因为我们(希望)可能有计划或正式程序可遵循,但如果我们没有适当的机制来检测到事件,那么情况可能比预想的更糟糕。这就是蓝队和紫队成员需求的地方。黑客、恶意软件开发者、APT(高级持续性威胁)等并不会休息,当然也不关心公司和经济的财务状况。勒索软件在过去某些案例中已经证明是非常有利可图的,我们必须考虑到,在任何时间,恶意软件开发者都在研究新的攻破方法。
每个组织必须拥有蓝队,若没有紫队,至少应该外包团队的技术和职能,若决定不设立内部团队。有许多托管安全服务(MSS)公司可以执行所有必要的监控和告警系统。然而,拥有一到两名训练有素的蓝队和/或紫队成员的公司,始终会在准备和响应方面占有优势,因为内部团队不仅了解公司技术细节,还能理解组织文化和员工以及人力资源的意识水平(有时还缺乏意识),而这往往是网络安全中最薄弱的环节。
让蓝队成员定期进行网络安全意识培训与修补关键基础设施设备(如防火墙、路由器、交换机和服务器)同样重要。如今,网络安全意识必须与身体安全意识一样被重视,因为一个小小的失误可能会让一个庞大的企业瘫痪,且可能造成数百万美元的损失。如果员工能够意识到组织和个人面临的一般网络安全威胁,将大有裨益;尤其是在他们意识到组织和行业的特定威胁,且了解在组织中可能发生的特定威胁事件时,帮助会更大。通过这种方式,蓝队成员可以营造一个网络安全意识文化,让人们保持警觉,理解个人行为对组织安全、数据及资产保护所带来的风险和影响。
总结上述内容,蓝队和紫队负责组织内多个关键职能,包括:
-
威胁情报
-
威胁猎捕
-
事件响应
-
监控与事件管理
-
日志审查
-
漏洞评估(红队/紫队)
-
渗透测试(红队/紫队)
-
威胁模拟
在接下来的章节中,我们将探讨数字取证方法和框架,作为执行证据获取和取证调查时的最佳实践指南。
数字取证方法论和框架
记住,法医学是一门科学,数字取证要求你遵循适当的最佳实践和程序,以确保每次都能产生相同的结果,提供证据的证明、保存和完整性,如果需要的话,可以复制这些结果。
虽然许多人可能并不是在进行数字取证以便作为法庭证据使用,但最好以一种可以在法庭上被接受并呈现的方式进行数字取证与事件响应(DFIR)实践。遵循由专门从事数字取证和事件响应的组织制定的最佳实践,主要目的是确保在调查过程中保持证据的完整性。如果调查人员的工作需要被他人或对方当事人审查和批评,那么调查人员发现的结果必须能够被重新创建,从而证明调查的完整性。这样做的目的是确保你的方法可以重复使用,并且如果被剖析或审查,能够一次又一次地产生相同的结果。所使用的方法论,包括调查的程序和结果,应始终确保数据的完整性,不论使用何种工具。
本书中展示的最佳实践确保原始证据未被篡改,或者在调查设备和数据时,如果是在实时或生产环境中,能提供充分记录的证据,证明在调查过程中采取了必要的步骤,以避免不必要地篡改证据,从而保护证据的完整性。对于完全不熟悉调查的新手,我建议先熟悉一些专业社区广泛应用和实践的各种方法和技术。
因此,存在若干指导方针和方法论,你应当采纳或至少遵循,以确保检查和调查具有法医学的严谨性。
本章提到的最佳实践文件包括:
-
首席警察官协会 (ACPO) 数字证据最佳实践指南
-
数字证据科学工作组 (SWGDE) 法医学出版物
尽管是在 2012 年编写的,ACPO 现在作为全国警察局长委员会 (NPCO),提出了一份名为数字证据良好实践指南的 PDF 文件,该文件包括在进行数字取证调查时的最佳实践,特别侧重于证据获取。ACPO 的数字证据良好实践指南随后被英格兰、威尔士和北爱尔兰的执法机构采纳和遵守,完整下载链接为www.npcc.police.uk/documents/crime/2014/Revised%20Good%20Practice%20Guide%20for%20Digital%20Evidence_Vers%205_Oct%202011_Website.pdf。
本指南提供的一些有用主题包括:
-
数字证据位置
-
与扣押相关的问题
-
捕获在线证据
-
数据分析与解释
在 SWGDE 网站上可以找到其他有用且更近期的关于数字取证最佳实践的文档集。SWGDE 成立于 1998 年,由联邦犯罪实验室主任组成的团体创立,主要成员和贡献者包括 FBI、DEA、NASA 和国防部计算机取证实验室。尽管本文详细描述了正式计算机取证实验室环境中的程序和实践,但这些实践仍然适用于当前未参与或无法访问此类环境的人员在非实验室调查中的应用。
本书的早期版本提到了 2006 年至 2016 年间 SWGDE 发布的文件。2006 年的旧版SWGDE 最佳实践已不再在 SWGDE 网站上,但它揭示了许多主题,包括:
-
证据收集与获取
-
调查已开启和关闭电源设备
-
证据处理
-
分析与报告
此文档可以在www.oas.org/juridico/spanish/cyb_best_pract.pdf上公开获取。
自那时起已经进行了多次更新,现在所有更新的最新文件都可以在更新的 SWGDE 网站上找到,网址为www.swgde.org/documents/published-by-committee/forensics。有超过 35 个免费下载的出版物,其中 17 个在 2017 年至 2022 年间发布。我强烈建议下载这些文件,因为对于 DFIR 从业者来说,它们非常出色,每个文件大约只有 10 页或更少。
所谓的更新的SWGDE 最佳实践文件包含关于以下内容的优秀、深入研究和现代化的 DFIR 最佳实践:
-
车载信息娱乐和远程通信系统 (2022)
-
无人机 取证 (2022)
-
在线内容获取 (2022)
-
云服务提供商的数字证据获取 *(2020)
-
移动证据收集与 保存(2020)
-
数字证据 收集(2018)
-
计算机取证 检查(2018)
-
计算机取证 采集(2018)
还有许多其他有用的最佳实践出版物。
现在我们已经熟悉了 DFIR 方法论和最佳实践,让我们来看看 DFIR 框架。
DFIR 框架
尽管前述的最佳实践指南已经有些过时,但仍可与一个或多个框架结合使用。无论任务是什么,目标应始终保持不变,即在整个 DFIR 过程中,证据的完整性始终得到保持,从证据收集、检查、分析到报告。
有多个 DFIR 框架可供选择,若组织无论大小都能应用并实施这些框架,将有助于业务连续性和灾难恢复过程,这也是任何值得信赖的 DFIR 计划应具备的功能。以下是一些将在第七章中详细讨论的 DFIR 框架,事件响应、数据采集与 DFIR 框架。下载这些文档并将其保留为参考材料可能是个好主意,作为 DFIR 从业人员,你应当熟悉这些内容(可以先继续阅读下一节,稍后再回来查阅这些文档):
-
ISO/IEC 27037:2021 信息技术——安全技术——数字证据的识别、收集、采集和保存指南:
www.iso.org/obp/ui/#iso:std:iso-iec:27037:ed-1:v1:en -
NIST 特别出版物(SP)800-86 将取证技术融入事件 响应指南:
nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-86.pdf -
NIST 特别出版物(SP)800-61 修订版 2 计算机安全事件处理指南:
nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-61r2.pdf -
D4I - 数字取证框架,用于审查和调查 网络:
tsapps.nist.gov/publication/get_pdf.cfm?pub_id=929147 -
NISTIR 8428 操作技术(OT)数字取证与事件响应(DFIR)框架(2022 年 6 月):
nvlpubs.nist.gov/nistpubs/ir/2022/NIST.IR.8428.pdf
现在,让我们来看看一些取证操作系统及其之间的差异。
数字取证操作系统的比较
就像有许多商业工具可供使用一样,还有许多开源工具供调查人员、业余爱好者和专业人员使用。这些工具大多数基于 Linux,并可以在多个免费提供的取证发行版中找到,我们将在本节中讨论这些内容。
在选择工具时,通常会出现的一个主要问题是商业工具与开源工具的选择。无论你使用商业工具还是开源工具,最终的结果应该是相同的,重点是保护和保持原始证据的完整性。
重要提示
预算总是一个问题,某些商业工具(无论它们多么强大、准确和用户友好)可能需要花费数千美元。
这些开源工具在各种开源许可证下免费使用,不应因为它们没有得到企业开发者和研究人员的支持而被忽视。
许多开源工具被取证社区广泛审查,并可能接受更多的审查,因为它们是公开可用的,并且是用非专有代码构建的。
尽管本书的重点是 Kali Linux 中的取证工具,我们将在本节末尾及之后开始查看,以下是一些更受欢迎的开源取证发行版或称为“发行版”。
以下节中提到的每个发行版都可以在许多地方免费获得,但出于安全考虑,我们将提供它们主页上的直接链接。本节中的操作系统没有特定的排列顺序,也不反映任何评级、评论或作者个人偏好。
我们将在本节中讨论的取证平台有:
-
DEFT Linux 8
-
计算机辅助调查环境(CAINE)12.4 Sidereal 和 CAINE 11 Wormhole
-
CSI Linux 2022.1
-
Kali Linux 2022.3
如果你在想,我使用前面提到的所有平台作为实时系统和虚拟机,我也为 CSI Linux 和 Kali 配置了专用机器。下面是我的VirtualBox Manager列表的一个片段:

图 2.1:VirtualBox Manager 中的虚拟机列表
数字证据与取证工具包 Linux
数字证据与取证工具包(DEFT)Linux 提供完整版和名为DEFT Zero的轻量版。出于取证目的,你可能希望下载完整版,因为 Zero 版不支持移动取证和密码破解功能:
-
DEFT Linux 8 下载页面:
archive.org/download/deft-8.2/deft-8.2.iso -
DEFT Linux Z(2018-2)下载页面:
sourceforge.net/projects/archiveos/files/d/deft/deftZ-2018-2.iso/download-
基于:Ubuntu 桌面版
-
发行类型:取证与事件响应
-
与此列表中提到的其他发行版类似,DEFT,如以下截图所示,也是一个完全功能的 实时响应 法医工具,可用于在无法关闭计算机的情况下进行实时响应,并允许对 RAM 和交换文件进行即时分析。虽然稍显过时,但我个人仍然使用 DEFT 8.2,特别是用于使用 Xplico 进行数据包分析:

图 2.2:DEFT Linux 8 启动菜单
在从 DEFT Linux DVD、可启动闪存盘或其他媒体启动时,您将看到各种选项,包括将 DEFT Linux 安装到硬盘、作为实时响应工具使用,或者通过选择 DEFT Linux 8 实时选项,作为操作系统使用,如下所示:

图 2.3:DEFT Linux 菜单
在前面的截图中,可以看到 DEFT Linux 8 中有几个法医类别,如 Antimalware、Data Recovery、Hashing、Imaging、Mobile Forensics、Network Forensics、Password recovery 和 Reporting tools。每个类别中都有多个由不同开发者创建的工具,提供了多样的选择供调查人员选择。
DEFT 包含许多有用的工具,为了做一个比较,我们来看一下 DEFT 中 Analysis 菜单下的工具:

图 2.4:DEFT Linux 中的法医分析工具
计算机辅助调查环境(CAINE)
CAINE 是一款可启动的实时响应 CD/DVD,提供以安全模式、文本模式、作为实时系统或以 RAM 启动的选项,如下所示。需要注意的是,最新版本 CAINE 12.4(Sidereal)不可安装,仅为实时系统操作系统。如果您希望安装 CAINE,可以使用 CAINE 11(Wormhole),尽管它们都可以作为实时系统用于实时采集和法医分析,如下图所示。
图 2**.5 显示了 CAINE 12.4 (Sidereal) 启动屏幕菜单的截图,您可以在其中选择 CAINE 12.4 的不同启动选项:

图 2.5:Caine 12.4 启动菜单
图 2**.6 显示了 CAINE 11 启动屏幕,与 CAINE 12 几乎相同,如 图 2**.5 所示:

图 2.6:Caine 11 启动菜单
以下是 CAINE 详细信息的总结:
-
CAINE 11 和 12 都可以在
www.caine-live.net/下载 -
基于:GNU Linux
-
发行版类型:法医与事件响应
在选择启动选项后,CAINE 最显著的特点之一就是可以轻松找到写保护器功能,如下图所示,标记为 UnBlock 图标:

图 2.7:CAINE 12 桌面界面
激活此功能可以防止 CAINE 操作系统向证据计算机或驱动器写入数据。如果你没有硬件写保护器,启用此功能非常有用,关于这一点我们将在第七章**,事件响应、数据采集和 DFIR 框架中进一步讨论。

图 2.8:CAINE 写保护器界面
取证工具是 CAINE 中列出的第一个菜单。像 DEFT Linux 一样,菜单中有几个类别,如以下截图所示,其中包括一些在开源取证中最常用的工具。除了这些类别,还有一些更知名工具的直接链接,如Guymager和Autopsy,它们将在后续章节中详细介绍:

图 2.9:CAINE 12 中可用的取证工具
让我们来看看 CAINE 中分析菜单中的工具。如前所述,CAINE 中有更多的图形用户界面(GUI)DFIR 工具,而不是 DEFT 中:

图 2.10:CAINE 12 中可用的分析工具
我们在 CAINE 的内存 取证菜单中也提供了各种工具:

图 2.11 – CAINE 12 中可用的内存取证工具
有关发布时 CAINE 包含的所有功能和软件包的完整列表,请访问www.caine-live.net/page11/page11.xhtml。
最新版本的 CAINE 12.4 Sidereal 可以在deb.parrot.sh/direct/parrot/iso/caine/caine12.4.iso以 ISO 格式下载,大小约为 3.9 GB。
如前所述,如果你希望使用可安装的 CAINE 11 Wormhole,可以在deb.parrot.sh/direct/parrot/iso/caine/caine12.4.iso下载。
若要安装到 USB 闪存驱动器,请确保驱动器容量不少于 8 GB;但建议使用 16 GB 的驱动器。可以使用 Rufus 工具自动创建可启动的 CAINE 驱动器,如第三章所示,安装 Kali Linux。
CSI Linux
CSI Linux 是一个相对较新的平台,由具有远见的Jeremy Martin及其优秀团队开发,他们打造了一个功能强大的取证/蓝队平台,我与 Kali Linux 一样经常使用。CSI Linux 2022.1 提供了适用于 VirtualBox 和 Kali Linux 的虚拟设备安装,也可以下载作为可启动镜像进行实时 DFIR 操作。未来还计划发布 CSI Linux 安全信息与事件管理(SIEM)系统。
CSI Linux 2022.1 可以直接从 csilinux.com/download 下载。
提示
如果使用 CSI Linux,用户名和密码都是csi。

图 2.12:CSI Linux 登录界面
与 DEFT、CAINE 和 Kali 类似,CSI Linux 也具有非常用户友好的桌面界面:

图 2.13:CSI Linux 桌面界面
点击 CSI Linux 菜单按钮会显示出一长串类别,包括OSINT 和在线调查、黑暗网络和威胁情报类别,正是在这些方面,我认为 CSI Linux 真正表现出色,因为其他平台没有这些预装工具:

图 2.14:CSI Linux 取证工具
再次为了对比,我们来看看OSINT 和在线调查、黑暗网络和计算机取证菜单。
OSINT 和在线调查菜单下有多个子菜单,提供了非常有用的工具,用于社交媒体、电子邮件、电话和社交工程工具,所有这些我都经常使用:

图 2.15:CSI Linux OSINT 和在线调查工具
黑暗网络调查工具在紫队合作中也非常受欢迎,因为它们被渗透测试员和 DFIR 从业人员共同使用:

图 2.16:CSI Linux 黑暗网络调查工具
计算机取证和事件响应菜单中列出了许多更新和现代的图形界面(GUI)和命令行界面(CLI)工具,用于进行全面调查:

图 2.17:CSI Linux 计算机取证工具菜单
CSI Linux 还拥有一个令人印象深刻的事件响应工具类别,正如在图 2.18中所见:

图 2.18:CSI Linux 事件响应菜单
我强烈建议下载并熟悉 CSI Linux。我们将在本书中学习使用的许多工具也已经预装在 CSI Linux 中,这将减少学习曲线。
Kali Linux
最后,我们来到了这颗宝石,Kali Linux,在下一章以及本书的全篇中将详细讨论其从安装到高级取证应用的方方面面:
-
基于:Debian
-
发行版类型:渗透测试、取证和反取证
Kali Linux 最初是作为渗透测试或渗透测试发行版 BackTrack 创建的,后来在 2015 年演变为 Kali Linux,如在第一章《红队、蓝队和紫队基础》一书中所提到的。这款强大的工具是全球渗透测试人员和安全爱好者的首选工具。作为认证 EC-Council 教师(CEI)以及认证道德黑客(CEH)课程的讲师,该操作系统通常是课堂的明星,因为它包含了许多令人印象深刻的安全工具,从扫描和侦察工具到高级漏洞利用和报告工具应有尽有。
与前面提到的工具一样,Kali Linux 可以作为一个实时响应取证工具使用,因为它包含了进行完整调查所需的许多工具。然而,Kali 也可以作为一个完整的操作系统使用,因为它可以完全安装在硬盘或闪存驱动器上,并包含多种生产力和娱乐工具。它自带许多硬件、图形和网络设备所需的驱动程序,并且在 32 位和 64 位系统上运行流畅,且占用资源极少;它也可以安装在某些移动设备上,如Nexus和OnePlus手机,以及其他手机和平板电脑上。
除了其多功能性外,从 Live CD/DVD 或闪存驱动器启动时,调查员有多个选项可供选择,包括Live(取证模式),该模式保持证据驱动器的完整性,不会干扰或篡改证据,还会禁用闪存驱动器和其他存储介质的自动挂载,确保在整个调查过程中保持原始证据的完整性。
再次强调,Kali Linux 是首选的紫队平台,它将渗透测试和取证工具完美地集成在一个出色的包中。
当从 DVD 或闪存驱动器启动 Kali Linux 时,用户首先会看到用于启动 Live 环境和安装的选项。从列表中选择第三个选项会进入Live(取证模式),如以下截图所示:

图 2.19:Kali Linux 启动菜单
一旦 Kali Live(取证模式)选项启动,调查员将看到与使用 Kali 中任何图形用户界面时相同的主屏幕,如下图所示:

图 2.20:Kali Linux 桌面界面
当然,Kali 也可以作为一个完整的操作系统安装在虚拟机或直接安装到硬盘上,相关内容将在第三章《安装 Kali Linux》中介绍。这是我桌面的截图,安装了如 FTK Imager 和 Autopsy GUI 等 Windows 取证工具,使用 Wine 运行:

图 2.21:Kali Linux 定制桌面
Kali 菜单可以通过点击应用程序在左上角找到。点击后,用户会进入菜单列表,菜单下方显示取证类别,标注为11 - Forensics。以下截图展示了 Kali 中一些我们在本书后面将要使用的取证工具:

图 2.22 – Kali Linux 取证工具菜单
需要注意的是,所列的工具并不是 Kali 中唯一可用的工具。还有一些其他工具可以通过终端调用,稍后章节中我们会看到。
值得注意的是,当处于取证模式时,Kali 不仅不会篡改原始证据驱动器,还不会向交换文件写入数据,因为交换文件可能存储了最近访问并保存在内存中的重要数据。
如需查看发布时 Kali Linux 操作系统所包含的完整功能和软件包列表,请访问www.kali.org/tools/。
Kali 不仅可以作为一个实时响应取证工具使用,还可以像 Windows、macOS 和 Android 一样,作为完整操作系统使用,因为它内置了多个工具用于提高生产力和日常使用。Kali 能够安装到硬盘的事实意味着,您可以定期下载并更新其他工具,持续访问所有 IT 安全和取证工具。这样,您在使用工具时能够保存进度,并且不必过多担心如果您决定将其作为完整操作系统使用时需要重启机器。
使用这些开源操作系统,如 Kali,给我们提供了一系列可供选择和使用的工具。在每个类别中,很多工具都能执行相同的任务。这是一个好现象,因为我们的调查结果应当能够通过不同的工具进行重复验证。尤其是在调查员的工作可能受到批评时,这一点尤为重要,案件的完整性和证据的可信度也可能受到质疑;正确使用多个工具将得出一致的结果。接下来,我们将探讨在调查中为何需要使用多个工具。
数字调查中对多个取证工具的需求
证据的保存至关重要。正确使用商业和开源工具将产生有效结果;然而,为了获得取证上无懈可击的结果,有时最好使用多个工具来产生相同的结果。
使用多个工具的另一个原因可能仅仅是成本效益。一些人可能有充足的预算,而另一些人可能预算有限,甚至没有预算。商业工具可能很昂贵,特别是考虑到研发、测试、广告和其他因素。虽然开源工具经社区测试,但可能没有商业工具那样的资源和资金。
那么,我们如何知道选择哪些工具呢?
数字取证通常非常耗时,这也是你可能希望使用多个取证副本的原因之一。通过这种方式,你可以同时使用不同的工具来加速调查。尽管快速的工具可能是好事,但我们也应该质疑这些工具的可靠性和准确性。
美国国家标准与技术研究院(NIST)开发了计算机取证工具测试(CFTT)程序,用于测试数字取证工具,并将所有结果公开。根据工具的特定能力,选出多个工具并分入不同的测试类别,如磁盘映像、文件修复和数据恢复等。每个类别都有正式的测试计划和策略,并附有验证报告,报告也公开发布。
关于 CFTT 程序的更多信息,请访问www.cftt.nist.gov/disk_imaging.htm。本书中涵盖的许多工具的测试和验证报告可以在www.dhs.gov/science-and-technology/nist-cftt-reports找到。
为了加强使用多个工具维护调查和结果完整性的重要性,从本书的第七章《事件响应、数据获取和 DFIR 框架》开始,将演示多个工具的使用。
到目前为止,我们已经讨论了开源工具。在接下来的章节中,我将讨论一些你可能会遇到的流行商业取证工具,特别是如果你是或打算成为数字取证和事件响应(DFIR)专业人员的话。
商业取证工具
尽管我们将使用开源工具,但我想提到一些你可能有兴趣使用或加入到你作为取证专业人员工具库中的流行商业工具。
Belkasoft Evidence Centre X
Belkasoft Evidence Center (EC) X 是一个自动化的事件响应和取证工具,能够分析获取的内存转储、虚拟机、云、移动备份以及物理和逻辑驱动器的映像。
Belkasoft EC X 还能够搜索、恢复和分析以下类型的证据:
-
办公文档
-
浏览器活动和信息
-
电子邮件
-
社交媒体活动
-
移动应用程序
-
消息应用程序(WhatsApp 和 Facebook Messenger)
-
云数据获取
更多 Belkasoft 产品的信息可以在 belkasoft.com/ 找到。
Belkasoft 还提供一个免费的获取工具和 RAM 捕获工具,以及其 EC 的试用版,下载链接为 belkasoft.com/get。
Exterro 取证工具包(FTK)
Exterro 取证工具包 (FTK) 已经存在一段时间,并被全球的取证调查员和执法机构广泛使用。FTK 还与 Belkasoft 集成,提供更好的用户体验。FTK 的一些功能包括:
-
使用四个引擎的多核支持进行快速处理
-
处理大量数据的能力
-
数据索引以便于更快和更轻松的搜索与分析
-
密码破解与文件解密
-
自动化分析
-
能够执行定制的数据雕刻
-
高级数据恢复
更多关于 FTK 的信息可以在 accessdata.com/products-services/forensic-toolkit-ftk 找到。
FTK 的试用版可以在 go.exterro.com/exterro-software-demo 下载。Exterro 还提供一个免费的镜像获取工具,供下载和使用,链接地址是 go.exterro.com/l/43312/2022-08-23/f7rylq。
OpenText EnCase Forensic
曾被称为 Guidance EnCase Forensic,现在被称为 OpenText EnCase Forensic,这款工具多年来一直处于行业前沿,并且近二十年来已被全球的专业人员和执法人员广泛使用。与 FTK 类似,EnCase 提供了多个解决方案,涵盖事件响应、电子发现以及端点和移动取证。
除了作为一整套数字取证解决方案和工具套件外,EnCase 的其他一些功能包括:
-
从超过 25 种不同类型的移动设备获取镜像,包括手机、平板电脑,甚至是 GPS 设备。
-
支持 Microsoft Office 365。
-
使用 Check Point 的全盘加密进行证据解密。
-
深度取证与筛查分析。更多关于 EnCase 的信息可以在
www.guidancesoftware.com/encase-forensic找到。
现在我们已经介绍了一些更流行的商业取证工具,接下来我想简要谈一下反取证,您可以在自己的时间里进一步研究这一话题。
反取证——对数字取证的威胁
尽管我们希望数字取证任务尽可能简单,但我们仍然会遇到使调查过程、以及作为取证调查员的生活变得复杂甚至有压力的情况。那些试图隐藏信息、掩盖痕迹的人,以及有恶意意图或参与网络犯罪的人,常常采用各种方法来阻挠取证调查员的工作,企图妨碍或中止调查。
近年来,我们见证了几次重大的网络攻击事件,尤其是自 2011 年起。这些攻击中的许多据称是臭名昭著的黑客组织的作品,例如 LulzSec、Anonymous、Lizard Squad 等,甚至包括一些个人和黑客活动家(那些为特定目的或原因进行黑客攻击的人,通常不太担心因此入狱)。这些攻击不仅导致多个主要网络和机构瘫痪,还直接和间接造成了数百万美元的损失;因此,公众对这些公司的信任丧失进一步加剧了损失。
这些大胆、富有创意的公开攻击促使了许多新的团体的出现,这些团体从过去匿名者和其他组织的攻击失误中汲取了教训。社交媒体和地下通信渠道很快成为了志同道合的黑客和黑客活动家之间最便捷的沟通方式。随着互联网和万维网的普及,这不仅带来了 IP 之间的竞争,还导致了私人公司和企业之间的竞争,进而促使了几乎每个街道上都有免费无线热点的出现,无论是大企业还是小商店。
在几乎每个咖啡店都能上网的情况下,任何拥有智能手机、平板电脑、笔记本电脑或其他设备的人几乎都能获得未经认证的互联网访问权限。这使他们能够访问黑客网站和门户网站,下载工具,上传恶意软件,发送感染邮件,甚至发动攻击。
我们还应该考虑加密技术对我们调查的影响,接下来我们将详细探讨这一点。
加密
另一个需要注意的情况是,越来越多的用户友好型工具被用来帮助掩盖公开身份信息(PII),或者任何可能在法医调查过程中帮助揭示网络犯罪嫌疑人的信息。用于数据加密和匿名化的工具,例如 IP 地址掩码,已经可以轻松获取,而且大多数工具都变得越来越易于使用。
还需要注意的是,许多 Wi-Fi 热点本身可能相当危险,因为它们很容易被设置成截获个人数据,如登录和密码信息,以及个人身份信息(PII,例如社会保障号码、出生日期和电话号码),从而窃取任何可能连接 Wi-Fi 并输入此类信息的用户的资料。
加密过程为通信双方提供了机密性,使用的技术与我们使用锁和钥匙来保护个人私人物品的方式非常相似。为了打开一个锁,必须有一个匹配的钥匙。同样,在数字世界中,数据是通过加密算法加密或锁定的,并且必须使用相同的钥匙来解密或解锁数据。还有另一种情况,即使用一个密钥来加密或锁定数据,另一个密钥则用来解密数据。两种非常流行的加密工具是 TrueCrypt 和 VeraCrypt。
这两种加密工具使用非常高的加密方法,能确保数据的高度机密性。对于取证工作来说,主要的障碍可能是获取解密密钥,以解密或解锁数据访问。
重要提示
TrueCrypt 和 VeraCrypt 不仅能加密文件,还能加密文件夹、分区甚至整个硬盘!
除了使用加密工具,如此处提到的那些,我们还应考虑使用匿名性工具,如下一节中提到的那些工具。
在线与离线匿名性
加密,尤其是,加密技术会使调查变得相当困难,但也存在匿名性的概念,这增加了在调查中保持真实来源准确性的复杂性。像加密一样,针对所有操作系统平台(如 Windows、MacOS、Linux 和 Android)有几个免费的开源工具,这些工具通常能够(且大多数情况下成功地)掩盖某人数字足迹的隐藏。这个数字足迹通常通过其 IP 地址和 媒体访问控制(MAC)地址来识别设备。如果不深入探讨网络方面的内容,这两个数字地址可以分别比作一个人的全名和家庭地址。
即使一个人的 IP 地址根据其私有网络(家庭和工作)和公共网络(互联网)访问而发生变化,MAC 地址仍然保持不变。
然而,出于隐私和匿名性的目的,也有多种工具可以自由获取,用来伪装或伪造你的 IP 和 MAC 地址。更进一步,用户可以通过将数据路由通过在线服务器和设备,使得追踪发送数据的源头变得相当困难。这个系统被称为 代理链路,它能在一定程度上隐藏用户的身份。
一个很好的例子是 Tor 浏览器;它使用洋葱路由和全球多个代理来传递数据,使追踪源头变得非常困难,但并非不可能。你可以把代理链想象成接力赛,但不同的是,不是四个人一个接力棒传给下一个,而是数据在全球数百个代理设备之间传递。
现在你应该对反取证有了基本的了解,并且理解了加密和匿名工具的使用,这些工具可以隐藏或模糊可能会使 DFIR 调查变得复杂的信息和数据。让我们总结一下刚刚讨论的内容,然后继续进入下一章。
摘要
我们看到,数字取证仍然是一个相对较新的领域,尽管法医科学自 20 世纪初就已存在。虽然数字取证可能自 2000 年代初才开始出现,但作为一门科学,我们已经有了某些最佳实践、程序、标准和框架,例如由 ACPO、SWGDE 和 NIST 创建的框架,以遵循。这些框架在进行调查时,无论是作为业余爱好者还是专业的数字取证调查员,都能够确保调查结果和实际证据的准确性与完整性。
一些提到的商业工具包括 Belkasoft EC X、FTK 和 EnCase Forensics。许多可用的开源工具是为基于 Linux 的发行版设计的,可以单独下载,但许多工具在某些法医和安全操作系统或发行版中已预先包含。其中一些发行版包括 DEFT Linux、CAINE、CSI Linux,当然还有 Kali Linux;所有这些都可以通过提供的链接免费下载。
我希望这次数字取证的介绍对你既有信息性也有趣味性。现在我们已经建立了法医基础,接下来让我们深入了解 Kali Linux,在下一章中,我们将学习如何下载、安装和更新 Kali。下一页见!
第三章:安装 Kali Linux
跟我一起开始学习 Kali Linux 的实践部分吧。你们中的一些人可能已经熟悉安装过程,甚至一些高级功能,如分区和网络设置。对于初学者和那些刚接触 Kali Linux 的人,我们建议你们特别注意这一章,因为我们将从下载 Kali Linux 的基础开始,一步步进行,直到成功安装。
本章将要覆盖的主题如下:
-
将 Kali Linux 安装到便携存储介质上以进行实时 DFIR
-
将 Kali Linux 下载并安装为独立操作系统
-
在 VirtualBox 中安装 Kali Linux
技术要求
如前所述,Kali Linux 已经问世很长时间。此前被称为 BackTrack,从 1 到 5 版本发布,Kali Linux 于 2015 年首次发布,版本号为 Kali 1.0。自 2016 年起,Kali Linux 的版本名称采用了年份命名方式。所以,例如,在本书撰写时,使用的版本是 Kali 2022.3,发布于 2022 年 8 月。
对于运行旧版本 Kali Linux 或者在购买本书时,可能会有新版本的 Kali Linux(如 2023 及之后版本)发布的读者,您可以通过使用 sudo apt-get update 命令轻松更新您的 Kali Linux 实例,该命令将在 更新 Kali 部分后续演示。
下载 Kali Linux
出于安全原因,最好直接从其创建者 Offensive Security 的网站下载 Kali Linux。主要原因是,其他网站上的 Kali 下载可能是假的,或者更糟,可能包含恶意软件,如木马、rootkit,甚至勒索软件。Offensive Security 还在其网站上提供了所有版本的 Kali 下载的哈希值,用户可以将其下载版本的哈希与 Offensive Security 网站上发布的哈希进行比较 (www.kali.org)。在那里,您可以点击 下载 链接,或直接访问 Kali Linux 下载 页面 www.kali.org/get-kali/。
在 下载 页面,提供了四个主要选项,您需要选择适合您平台的 Kali Linux 版本:
-
安装镜像:这些 ISO 镜像可以下载并直接安装到硬盘上,作为主要操作系统使用,方式与安装 Windows 或其他操作系统相同。ISO 文件(或称为 ISO 镜像)是数据的精确副本,专门用于数据复制。
-
虚拟机:这些镜像用于虚拟平台,如 VirtualBox 和 VMware,并已预配置,可以开箱即用。
-
ARM:这些镜像专门为低功耗设备和单板计算机(SBC)设计,例如 Raspberry Pi、Pinebook 和 Gateworks 设备。
-
移动设备:这种便携版本的 Kali Linux 称为 Kali NetHunter,自推出以来,现在可以安装在更多设备上,包括 OnePlus、ZTE、Nexus、三星、索尼、诺基亚,甚至 TicWatch Pro 智能手表。Kali NetHunter Lite 还可以安装在 ARM64 和 ARMhf 设备上。
下图显示了具有各种平台选项的主下载菜单。

图 3.1:可用的 Kali Linux 版本
一旦你点击某个菜单项,它将带你进入该特定平台的下载部分。例如,如果你点击菜单中的 虚拟机 选项,你将被带到用于 VMware 和 VirtualBox 的 64 位和 32 位版本的 Kali Linux 下载部分。
重要说明
32 位操作系统的内存限制为仅能使用 4 GB RAM。如果你的系统内存超过 4 GB,建议下载 Kali Linux 的 64 位版本。
在下图中,选择了64 位版本。

图 3.2:适用于 VirtualBox 和 VMware 的可用 32 位和 64 位 Kali Linux 版本
你可以选择VMware或VirtualBox平台。你可以通过点击图标下方的下载箭头直接在浏览器中下载 Kali,箭头表示该文件的大小为 2.4G。你还可以使用你选择的 Torrent 软件下载,例如 Tixati 或 BitTorrent,通过点击torrent选项来进行下载。Torrent 软件必须单独下载。docs选项将引导我们进入每个平台的文档页面,而sum选项则提供了上传者上传的原始文件的 SHA256sum 输出。
重要说明
sha256sum 命令用于在 Linux 中生成一个校验和或数字输出,表示现有数据,然后可以与下载副本的校验和进行比较,以确保没有数据或比特被更改或篡改。
现在我们已经熟悉了可用的 Kali Linux 版本,让我们来看看安装不同 Kali Linux 实例所需的软件。
下载所需工具和镜像
为了能够跟随本章在不同平台上安装 Kali Linux,你需要下载以下版本的 Kali Linux 以及一些附加工具,我已经在这里列出:
-
Kali Linux 64-bit 安装镜像(可以作为独立操作系统或虚拟机(VM)进行安装):
cdimage.kali.org/kali-2022.3/kali-linux-2022.3-installer-amd64.iso -
Kali Linux 64-bit 用于 VirtualBox:
kali.download/virtual-images/kali-2022.3/kali-linux-2022.3-virtualbox-amd64.7z -
Kali Everything 种子:
cdimage.kali.org/kali-2022.3/kali-linux-2022.3-installer-everything-amd64.iso.torrent -
Tixati 种子客户端软件:(用于下载 Kali Everything ISO 镜像):
www.tixati.com/download/windows64.xhtml -
7-Zip 工具(用于解压和解压 .7z 文件):
www.7-zip.org/download.xhtml -
Rufus 3.2(用于创建可启动驱动器的工具):
github.com/pbatard/rufus/releases/download/v3.20/rufus-3.20.exe -
VirtualBox 和 VirtualBox Oracle VM 扩展包:
www.virtualbox.org/wiki/Downloads -
Raspberry Pi Imager(用于在 Raspberry Pi 上下载和安装 Kali):
www.raspberrypi.com/software/。访问 Imager 下载页面时,请确保选择正确的平台。我将在 Windows 机器上使用 Imager,可以从downloads.raspberrypi.org/imager/imager_latest.exe下载。
下载 Kali Linux Everything 种子
Kali Linux 安装器有一个变种,叫做 Kali Everything。Kali Everything 镜像比其他安装版本要大得多,因为它包含了 Kali Linux 所有可用的工具。虽然这些工具可以通过仓库(通常称为 repos)手动下载和安装,但如果你不熟悉安装 Kali 工具和仓库,下载 Everything 版本并探索这些工具会更简单。你可以通过以下步骤下载 Kali Everything ISO 镜像:
- Kali Everything 可以直接安装到硬盘作为独立的操作系统(OS),如果你更喜欢此选项,也可以在 VirtualBox 中作为虚拟机安装。我们将在接下来的章节中覆盖这两种情况。你可以通过访问
kali.download/base-images/kali-2022.3/kali-linux-2022.3-installer-everything-amd64.iso.torrent下载 Kali Everything 种子。

图 3.3:Kali Everything 下载按钮的图片
- 然后,您可以使用您选择的 torrent 应用程序打开该链接。我使用了 Tixati 软件,它是为 Windows 系统设计的,我从
www.tixati.com/download/下载并安装在我的 Windows 10 笔记本上。点击链接后,Kali Everything torrent 文件会在 Tixati 客户端中打开。我选择将 Kali Everything 文件保存到我的 Downloads 文件夹中,下面的截图展示了这一过程。在选择了下载位置后,点击 Start 按钮。

图 3.4:Tixati torrent 界面
- Kali Everything 文件下载将在 Tixati 中开始,并将保存到所选文件夹,文件名为 kali-linux-2022.3-installer-everything-amd64.iso。我们将在接下来的章节中使用这个 ISO 文件。
现在,您应该已经在您的系统中下载了至少两个版本的 Kali Linux,就像我在 Downloads 文件夹中的情况一样。

图 3.5:下载的 Kali 镜像文件在 Downloads 文件夹中
现在让我们看看如何使用 Rufus 3.2 在闪存驱动器或任何其他存储介质上创建这两个 Kali Linux 实例的可启动版本。
在便携式存储介质上安装 Kali Linux 进行实时 DFIR
如前所述,Kali Linux 可以安装在多种平台上,并且可以作为独立操作系统或虚拟机安装。我们将首先看看如何使用我们下载的 Kali Installer ISO 文件创建一个可启动的 Kali Linux 闪存驱动器。如果您没有下载 ISO 文件,您可以点击链接并按照前一节的说明进行下载。
这个 .iso 文件,或者有时被称为镜像文件,可以与 Rufus 3.20 一起使用,制作可启动的驱动器,以便将 Kali Linux 安装到 PC 或笔记本电脑上。它也可以在 VirtualBox 中安装并作为虚拟机使用,我们将在本章后面介绍如何使用 Kali Everything ISO 文件。让我们首先看看如何使用 Kali Linux 安装器 ISO 文件创建一个可启动的闪存驱动器,然后学习如何将 Kali 安装为独立操作系统。
创建一个可启动的闪存驱动器或 SD 卡来安装 Kali Linux 是非常有用的,因为它消除了携带个人笔记本电脑或台式电脑的需要,一旦插入并从桌面或笔记本电脑启动,Kali 就可以直接从便携式存储媒体设备本身运行。
对于本实验(我们会不时将实践称为实验),我将使用 Windows 10 笔记本电脑上的 Rufus 3.20 工具,利用我们下载的Kali Installer ISO创建可启动的闪存驱动器。如果你还没有下载 Rufus 3.20,请通过点击github.com/pbatard/rufus/releases/download/v3.20/rufus-3.20.exe进行下载。
Rufus 非常易于使用,界面简洁,这也是我选择它来创建可启动驱动器的原因之一。一旦下载了 Rufus,找到下载的文件并双击运行 Rufus。此时,你应该已经将希望用作 Kali Linux 可启动驱动器的闪存驱动器插入到电脑或笔记本电脑中。在这个例子中,我使用的是一个 32 GB 的闪存驱动器,并为其命名为 CFSI,以便轻松识别。
看一下以下截图,观察以下项目:
-
设备:这是你的目标设备。我选择了我的 32 GB 驱动器。
-
启动选择:我们将使用下载的 Kali 安装程序和 Kali Everything .iso 文件来创建我们的可启动驱动器。
-
分区方案:MBR(旧设备)或GPT(新设备)。我选择了MBR,因为我将创建一个可启动的 Kali 驱动器用于旧系统。如果你只打算在新型笔记本电脑或台式机上使用这个可启动驱动器,可能需要选择GPT。如果你有可用的驱动器,还可以创建两个可启动驱动器,一个使用 MBR 分区方案,另一个使用 GPT。
-
文件系统:许多闪存驱动器和 SD 卡默认格式化为 FAT32,且可以正常工作,因此我们将其保持为FAT32(默认)。

图 3.6:Rufus 界面
现在按照以下步骤在便携式存储设备上安装 Kali Linux 以进行实时 DFIR:
- 在前面的截图中,你会注意到右侧有一个提示框,内容为点击选择或下载图片。点击SELECT下拉菜单,浏览到你下载并保存 Kali 安装程序(kali-linux-2022.3-installer-amd64.iso)文件的路径。

图 3.7:在 Rufus 中选择 Kali ISO 镜像
- 我将kali-linux-2022.3-installer-amd64.iso文件保存在Downloads文件夹中的isos文件夹内。点击kali-linux-2022.3-installer-amd64.iso文件进行选择,然后点击打开按钮。

图 3.8:在 Rufus 中选择分区方案
如前面的截图所示,你现在应该可以在 启动选择 部分看到 kali-linux-2022.3-installer-amd64.iso。我还将 持久化分区大小 设置为 2 GB,这为需要下载文件或在 Kali 的可启动安装中安装工具时提供了存储空间。
-
此时,你可以在 分区方案 字段中再次选择 MBR 或 GPT 选项。我还将 卷标签 选项更改为 Kali Linux amd 64 1。之所以在卷标签末尾使用数字 1,是因为我使用了 MBR 分区方案的驱动器,另外还使用 GPT 分区方案创建了另一个可启动驱动器,标签为 Kali Linux amd 64 2。
-
一旦你配置好所有选项,并确认所有设置正确无误,点击 开始 按钮。
-
可能会提示你下载两个额外的文件,分别是 ldlinux.sys 和 ldlinux.bss。点击 是 按钮允许 Rufus 自动下载这些文件。你的计算机必须连接到互联网,Rufus 才能下载这些文件。

图 3.9:Syslinux 下载要求确认屏幕
- 然后,Rufus 会要求确认,并警告说可移动存储设备上的所有数据将被销毁。如果你确定已选择正确的驱动器,请点击 确定 按钮以继续。

图 3.10:操作确认屏幕
然后,Rufus 将开始格式化驱动器,以下截图显示了这一过程。

图 3.11:Rufus 格式化操作状态
格式化完成后,Rufus 将把 ISO 文件复制到驱动器中。

图 3.12:Rufus 文件复制状态
- 当过程完成时,状态栏将显示绿色,中间写着 准备就绪。此时,你可以点击 关闭 按钮,如下图所示。

图 3.13:可启动驱动器创建完成
- 现在,你可以取下可启动的 Kali Linux 驱动器,并将其插入到希望以 live OS 方式运行 Kali 或将其安装到硬盘上的计算机或笔记本电脑中。
以 live OS 方式运行 Kali 意味着它不会安装在硬盘上,而是使用设备的 随机存取内存(RAM)运行。通过这种方式,我们可以保留原始操作系统,同时使用 Kali 及其中的所有工具进行 数字取证与事件响应(DFIR),而不影响当前安装的操作系统。
- 为此,你需要将可启动的 Kali Linux 驱动器插入台式机或笔记本电脑,然后重启系统。你可能需要在重启时按 F12 键选择闪存驱动器作为启动操作系统。这告诉 基本输入输出系统(BIOS)从可移动存储介质启动,而不是从硬盘启动,从而使我们能够在内存中运行 Kali Linux 作为实时操作系统。
现在,我们已经学会了如何将 Kali Linux 安装到可启动的闪存驱动器上,接下来我们将学习如何通过可启动闪存驱动器将 Kali 安装为台式机或笔记本电脑上的独立操作系统。
作为独立操作系统安装 Kali
在本节中,我们将把 Kali Linux 安装到台式机或笔记本电脑上,作为独立的操作系统。为了完成这项操作,我们将使用刚刚通过 Rufus 3.2 创建的可启动 Kali 安装器闪存驱动器。如果你曾经通过闪存驱动器或任何可移动存储介质启动过台式机或笔记本电脑,你可能已经熟悉这个过程。对于那些不熟悉这个过程的用户,让我们一步一步地了解如何启动进入 Kali Linux。无论是安装 Kali 到物理机器还是虚拟机上,Kali Linux 的安装和配置是相同的(如果使用的是 Kali Linux 安装器版本,即我们所使用的版本)。因此,为了保持一致,我们将在接下来的章节中详细介绍安装过程:
-
一旦你的可启动 Kali Linux 安装器闪存驱动器创建完成,将驱动器插入你的台式机或笔记本电脑并启动设备。如果设备已经开机,请在插入闪存驱动器后重启设备。
-
当设备启动时,按下键盘上的 F12 键进入高级启动选项。这个键和设置在不同的设备上可能有所不同,如果 F12 无法带你进入启动菜单,你可能需要参考设备手册。
-
选择 USB 或可移动驱动器作为主要启动设备,然后按 Enter 键。
现在,你应该看到 Kali 启动菜单,就像我拍摄的这张显示器照片一样。

图 3.14:台式机上的 Kali 启动屏幕图片
到了这个阶段,你可以参考接下来的 在 VirtualBox 中安装 Kali Linux 部分,继续安装和配置过程。让我们在独立安装部分暂停一下,学习如何在 VirtualBox 中作为虚拟机安装 Kali Linux。一旦我们在 VirtualBox 中安装了 Kali,接下来的安装和配置过程就可以同时适用于独立系统和虚拟系统。
在 VirtualBox 中安装 Kali
Kali Linux 的创建者(Offensive Security)非常友好地简化了我们的生活,通过创建了一个预配置版本的 Kali,适用于 VirtualBox 和 VMware,需要最少的配置。这些预配置的映像甚至包括安装程序映像,包括 Kali Everything,都可以安装在虚拟平台上,并且在运行时与物理机器无异。将 Kali Linux 用作 VM 的优势在于,您无需购买任何新的或额外的硬件。您还可以非常轻松地删除和重新安装 VM,并且甚至可以在您配置完全符合期望的操作系统之后创建操作系统的快照,随时可以引导进入,如果您损坏了 Kali 机器并且需要恢复到保存的状态。
对于那些将 Kali 作为独立操作系统安装的人,您可以在在安装 Kali 作为独立操作系统*部分中从可启动的 Kali 闪存驱动器启动后继续安装,因为安装 Kali Linux 安装程序的步骤在物理机和 VM 上完全相同。
在我们开始之前,请确保您已经下载了最新的稳定版本的 VirtualBox 和 VirtualBox 增强功能。如果没有,请访问www.virtualbox.org/wiki/Downloads。请下载并安装适当的 VirtualBox 平台包和 VirtualBox Oracle Extension Pack。我正在使用 Windows 10 主机,因此我将通过单击Windows hosts下载和安装适用于 Windows 的 VirtualBox 平台。

图 3.15:VirtualBox 网站下载页面
准备 Kali Linux VM
一旦下载了 VirtualBox,就可以安装它,然后配置以运行 Kali Linux 和许多其他操作系统,具体取决于可用的 RAM 量:
-
在设置新的客户操作系统或客户 VM 时,我们首先单击New,然后填写以下详细信息:
- 名称:Kali Linux 2022.3 Everything(或您选择的名称)
注意
对于此安装,我正在使用大型的 Kali Linux Everything ISO 版本,因为它安装了每个工具。您还可以使用 Kali Installer ISO,因为这两个版本的安装方法完全相同。
-
机器文件夹:VM 的默认位置
-
类型:Linux
-
版本:Debian(64 位)

图 3.16:VirtualBox 名称和操作系统详细信息
- 然后点击下一步,进入内存大小滑块提示分配内存。在我的屏幕上,你会注意到我为虚拟机选择了 10 GB 的内存。我选择这个值是因为我总共有 32 GB 的内存。需要注意的是,在为虚拟机选择内存大小时,不能超过总内存的一半,也不能选择滑块窗口中显示为粉红色的值,因为这样可能导致宿主机和虚拟机不稳定或崩溃。我建议至少选择 4 GB 的内存,以确保在使用取证工具时流畅运行。

图 3.17:VirtualBox 内存分配
- 接下来,我们通过添加虚拟硬盘来创建虚拟机。我建议选择创建新的虚拟硬盘,这是选项中的第二个。点击创建继续:

图 3.18:VirtualBox 硬盘创建
- 然后选择VDI(VirtualBox 磁盘镜像)作为硬盘文件类型,并点击下一步:

图 3.19:VirtualBox 硬盘文件类型选择
- 一旦选择了 VDI,选择动态分配选项,以便在需要时扩展虚拟硬盘:

图 3.20:VirtualBox 存储分配
-
在下一步中,我们选择虚拟硬盘的文件位置和大小。建议的 Kali Linux VDI 大小为 8 GB,但我为其分配了足够的32.00 GB。我还选择了 VDI 的位置为C:\Users\Administrator\VirtualBox VMs\Kali 2022.3 Everything\Kali 2022.3 Everything。
-
选择位置后,点击创建完成虚拟硬盘的创建。

图 3.21:VirtualBox 存储分配大小
现在,我们已经在 VirtualBox 中设置好了 Kali Linux ISO 镜像,可以开始安装过程,具体步骤将在下一节中进行。
在虚拟机上安装 Kali Linux
一旦按照前一节的步骤准备好并完成虚拟硬盘的创建,我们就可以开始 Kali Linux 的安装过程。在Oracle VM VirtualBox 管理器窗口中,这是 VirtualBox 的主要操作系统管理窗口,我们可以看到虚拟机已准备就绪,现在可以安装 Kali Linux:
- 在屏幕右侧,你可以看到分配的资源,如名称和操作系统类型,在常规部分,以及在系统部分分配的内存量。其他设置,如视频内存(VRAM)、网络和显示设置,也可以在这一部分中进行访问。

图 3.22:VirtualBox 管理器
- 要开始 Kali Linux 的安装,点击左侧的Kali 2022.3 Everything条目,然后点击右上角选择启动磁盘部分中的绿色开始箭头,如下图所示。

图 3.23:启动磁盘选择
- 在下一步中,找到我们从 Offensive Security 网站下载的 Kali Linux Everything ISO 镜像。点击浏览文件夹图标,进入光盘选择器,然后点击框左上角的添加图标。

图 3.24:光盘选择字段
- 找到你之前下载的Kali-linux-2022.3-installer-everything-amd64.iso文件,点击它,然后点击打开按钮,以便在光盘选择器中看到该 ISO 作为条目列出。

图 3.25:选择 Kali ISO
- 点击选择按钮继续,然后在选择启动磁盘框中点击启动按钮,选择Kali-linux-2022.3-installer-everything-amd64.iso文件,如下图所示。

图 3.26:选择 Kali ISO 作为启动镜像
现在你应该看到 Kali Linux 安装程序界面和菜单选项,这些选项在上一节中也有出现:将 Kali Linux 安装为 独立操作系统。

图 3.27:VirtualBox 中的 Kali 启动菜单
重要提示
对于那些将 Kali Linux 安装为独立操作系统的用户,你也可以按照安装和配置 Kali Linux部分的步骤进行操作,因为这些步骤对于物理安装和虚拟安装完全相同。
我们已经完成了 Kali Linux 的配置,并准备好在独立和虚拟安装环境中进行安装。在下一节中,我们将学习如何安装和配置 Kali。
安装和配置 Kali Linux 作为虚拟机或独立操作系统
现在我们已经进入 Kali Linux 安装界面,可以按照以下步骤进行操作,无论是安装和配置 Kali 为虚拟机还是独立操作系统,步骤都是相同的:
- 要开始安装,选择图形安装选项并按下Enter键。无论是将 Kali Linux 安装为独立系统还是虚拟机,你都会看到与下图相同的选项。

图 3.28:Kali 启动菜单中的图形安装选项
- 接下来,选择你的语言并点击继续。

图 3.29:Kali 语言选择菜单
- 选择您的国家或地区,点击继续。

图 3.30: 国家选择菜单
- 选择您的键盘配置,然后点击继续。

图 3.31: 语言选择菜单
- 为您的系统设置主机名,或者保留默认名称kali。

图 3.32: 为 Kali 系统分配主机名
- 如果机器将加入一个域,您可以在此输入域名,若不加入域,则可以留空,点击继续。

图 3.33: 配置网络
- 接下来,我们将创建一个非 root 用户账户,该账户没有 root 或管理员权限。请确保使用小写字母作为用户名。

图 3.34: 创建用户名
- 接下来,创建一个安全且复杂的密码,然后点击继续。

图 3.35: 创建密码
- 选择您的时区,然后点击继续。

图 3.36: 时区配置
- 现在我们的个性化设置已经配置好,接下来让我们为安装准备硬盘。为了简化安装,我建议将整个硬盘用于 Kali,无论是虚拟硬盘还是物理硬盘。为此,选择引导 – 使用整个磁盘选项,点击继续。

图 3.37: 磁盘分区选项
- 选择安装的磁盘,在我的例子中是一个 34.4 GB 的虚拟硬盘,点击继续。

图 3.38: 磁盘分区选择
- 为了简化操作,我建议将所有文件保存在一个分区中。选择所有文件都在一个分区(推荐给新用户)选项,并点击继续。

图 3.39: 文件分区
- 审核您的磁盘分区设置,并选择完成分区并将更改写入磁盘选项,点击继续。

图 3.40: 将更改写入磁盘
- 若要确认分区和格式化设置并开始将更改写入磁盘,选择是按钮,点击继续。

图 3.41: 完成分区过程
分区和格式化将开始,安装过程将继续,接下来将提取所需的安装包。

图 3.42:基础系统安装过程
- 现在我们可以选择各种软件包和软件库自动添加到 Kali 中。我选择了在我的安装中包含所有工具和支持软件包,除了GNOME和KDE Plasma选项,因为我更喜欢带有所有可能工具的典型 Kali Linux 界面。

图 3.43:附加软件选择
- 一旦选择了所需的软件,点击继续继续安装。此过程将花费一些时间。与此同时,您可以浏览其他精彩的数字取证书籍,访问
subscription.packtpub.com/search?category=Security&concept=Forensics&_ga=2.265355399.920003428.1665758595-170131085.1665758595。

图 3.44:软件安装状态
- 接下来,您可以选择显示管理器,或者如果不熟悉设置,可以保留默认的gdm3选项。

图 3.45:图形显示管理器选择
安装将按照状态栏显示的方式继续进行。

图 3.46:软件安装进度条
- 只剩下几步,我们就完成了。接下来我们将安装 GRUB 启动加载器,它将允许 Kali 作为主操作系统从主硬盘启动。选择是并点击继续。

图 3.47:GRUB 启动加载器选择
- 对于我们的最终配置,我们需要通过在磁盘上安装启动加载器来使系统能够启动。选择安装了 Kali 的磁盘(如果默认未选择,请手动选择),然后点击继续。

图 3.48:GRUB 启动加载器安装
- 我们的安装即将完成。

图 3.49:Kali 安装过程状态
- 当系统提示时,点击继续以完成安装并重启系统。

图 3.50:Kali 安装完成屏幕
- 输入您的用户名和密码。

图 3.51:Kali Linux 登录屏幕
现在,我们已经完成了在独立设备和虚拟机上安装和配置 Kali Linux 的过程。还有其他安装 Kali Linux 的方法,我们将在下一章中学习。我还想展示一种更简单的方法,在 VirtualBox 中安装预配置版本的 Kali Linux。
总结
本章我们确实学到了不少内容。如果需要,随时可以擦除或删除你的安装,并重新尝试,以便更熟悉不同版本的安装过程。
在本章中,我们了解了 Kali Linux 的不同版本以及它们可以安装的各种平台,并探讨了下载不同版本 Kali Linux 的不同方法。然后,我们进入了技术层面,首先学习了如何使用 Rufus 和 Kali Linux 的 ISO 镜像创建可启动的 Kali Linux 闪存驱动器,而该 ISO 镜像是我们在本章开始时下载的。接着,我们学习了如何在物理设备上安装 Kali Linux 作为独立操作系统,并学习了如何在 VirtualBox 中作为虚拟机安装 Kali。
在我们的下一章中,我们将探索另一种安装 Kali 作为虚拟机的方法,并学习如何在 Raspberry Pi 4 上安装 Kali,接着进行一些安装后的任务。下章见。
第四章:其他 Kali 安装和后安装任务
在上一章中,我们学习了如何将 Kali Linux 安装为独立操作系统,并且如何在 VirtualBox 中安装 Kali。 本章将继续介绍另外两种 Kali Linux 安装方法,这些方法可以被认为是更简单和更快速的安装,但我会让你来判断。 然后我们将执行一些常见的后安装任务,以确保我们拥有一个完全更新且功能正常的 Kali Linux 版本,用于我们的数字取证与事件响应(DFIR)调查,无论选择哪种平台进行安装。
本章我们将涵盖的主题如下:
-
在 VirtualBox 中安装预配置版本的 Kali Linux
-
在 Raspberry Pi 4 上安装 Kali Linux
-
更新 Kali Linux
-
启用 root 用户账户
-
将 Kali Linux 取证库添加到安装中
在 VirtualBox 中安装预配置版本的 Kali Linux
通过使用专为 VirtualBox 构建的预配置 Kali 版本,Kali 也可以通过更简单的方法安装在 VirtualBox 中:
-
如果你还没有在第三章《安装 Kali Linux》中下载 Kali VirtualBox 镜像,你可以在
kali.download/virtual-images/kali-2022.3/kali-linux-2022.3-vmware-amd64.7z下载。 -
你必须使用 7Zip 解压镜像,7Zip 可从 Windows 下载,网址为
www.7-zip.org/a/7z2201-x64.exe。
一旦解压,你应该能看到以下截图所示的相同文件。

图 4.1 – 显示预配置的 Kali 镜像的下载文件夹
- 双击 .vbox 文件(大小为 3 KB),它应该会立即在 VirtualBox 中打开。

图 4.2 – VirtualBox 管理器
- 点击 VirtualBox Manager 窗口顶部的 设置 图标。

图 4.3 – Kali 虚拟机的预配置设置
- 点击 系统,使用滑块来分配 基础内存 大小。 完成后,点击 确定。

图 4.4 – 在 VirtualBox 中分配内存
- 要启动虚拟机,请点击 Virtual Manager 窗口顶部的绿色启动按钮。

图 4.5 – VirtualBox 启动按钮
-
使用以下凭证登录(所有字母均为小写):
-
用户名:kali
-
密码:kali
-
我们已经介绍了三种安装 Kali Linux 的方法。我相信你会发现这一种比其他的要简单得多。接下来,我们将讨论在便携式 Raspberry Pi 4 上的另一种安装方式。
在 Raspberry Pi4 上安装 Kali Linux
Raspberry Pi 4,也称为 Pi 4,是一款低功耗、小巧、便携且强大的设备,可用于个人、企业甚至操作技术(OT)用途,正如本章前面提到的那样。在 Pi 4 上运行 Kali 非常有用,因为它非常强大,配备了 USB 3.0 端口、RJ-45 网络端口、双 mini-HDMI 端口、Wi-Fi、蓝牙以及最多 8 GB 的内存,并且可以通过可启动的 microSD 卡在几步之内启动 Kali。你可以在 www.raspberrypi.com/products/raspberry-pi-4-model-b/ 上了解更多关于 Pi 4 的信息。
按照以下步骤将 Kali 安装到 Pi 4(甚至是较旧的 Pi 2、3 和 400)上:
-
要在 Pi 4(甚至是较旧的 Pi 2、3 和 400)上安装 Kali,我们需要 Pi Imager 软件。可以从
www.raspberrypi.com/software/下载该软件,支持 Windows、Mac 和 Ubuntu(x86)设备。Pi Imager 将允许我们在 microSD 卡上安装 Kali Linux ARM 版本,从而在我们的 Pi 4 上运行。我还建议使用 32 GB 或更大容量的 microSD 卡,以确保你有足够的空间进行升级和下载 Kali 中的附加工具。 -
下载完成 Pi Imager 后,将 microSD 卡插入你的笔记本电脑或台式机,无论是直接插入还是通过读卡器插入,然后启动 Pi Imager。

图 4.6 – Raspberry Pi Imager 界面
- 点击选择存储设备,然后选择你的 microSD 卡。

图 4.7 – Pi Imager 存储选择
- 接下来,点击选择操作系统按钮,然后选择其他特定用途 操作系统选项。

图 4.7 – 操作系统选择
- 现在你应该能看到Kali Linux选项,如下图所示。

图 4.8 – 选择 Kali Linux 选项
- 现在,你将看到不同 Raspberry Pi 设备上可用的 Kali 版本。你可以根据你手头的设备选择对应的版本。

图 4.9 – 可用的 Kali Linux 版本
- 选择完成后,你将返回主界面。点击写入选项将 Kali 安装到 microSD 卡上。

图 4.10 – 最终的 Pi Imager 配置
- 然后会提示你继续。点击是以继续。

图 4.11 – 数据擦除确认
写入过程现在开始。

图 4.12 – 将 Kali 写入 SD 卡
- 一旦过程完成,将 microSD 卡从计算机或读卡器中取出,并小心地插入到您的 Raspberry Pi 设备中,设备应处于关闭状态,以避免卡片损坏。然后开启 Pi,Kali 将启动。再次提醒,默认的用户名和密码均为 kali(小写)。
这部分结束了在各种平台上安装 Kali Linux 的不同方式。在我们使用 Kali 之前,我们应该始终更新我们的工具,接下来的章节中我将演示如何操作。
更新 Kali
现在我们已经了解了在各种平台上安装 Kali Linux 的多种方式,接下来让我们来看看 Kali Linux 系统启动后的一些重要后安装任务:
-
要查看我们 Kali 系统的版本安装详情,让我们运行以下命令:
cat /etc/os-release
在以下截图中,我们可以看到命令的输出展示了名称、版本、代号以及更多的详细信息,供验证使用。

图 4.13 – cat 命令输出
- 我们还应该在安装后始终更新我们的 Kali 系统,以确保拥有当前版本的工具和支持软件。
要更新 Kali Linux,请输入并运行以下命令:
sudo apt update
在以下截图中,已经安装了一些更新,最后一行显示有 674 个软件包可以升级:

图 4.14 – 更新 Kali Linux
-
输入并运行以下命令查看可升级的软件包列表:
apt list –upgradable
在以下截图中,我们可以看到命令正在执行。升级所有组件可能需要一些时间。

图 4.15 – apt list --upgradable 命令输出
-
输入并运行以下命令,允许 Kali 升级所有之前的软件和包,而不需要确认:
sudo apt upgrade –y
以下截图展示了命令的执行与输出。

图 4.16 – 升级 Kali Linux
请注意,这个升级过程可能需要一些时间才能完成。
-
现在,我们可以通过输入以下命令重启 Kali,完成整个过程:
sudo reboot
以下截图展示了命令的执行与输出。

图 4.17 – 重启 Kali Linux
在更新和升级了 Kali Linux 安装后,我们现在可以继续进行其他任务。接下来,我们将学习如何启用 root 用户账户。
启用 Kali 中的 root 用户账户
现在,所有的更新和升级都已完成,让我们来看一下如何在 Kali Linux 中启用 root 用户账户。你可能已经注意到,某些版本的 Kali 在安装时允许使用 Kali 默认的用户名和密码进行访问。这是作为一种安全功能,以防止意外更改配置或工具。如果我们希望使用 root 或管理员权限来执行命令或进行其他任务,必须在相应命令前输入 sudo。
Sudo 是 superuser do 的缩写,它允许我们以超级用户的身份运行命令和工具,超级用户拥有最高权限,通常被称为 root 权限。有时候,在命令前输入它可能有些麻烦,但过一段时间之后这会变成习惯。
然而,如果你是 Kali 或基于 Linux 的操作系统新手,我建议你使用默认配置并在必要时输入 sudo,但最终选择权在于你。
启用 root 账户非常简单,几步就能完成:
- 首先,如果 Kali 系统没有启动,请启动你的 Kali 机器,并使用你创建的用户名和密码登录,或者使用提供的默认凭证——用户名:kali,密码:kali。

图 4.18 – Kali Linux 登录界面
- 点击顶部的终端图标以打开一个新的终端。

图 4.19 – Kali Linux 桌面,终端快捷方式被圈出
- 在新的终端中,注意提示符显示为(kali@kali)。输入以下命令以访问超级用户账户并按 Enter。随后,你还需要输入密码——sudo su。
以下截图展示了命令的执行和输出。

图 4.20 – sudo su 输出
注意
在 Kali Linux 中,输入密码时不会在屏幕上显示。
在前面的截图中,注意到提示符已经更改为 (root@Kali)。现在我们通过输入以下命令来更改 root 账户的密码。
- 然后系统会提示你输入并重新输入新密码——passwd root。
以下截图展示了命令的执行和输出。

图 4.21 – 为 root 账户创建密码
- 成功!我们现在可以注销当前用户并重新登录,或者通过点击屏幕右上角的电源按钮图标,然后选择 注销 或 切换用户 来直接切换到 root 用户,如下图所示。

图 4.22 – Kali Linux 的电源和用户选项
使用用户名root和你刚刚为账户创建的密码进行登录。

图 4.23 – Kali Linux 登录屏幕
- 再次点击终端账户,你会注意到提示符现在是(root@kali),如图所示。

图 4.24 – 显示 root 用户账户的终端
现在我们已经在 Kali 上启用了 root 用户账户,本章的最后一项任务是通过使用取证元包添加额外的取证工具。
添加 Kali Linux 取证元包
Kali 元包是可以作为完整包下载的工具集合。根据你安装的 Kali 版本,可能没有包含你预期的或在工具列表页面上看到的所有工具,页面地址为www.kali.org/tools/all-tools/,该页面列出了 Kali Linux 中所有可用的工具。例如,对于我们的 DFIR 目的,你可以在www.kali.org/tools/kali-meta/#kali-tools-forensics查看所有取证工具的列表,你可以点击Dependencies部分中的下拉箭头来查看所有工具的列表。
所有前面提到的工具都包含在kali-tools-forensics元包中,可以通过输入以下命令进行安装:
sudo apt install kali-tools-forensics
以下截图展示了该命令的执行过程和输出结果。

图 4.25 – 安装取证元包
注意
在安装任何元包之前,你应该像之前一样,使用sudo apt update命令更新你的 Kali Linux。
这将安装 Kali Linux 中所有列出的取证工具,如前面的截图所示。你可以通过在 Kali 主菜单中点击Applications | 11-Forensics来查看一些取证工具。
总结
在本章中,我们学到了通过使用为 VirtualBox 专门设计的预配置 Kali 版本,可以以更简单和更快捷的方式安装 Kali Linux。只需几个点击和调整,我们就完成了安装。我们还学会了如何在 Raspberry Pi 设备上安装 Kali,这在需要便携性时非常有用,只需使用 Pi Imager 工具将 Kali 安装到 microSD 卡上即可。
接着,我们查看了一些非常重要的安装后任务,这些任务应该在任何安装后执行。我们学会了如何查找 Kali Linux 的版本,然后更新甚至升级 Kali 中的所有软件和包。最后,在本章中,我们学习了如何启用 root 账户,以避免在执行需要超级用户权限的操作时使用sudo命令。我们还学会了如何通过添加kali-tools-forensics元包来安装所有取证工具。
现在我们已经安装了不同版本的 Kali 并更新了系统,接下来我们将介绍一个非常有用的工具,叫做 Wine,它允许我们在 Kali Linux 系统上运行 Windows 工具。如果你问我,这可真是很酷的东西。下章见!
第五章:在 Kali Linux 中安装 Wine
在本章中,我们将学习如何通过在 Kali 中使用 Wine 安装 Windows 工具来扩展 Kali Linux 环境的功能。
本章我们将讨论以下主题:
-
Wine 是什么以及在 Kali Linux 中使用它的优势
-
安装 Wine
-
测试我们的 Wine 安装
让我们开始了解 Wine 及其优势。
Wine 是什么以及在 Kali Linux 中使用它的优势
Wine通常被误称为Windows 模拟器,但正如官方网站所述,Wine 最初被称为Wine Is Not an Emulator,因此得名缩写 Wine。Wine 允许非 Windows 用户在符合便携式操作系统接口(POSIX)的系统上运行某些 Windows 应用程序,包括 macOS 以及 Linux 和 BSD 的各个版本,包括 Kali Linux。
对于我们的数字取证与事件响应(DFIR)工作,这非常有用,因为我们现在可以在 Kali Linux 系统上使用许多专为 Windows 制作的行业标准工具,无论是将其作为独立操作系统使用还是作为虚拟机使用。这也解决了需要购买 Windows 许可证的问题,因为我们不必使用运行 Windows 的设备。当考虑到在 Kali Linux 上运行所有 DFIR 工具时,您现在可以使用更少的硬件,这些节省的成本也得到了延伸。
通过在 Kali Linux 安装 Wine,我们不仅可以从 DFIR 的角度获得优势,还可以从紫队(Purple Teaming)的角度获得优势,因为我们还可以在 Kali 机器上安装许多用于 Windows 的红队工具。从个人经验来看,我总是为 DFIR 练习和调查使用两台笔记本电脑,一台运行基于 Linux 的操作系统,如 Kali Linux、CSI Linux 和 Ubuntu,另一台运行 Windows 10。我几乎每次进行 DFIR 练习和调查时使用的一些非常重要的 Windows 应用程序是 Belkasoft RAM Capturer、FTK Imager 和 Autopsy 4 GUI(图形用户界面)。这些工具在社区中得到了广泛应用,因为它们功能强大且相对易于使用。通过在我的 Kali Linux 及其他基于 Linux 的系统上安装 Wine,我现在可以使用一台机器完成所有任务,这节省了时间、精力和成本。
在本章接下来的部分中,我们将通过终端手动安装 Wine,然后安装 Google Chrome 浏览器进行测试,以确保我们的 Wine 安装成功。在后续章节中,我们还将在 Kali Linux 中使用 Wine 安装 Belkasoft RAM Capturer、FTK Imager 和 Autopsy 4,用于 DFIR 工作。更多关于 Wine 的信息可以在官方网站找到:www.winehq.org/。
安装 Wine
安装 Wine 需要我们按精确的顺序运行几个命令。虽然我确信许多使用的命令对你们中的许多人来说是新的,但我已经在以下步骤中列出了确切的操作:
- 在继续操作之前,请确保你已连接到互联网。
首先,我们通过打开一个新的终端并输入以下命令,然后按下 Enter 键来下载 Wine:
sudo dpkg --add-architecture i386
在以下截图中,我们添加了 32 位架构:

图 5.1: 运行 sudo dpkg –add-architecture i386 命令
-
接下来,我们需要通过输入以下命令来下载 wine 密钥:
wget nc https://dl.winehq.org/wine-builds/winehq.key
以下截图展示了前述命令的输出:

图 5.2: 在终端中安装 Wine
-
一旦密钥下载完成,我们可以通过输入以下命令将其添加到 /usr/share/keyrings/winehq-archive.key:
sudo mv winehq.key /usr/share/keyrings/winehq-archive.key
以下截图展示了前述命令的输出:

图 5.3: 添加密钥环
-
接下来,我们通过输入以下命令下载 Wine 源文件:
wget –nc https://dl.winehq.org/wine-builds/debian/dists/bullseye/winehq-bullseye.sources
以下截图展示了前述命令的输出:

图 5.4: 下载所需的 Wine 源文件
-
一旦我们的 源文件 成功下载并保存,我们可以通过输入以下命令将其添加到源列表中:
sudo mv winehq-bullseye.sources /etc/apt/sources.list.d/
以下截图展示了前述命令的输出:

图 5.5: 将源文件添加到源列表
-
我们现在通过输入以下命令来添加 Debian 仓库,以确保安装顺利进行:
echo "deb http://ftp.us.debian.org/debian bullseye main " | sudo tee -a /etc/apt/sources.list
以下截图展示了前述命令的输出:

图 5.6: 添加 Debian 仓库
- 一旦你的终端显示如下截图,你可以通过输入 sudo apt update 命令来检查是否有任何新的更新。正如以下截图所示,我的安装有许多更新:

图 5.7: 更新 Kali
-
一旦所有更新完成,我们可以使用以下命令下载最新的稳定版本的 Wine:
sudo apt install --install-recommends winehq-stable
以下截图展示了前述命令的输出:

图 5.8: 安装最新的稳定版本 Wine
注意
当提示时,你将被要求输入密码并按 Y 键确认继续安装。由于文件较大,安装可能需要几分钟时间。
-
一切顺利,所有必要的文件和软件包下载并安装完成后,我们可以通过运行以下命令来验证已安装的 Wine 版本:
wine --version
以下截图显示了前述命令的输出:

图 5.9:验证已安装 Wine 的版本
配置我们的 Wine 安装
在继续进行 Wine 图形化安装和配置之前,我们在终端中的最后一步是运行 winecfg 命令:

图 5.10:运行 winecfg 命令启动 Wine
一切设置完毕后,Wine Mono 安装程序 窗口会弹出,询问我们是否安装 Microsoft .NET Framework,这是 Windows 应用程序正常运行所需的,然后按照以下步骤进行配置并完成安装:
- 点击 安装 按钮。

图 5.11:安装 Wine Mono
- 然后,Wine Mono 将开始下载并安装。

图 5.12:Wine Mono 安装状态条
- 在 Wine 配置 框中,你还可以选择希望在 Kali Linux 系统上模拟的 Microsoft Windows 版本。

图 5.13:配置 Wine
- 在此实例中,我们可以看到默认选择了 Windows 7。要将此设置更改为其他 Windows 版本,请点击 Windows 版本右侧的下拉箭头,并选择你想要的操作系统,如下所示:

图 5.14:选择 Windows 操作系统
我选择了 Windows 10 作为我的操作系统,因为我们将要安装的所有 Windows DFIR 应用程序都运行在 Windows 10 上。

图 5.15:选择 Windows 10
- 点击 应用 以继续,然后在 关于 标签中输入 所有者 和 组织 的详细信息,如下所示,然后点击 应用 和 确定 完成 Wine 配置。

图 5.16:Wine 配置完成
现在我们已经完成了安装 Wine 的所有步骤,接下来我们需要安装一个 Windows 程序作为测试,我们将在下一节中进行此操作。
测试我们的 Wine 安装
做得好,成功到达这里。为了测试我们的安装,让我们尝试在 Kali Linux 系统中使用 Wine 安装一个文件恢复工具,名为 Recuva。Recuva 是一款非常受欢迎的工具,提供免费和付费版本。让我们开始下载和安装:
-
你可以在
www.ccleaner.com/recuva/download下载免费版本,它仅允许用户执行高级文件恢复。在本文写作时,该文件也可以直接从www.ccleaner.com/recuva/download/standard下载。 -
无论你选择哪种下载方式,请确保点击 FREE RECUVA 选项。
文件名将显示为 rcsetup153.exe,这表明它是一个 Windows 可执行文件,具体如以下截图所示:

图 5.17: Recuva 安装文件下载
- 点击文件下载右侧的文件夹图标,或导航至 Downloads 文件夹,我们应该能找到下载的 Recuva 文件(rcsetup153.3xe)。

图 5.18: Recuva 安装文件在下载文件夹中的位置
-
从这里安装 Recuva 非常简单。双击 rcsetup153.exe 文件,它会打开安装程序,就像在 Windows 机器上一样,具体如下图所示。
-
或者,你也可以右键点击该文件并选择 Open With Wine Windows Program Loader。

图 5.19: Recuva 安装界面
- 点击 Install 按钮继续并在 Kali Linux 中安装 Recuva。

图 5.20: Recuva 安装完成界面
- 安装完成后,你可以取消选中 View release notes 框,然后点击 Run Recuva 按钮启动 Recuva。
安装完成后,你应该会在 Kali Linux 桌面上看到 Recuva 图标,类似于以下截图所示。

图 5.21: Recuva 桌面快捷方式
-
点击 Next 按钮关闭安装屏幕。请注意,以下截图中屏幕的左上角有一个酒杯图标,表示 Recuva 正在通过 Wine 安装。
-
虽然我们将在后续章节中查看如何使用 Recuva,但你可以先运行 Recuva 作为最终测试,以确保程序和 Wine 都已成功安装。
-
当你看到以下截图时,意味着 Wine 和 Recuva 都已成功安装:

图 5.22: Recuva 扫描配置界面
此时,你可以点击 Cancel 按钮取消运行 Recuva,因为我们将在 第九章 中配置并运行 Recuva,文件恢复与数据雕刻工具,届时我们将讨论 文件恢复 和 数据雕刻 工具。
现在我们可以将我们的 Wine 安装和配置视为成功,因为我们能够在 Kali Linux 中安装并运行为 Windows 构建的 Recuva 工具。
总结
在这一章中,我们了解了 Wine 以及使用该软件进行 DFIR 目的的一些巨大优势。我们还学习了如何通过 Kali Linux 中的终端安装最新的稳定版 Wine,这使我们能够在 Kali Linux 系统中运行 Windows 应用程序,以及 Windows 运行程序和应用所需的 Microsoft .NET Framework。我们还探讨了如何在 Wine 模拟的 Windows 操作系统之间进行选择,因为某些程序可能只在新版 Windows 上运行。最后,我们通过下载专为 Windows 构建的 Recuva 文件恢复工具并在 Kali 系统上安装 Recuva,测试了我们的 Wine 安装。
在我们继续探索 Recuva 的激动人心之旅之前,我们将首先了解一些有关文件系统的基本知识,这将涵盖文件恢复所需的基础和背景知识。下章见!
第二部分:数字取证与事件响应基础与最佳实践
在本节中,你将了解数字取证与事件响应(DFIR)的过程和进行调查的最佳实践,包括易失性顺序、保管链、证据获取以及其他事件处理程序,以便能够按照国际最佳实践进行独立调查。
本部分包含以下章节:
-
第六章,理解文件系统和存储
-
第七章,事件响应、数据获取和 DFIR 框架
第六章:理解文件系统和存储
要成为数字取证调查员,不仅仅需要技术知识。在案件本身,还需要大量的研究、流程和分析。想象一种情景,你需要建造一座房子。当然,我们需要木材、钉子、水泥、金属、玻璃以及所有其他原材料,但我们还需要熟练的工人和承包商来建造并将其组装起来。除了材料、工具和资源外,我们还必须进行研究,以确保我们理解对于这个项目成功所需的一切。
例如,我们必须获得建筑许可证、进行土壤分析、考虑天气,然后根据天气、位置、土壤类型等选择特定类型的材料。毫无疑问,必须对领域中的基本概念有所了解,以有效地执行任务。同样,我们需要了解文件系统、操作系统(OSs)、数据类型、位置,以及保存数据、存储介质和一般证据的方法和程序的彻底理解。
在本章中,我们将学习以下主题:
-
存储媒体的历史
-
文件系统和操作系统
-
数据类型和状态
-
描述易失性和非易失性数据以及其顺序
-
RAM、分页文件和 DFIR 中缓存的重要性
存储媒体的历史和类型
任何调查的目标都是证明某件事之前是否存在、当前是否存在或已发生。在笔记本电脑、台式机、移动设备和智能设备中,数据必须存储在某个地方,即使只是暂时性的。大多数人可能熟悉笔记本电脑、台式机、移动设备等中的硬盘驱动器(HDDs),但我们还需要关注无论年龄多大都可能在使用的可移动和便携式存储设备。这些包括 DVD、便携式驱动器、拇指或闪存驱动器、安全数字(SD)和 MicroSD 卡,以及诸如 CD 和软盘等旧媒体以及许多其他媒体类型。
我们还应考虑许多便携式存储设备(如闪存驱动器),作为新颖物品,它们具有许多有趣的形状和尺寸,可能不像普通的矩形驱动器那样普通。另一个需要考虑的问题是,随着技术的发展,许多这些存储介质设备的尺寸已经发生了变化,可能更小了。
IBM 和存储媒体的历史
提及硬盘驱动器和存储介质的历史时,不得不提及三个字母:IBM。我们都熟悉这个著名的科技巨头,但我们可能不熟悉它的一些伟大成就。
国际商业机器公司(IBM)已经存在了相当长的时间。早在 20 世纪初,IBM 还以计算-制表-记录(CTR)公司的名字为人们熟知,IBM 更为人们熟知的是其创造了第一台硬盘、第一台个人计算机,以及它的服务器、台式机和笔记本电脑。
在 1956 到 1957 年间,IBM 通过开发和发布 305 随机访问会计与控制方法(RAMAC)取得了重大进展,RAMAC 采用了第一代磁盘存储技术。这项革命性的技术的重量大约为一吨,尺寸约为 16 平方英尺。然而,这个庞然大物的磁盘存储容量仅为 5 MB(是的,我说的是兆字节)。
尽管按照今天的标准,5 MB 大约是用移动设备拍摄的高清照片的大小,但考虑到所有因素,这对于当时来说无疑是一个划时代的成就。在 IBM 的发明之前,数据是存储在打孔卡上,可能需要数百万张卡片才能存储几兆字节的数据。
当时引入这种数字存储技术面临的一个主要问题是设备的体积。运输这些设备时,飞机和卡车可能都无法使用,存储空间也会成为问题。
随着技术的进步,IBM 在 1975 年发布了一款更便携的计算机——IBM 5100 便携式计算机。到了 1980 年代,特别是 1981 年,我们见证了 IBM 个人计算机的诞生。它比前代产品轻巧得多,而且价格也更加实惠,介于 8,000 到 20,000 美元之间。
直到 1981 年 IBM 发布了第一台个人计算机,计算机的便携性才成为现实。这台个人计算机的售价为 1,565 美元,配有键盘和鼠标,还可以选择显示器、打印机和软盘驱动器。除了软盘驱动器之外,这几乎就是今天个人计算机的标准配置。
随着这种新型、更加便捷的技术的问世,数据存储介质也随着时间推移不断改进,从磁带存储到软盘、光盘、DVD、蓝光光盘,以及当然的机械硬盘和固态硬盘(SSD)。
可移动存储介质
继续我们的存储介质话题,我首先想讨论一下可移动存储介质,因为它在今天的世界中与固定存储介质一样,扮演了同样重要的角色。
磁带驱动器
磁带是 IBM 在 1950 年代推出的一种非常快速且便捷的存储数据的方式,数据的存取速度与其处理速度相当。IBM 726 磁带读取机和录音机是第一批提供这种存储方式的设备之一,其磁带密度为每英寸 100 位。磁带的一英寸长度可以帮助你了解磁带的尺寸,它缠绕在一个大轮盘上,类似于老式的电影胶片。
使用磁带媒介时,数据是沿着磁涂层塑料带的宽度写入的,帧之间有间隙,间隙由区块组成。磁带仍然在今天广泛使用,像许多其他存储媒介类型一样,磁带的尺寸大幅减小,而容量和速度却大幅增加。
为了让大家了解磁带存储技术到 2017 年已经发展到什么程度,IBM 开发了更新的磁带存储媒介,其磁带密度为每英寸 200 千兆位每秒(Gps),单个磁带盒可以记录高达 333 千兆字节(GB)的数据。这些磁带盒(对于像我这样的老年人来说)大小类似于卡带(对于年轻人来说),比普通智能手机稍小,可以握在手中。
软盘
软盘由 IBM 再次推出,并与其软盘驱动器一起在 1971 年首次亮相。尽管当时的主机计算机已经有硬盘和磁带存储媒介,但仍然需要一种简单且更便宜的方式来保存和传递软件与指令,这之前是通过更慢的打孔卡完成的。
软盘的核心是一个小型磁性盘片,虽然比当时的磁带存储和硬盘驱动器(HDD)更为便携,但存储容量远低于我们提到的其他媒介。
软盘的演变
这是软盘在尺寸和容量上随时间演变的过程:
-
尺寸:8 英寸:
-
推出年份:1971 年
-
最大容量:80 千字节(KB)
-
-
尺寸:5.25 英寸:
-
推出年份:1976 年
-
最大容量:360 KB
-
-
尺寸:3.5 英寸:
-
推出年份:1984 年
-
最大容量:1.2 兆字节(MB)
-
注意
1986 年,软盘的容量增加到 1.44 MB,并保持这一容量,直到 2011 年由索尼(软盘的最后制造商)停产。
光学存储媒介
光学存储媒介之所以得名,是因为数据是通过不同类型的激光写入光盘表面的各种媒介类型。
尽管在没有默认标签的情况下,可能很难区分各种光盘,但它们由于用于写入数据的激光大小不同,在颜色和色调上有些许差异。
光盘
光盘(CDs)由坑和凸起组成,这些坑和凸起在光盘的底面上可见,涂有一层薄薄的铝层,形成反射表面。数据是以同心圆的形式写入,并进一步分割为每个 512 字节的扇区,每个扇区称为光盘上的轨道,从光盘的内圈到外圈(或边缘):
-
直径:120 毫米(mm)
-
用于写入数据的激光类型:780 纳米(nm)红外激光
-
光盘的最大容量:650–700 MB
光盘有两大类:
-
光盘 – 只读内存 (CD-ROM):该光盘上预存有程序、游戏、音乐等数据,并且只能从 光盘可记录 (CD-R) 中读取数据。数据可以写入该光盘,但只能写入一次。
-
光盘 – 可重写 (CD-RW):数据可以多次写入此光盘。
数字多功能光盘
数字多功能光盘 (DVDs),尽管与 CD 的直径相同,但能够存储比 CD 更多的数据:
-
直径:120 毫米(与 CD 相同)
-
写入数据的激光类型:650 nm 红色激光
-
DVD 的最大容量:4.7 GB 和 15.9 GB(双层 DVD)
各种类型的 DVD 如下:
-
DVD – 只读内存 (DVD-ROM):该 DVD 已经预先写入数据,类似于 CD-ROM。
-
DVD – 可记录 (DVD-R):数据只能写入 DVD 一次。
-
DVD + 可记录 (DVD+R):数据只能写入 DVD 一次。DVD+R 使用更先进的错误检测和管理技术。
-
DVD – 可重写 (DVD-RW):数据可以多次写入此 DVD。
-
DVD – 可记录双层 (DVD-R DL):此类 DVD 包含双层结构,从而提供更高的存储容量,DVD-9 光盘为 7.95 GB,DVD-18 光盘为 15.9 GB。
-
DVD – 可记录双层 (DVD+R DL):与 DVD-R DL 相同,但被认为是一种更高效的格式,导致更少的错误。
-
DVD – 随机访问内存 (DVD-RAM):主要用于视频录制设备,因其耐用性(可使用达二十年)以及可以重写数据的特性。这种光盘比其他 DVD 格式更贵,并且不兼容许多常见的 DVD 驱动器和播放器。
蓝光光盘
当前可移动磁盘介质的标准,蓝光光盘因其读取和写入光盘所使用的激光颜色而得名。由于蓝光光盘的高容量存储,高清 (HD) 内容可以轻松存储在蓝光光盘上而不丧失质量:
-
直径:120 毫米(与 CD 和 DVD 相同)
-
写入数据的激光类型:405 nm 蓝色激光
-
DVD 的最大容量:25 GB 和 50 GB(双层蓝光)
-
数据传输:最高可达 72 兆比特每 秒 (Mbps)
蓝光光盘的两种容量也有可重写和可记录格式:
-
BD-RE:蓝光光盘可重写
-
BD-RE DL:蓝光光盘可重写双层(50 GB)
-
BD-R:蓝光光盘可记录
-
BD-R DL:蓝光光盘可记录双层(50 GB)
闪存存储介质
闪存之所以得名,是因为数据是通过电荷写入和擦除的。你可能听说过有人说他们需要“刷机”。这与在智能手机和智能设备上擦除闪存存储介质非常相似,不过,像 Android 和 iOS 这类具有操作系统的设备需要一个更加复杂的过程来刷新和重新安装它们的操作系统。然而,最终结果非常相似,即内存和存储区域会被重置或清除。
闪存存储芯片有两种类型,分别称为非与(NAND)和 NOR 闪存,它们负责在闪存介质上进行高速和大容量的数据存储。它们是新型的电可擦除可编程只读存储器(EEPROM)芯片,可以清除数据块或整个驱动器,而不是像较慢的 EEPROM 那样一次只清除一个字节。这种类型的闪存芯片是非易失性的,意味着即使芯片断电,数据仍然保存在芯片上。数据通过一种被称为电路内写入的方法,以电信号的形式发送到芯片,从而擦除数据并相应地更改数据。
下图展示了我的一只旧 1 GB(左)闪存驱动器和一只较新的 32 GB 闪存驱动器(右),其 NAND 芯片已暴露。请注意,尽管这两颗芯片大小相似,但右侧的芯片数据容量是左侧的 32 倍,因为它们的制造时间相差超过十年:

图 6.1 – 闪存驱动板上的 NAND 芯片
闪存媒体存储至今已成为便携性的终极选择,种类繁多,从与你的拇指大小到你小指甲大小不等。闪存的使用寿命取决于使用情况,因为它们都有一个平均的读写使用量,有时会在设备的包装上显示。当前,闪存的读写速度也非常快,这也是为什么硬盘驱动器(HDD)从传统的机械磁盘机制转向了固态机制。固态硬盘(SSD)将在本章稍后讨论。
注意
闪存存储介质的容量范围从 2 GB 到 1 TB(太字节)及更大,特别是在 SD、microSD 和闪存驱动器上,这些现在可以作为非常快速的可移动驱动器,安装操作系统,并且可以使用各种工具进行分区。因此,的确,Kali Linux 完全可以安装到闪存驱动器、SD 卡或 microSD 卡上(并使其可启动),仅需要 8 GB 的存储空间。
USB 闪存驱动器
通用串行总线 (USB)接口,于 1995 年发布,已成为所有设备的标准,取代了旧式设备,这些设备需要通过计算机上的特定并行端口连接。如今,几乎所有设备或外设都通过 USB 连接到计算机,包括鼠标、键盘、闪存驱动器、打印机、扫描仪、相机、移动设备,几乎所有其他设备。
这张表格展示了 USB 接口的发展:
| USB 版本 | 发布年份 | 数据 传输速度 |
|---|---|---|
| USB 1.0 和 1.1 | 1995 | 12 Mbps |
| USB 2.0 | 2000 | 480 Mbps |
| USB 3.0 | 2008 | 5 Gbps |
| USB 3.1 | 2013 | 10 Gbps |
今天的 USB 闪存驱动器形状和尺寸各异,从标准的矩形形状到各种可以想象的形状都有。USB 闪存驱动器使用 NAND EEPROM 芯片来存储数据,现有多个版本可定义闪存驱动器的读写速度。
下图展示了从最旧到最新的各种闪存驱动器,按从左到右的顺序排列。前三个驱动器都是 USB 2.1;然而,前两个是 8 GB 的闪存驱动器,第三个驱动器明显较小,是一个 32 GB 的闪存驱动器。第四个驱动器(Corsair)是一个 64 GB 的 USB 3.1 驱动器:

图 6.2 – 闪存驱动器尺寸
重要提示
我应该特别提一下“房间里的大象”,即新奇的闪存驱动器,它很容易被误认为是钥匙链或玩具,实际上可能对一些禁止员工带闪存驱动器进出工作场所的组织构成威胁,因为这些闪存驱动器可能包含敏感数据。
闪存卡
像闪存驱动器一样,闪存卡(或称记忆卡)也使用 NAND 闪存,这是我们之前了解的非易失性固态内存。然而,与 USB 闪存驱动器不同,这些卡没有 USB 接口,必须通过适配器或读卡器使用。
多年来,甚至几十年里,我们在桌面电脑、笔记本电脑、手机及其他设备中使用过多种记忆卡格式,包括相机、MP3 播放器甚至玩具。虽然我只会介绍一些今天较为流行的卡片,但了解记忆卡并能够识别它们是非常重要的。
以下是闪存卡的类型:
-
记忆棒 PRO Duo (MSPD)(由索尼开发的专有卡)
-
SD
-
MicroSD
-
紧凑型 闪存 (CF)
-
多媒体 卡 (MMC)
-
xD-图片 (xD)
-
智能 媒体 (SM)
在上述类型中,我选择了三张来自我的收藏的卡片,下面的照片展示了这些卡片。顶部是三星的 SD 卡,SD 卡通常有一个侧面的滑动锁,用于防止数据被覆盖。中间和底部是两张索尼 Memory Stick PRO Duo 卡,尽管它们现在可能已经较为罕见,但它们仍然完好无损:

图 6.3 – SD 卡与 PRO Duo 卡对比
我想简要对比一下图 6.4中展示的 PRO Duo 卡、SD 卡和 microSD 卡。PRO Duo 卡至少比 SD 卡和 microSD 卡早了十年以上,较老的 PRO Duo 卡尺寸较大,分别为 2 GB 和 4 GB 容量。虽然图 6.3中的 SD 卡未显示其容量,但它的容量为 1 GB,这再次表明,随着技术的发展,较小的芯片能够容纳比其前辈更多的数据。
为了进一步说明这一点,我们可以看看图 6.4中的照片(虽然由于我的相机缩放,照片有些模糊),近距离展示了两张 microSD 卡。左边的 microSD 卡容量为 64 GB,标明为 Class 10 U1 卡。右边的三星 microSD 卡容量为 512 GB,Class 10,U3 卡,大小只有指甲盖那么大!尽管如此,microSD 卡仍在研发更大容量的版本,目前已经有 1 TB 及以上的容量:

图 6.4 – MicroSD 卡对比
不同等级的 microSD 卡标识了它们的读写速度和建议用途。如果购买 microSD 卡,我建议选择 Class 10 卡,因为 C10 比其他等级(2、4 和 6)速度更快,能够支持高清甚至 4K 视频录制。
我们来看一下四种等级的速度评定:
| 等级(C) | 最小写入 速度(MBps) |
|---|---|
| C2 | 2 |
| C4 | 4 |
| C6 | 6 |
| C10 | 10 |
还有一个超高速(UHS)等级,可以通过 microSD 卡上的 U 符号识别。
| UHS(U)等级 | 最小写入 速度(MBps) |
|---|---|
| U1 | 10 |
| U3 | 30 |
为了应对大文件,特别是 4K 和 8K 视频文件的需求,还有一个视频速度等级:
| 视频 速度等级 | 最小写入 速度(MBps) |
|---|---|
| V6 | 6 |
| V10 | 10 |
| V30 | 30 |
| V60 | 60 |
| V90 | 90 |
正如之前提到的,闪存卡需要读卡器,这些读卡器通过 USB 接口与笔记本、台式机和其他媒体播放器连接。图 6.5中的照片展示了我的一款读卡器,它支持 CF 卡、Memory Stick PRO Duo 卡、SD 卡,甚至 SM 卡,而图 6.6中的更新版读卡器则是一个 SD 和 microSD 卡读卡器,支持 USB 和 Type-C 接口:

图 6.5 – SD 卡、CF 卡和 PRO Duo 卡读卡器

图 6.6 – USB 3.0 和 Type C SD 卡与 microSD 卡读卡器
硬盘驱动器
现在我们已经深入了解了非易失性存储,包括磁带存储和闪存存储,接下来我们将进一步探讨作为固定存储介质的硬盘驱动器(HDD)。我会尽量简化内容,重点介绍对取证调查人员来说最为必要的知识。
硬盘技术自 IBM 主机中的巨大存储设备问世以来,已经取得了长足的进展,现在更加紧凑、快速且价格更为实惠,存储容量已达到数 TB 级别。
尽管新型固态硬盘(SSD)使用的是与闪存设备中相同的存储芯片,它们仍然比机械硬盘要昂贵一些。这也许是人们在思考为什么旧款机械硬盘技术仍在使用时的一个原因。机械硬盘由多个活动部件组成,包括磁盘、执行臂和一个非常强大的磁铁。尽管在今天的笔记本电脑和硬盘中仍然常见到这些机械硬盘,但它们比新型固态硬盘慢得多,后者没有活动部件,看起来与 USB 闪存驱动器的芯片组非常相似。
在你的取证调查和冒险过程中,你可能会遇到或被展示不同接口和不同电缆技术连接到主板的旧款硬盘。我们来看看吧?
集成驱动电子硬盘(IDE 硬盘)
在 1980 年代中期,许多第一代个人电脑都配备了使用平行高级技术附件(PATA)和集成驱动电子技术(IDE)的硬盘。与当时所有的旧设备一样,平行传输(同时但缓慢地传输多个比特)是当时的主流,因此数据吞吐量非常有限。识别旧版 IDE 硬盘的一种简单方法是查看连接到硬盘的数据和电源接口。
如下图所示,这些旧硬盘有四个电源针脚,通过 Molex 连接器连接,间隔有八个针脚用于设置设备为主设备或从设备,然后是 40 个针脚用于 IDE 数据线,这条数据线将数据传输到主板:

图 6.7 – 3.5 英寸 IDE 硬盘
1994 年,随着技术的进步,增强型集成驱动电子(EIDE)问世,数据线的针脚数量从 40 个增加到 80 个,传输速度也从 4 Mbps 提升到了最高 133 Mbps。
然而,IDE/EIDE 仍然限制每台计算机最多只能连接四个 IDE/EIDE 硬盘,因为硬盘上的跳线针只允许设置两个主盘和两个从盘,且采用主从配置。还需要考虑的是,当时 CD-ROM、RW 设备和 DVD-ROM、RW 设备也在使用 IDE/EIDE 技术。
串行高级技术附件硬盘
2002 年,希捷推出了一种名为串行高级技术附件(SATA)的硬盘技术,它采用了串行传输方式,代替了较慢的并行传输方式。PATA 硬盘的速度为 33/66/133 Mbps,而 SATA 硬盘的速度则为 150/300/600 Mbps。这意味着,SATA 最低传输速度 150 Mbps 就比 PATA 最高速度 133 Mbps 还要快。
SATA 硬盘的连接接口也有所不同,但当时常见的是,SATA 硬盘上会同时有 SATA 和 PATA 电源连接器,以便向下兼容。
SATA 数据线比 PATA 线要细得多,因为它只包含七根连接到七个针脚的导线。SATA 设备每个硬盘使用一根线,而 PATA 设备则通过一根 IDE/EIDE 电缆连接两个硬盘,并设置为主从配置。
SATA 至今仍是桌面和笔记本硬盘技术的标准,并且经历了多次修订,如此处所列。列出的速度单位为 MBps,而不是 Mbps:
-
SATA 1:150 MBps
-
SATA 2:300 MBps
-
SATA 3:600 MBps
以下照片显示了两款 2.5 英寸笔记本硬盘。左侧的是一款较老的 IDE 硬盘,右侧的是一款现代的 SATA 硬盘:

图 6.8 – 2.5 英寸 IDE(左)与 SATA 硬盘
以下照片显示了两款 SATA 2.5 英寸笔记本硬盘。左侧的硬盘已损坏,并被打开,展示了中间的圆形磁盘和顶部略微覆盖在磁盘上的执行臂。执行臂的末端是读写头,用来读取和写入磁盘上的数据。
照片右侧的硬盘是混合硬盘或固态混合硬盘(SSHD)。它是一个像左边那个机械硬盘一样的硬盘,但它还内置了闪存,能够更快地访问磁盘上的数据:

图 6.9 – 磁盘和执行臂,安装在机械硬盘中
固态硬盘
如前所述,固态硬盘(SSD)是一种非易失性存储介质,使用 NAND 闪存阵列来存储数据。固态硬盘已经存在了相当长时间,但由于硬盘成本高昂,主流应用进展缓慢。三星在 1996 年首次推出了 32 GB 的 PATA 接口 SSD,紧接着,SanDisk 也推出了 32 GB 的 SSD,但采用了 SATA 接口。
尽管 SSD 硬盘使用闪存,但其所用材料比闪存盘更高端,这使得它们在作为硬盘使用时非常受欢迎,但同样,这也导致了其非常高的成本。
SSD 的一个优势在于它没有活动部件。没有活动部件使得 SSD 在跌落或快速移动 PC 塔时更加耐用,因为没有磁盘片或驱动臂会被刮伤或撞击。此外,SSD 的更快读写速度和访问时间大大缩短了设备启动或运行的时间,甚至在使用资源密集型软件和游戏时提供了更好的体验。
就数字取证而言,SSD 仍然是一项相对较新的技术,未来一段时间内将持续改进。重要的是要记住,你不是在处理机械硬盘,并且要记住,SSD 上的数据,像闪存驱动器或内存卡一样,可能会在几分钟甚至几秒钟内丢失或被擦除。尽管可以使用传统工具对 SSD 进行成像和数据恢复,但我强烈建议在进行任何取证活动之前,先研究任何 SSD 硬盘,以便更好地理解其工作原理和复杂性,例如去芯片技术和磨损平衡算法。去芯片是从存储芯片中读取数据的一种方法,而磨损平衡涉及用于保护或延长 SSD 使用寿命的技术。
这是一个 250 GB SSD 的照片:

图 6.10 – SSD
注意 SSD 连接器的针脚布局(左侧),它连接到板上的外围设备组件互连快速通道(PCIe)接口,而不是通常的 SATA 连接器。上一张照片中的连接器是 M.2 非易失性存储器快速通道(NVMe)SSD 连接器类型,但还有其他类型。在对可能需要使用 USB 适配器的 SSD 进行取证时,请确保了解你正在使用的连接器类型。
SSD 接口类型包括以下几种:
-
M.2 NVMe(最高 32 Gb/s 带宽)
-
M.2 SATA(最高 6 Gb/s 带宽)
-
mSATA(最高 6 Gb/s 带宽)
我们现在已经了解了不同类型的 HDD 及其差异。接下来,让我们讨论可以安装在这些硬盘类型上的文件系统和操作系统。
文件系统和操作系统
现在我们已经涵盖了硬盘的物理方面,让我们进入逻辑层面!任何类型的存储介质都需要使用特定的文件系统进行格式化。选择的文件系统也将决定可以安装在哪个操作系统上,并且影响文件和分区的大小。
简单来说,可以把它想象成一张空白纸,代表任何类型的新存储介质或被擦除的存储介质。我们可以在这张纸上写几种类型的信息,但首先我们需要组织或准备这张纸,以便使数据易于理解、访问,甚至存储。我们可以选择从左到右按句子和段落书写英文,或者可以创建行列式的表格。我们甚至可以使用幻灯片显示数据,或使用图片、图表和流程图。此外,我们还可以对存储介质进行格式化,以最好地适应将要存储和使用的数据。
文件系统确保数据以一种可轻松识别和索引的方式进行组织。可以把存储空间想象成一个拥有多个隔间的文件柜。某些隔间可能专门用于按字母顺序存储文件,其他的则按时间顺序排列,部分隔间用于存放文具、杂物,甚至是一些随机物品。尽管这些隔间存放的物品不同,它们都可以被标记并容易识别,且能以一种有序的方式组织,使得每个隔间的内容都能轻松访问或取出。
要在硬盘或可移动存储介质上安装任何操作系统,设备必须先被格式化并选择合适的文件系统进行准备。Windows、macOS、Android、Kali 等操作系统都需要文件系统来组织存储介质,以便操作系统能够成功安装。
以下部分包含一些更受欢迎的操作系统及其文件系统。
Microsoft Windows
以下是 Microsoft Windows 操作系统的一些简要特点:
-
文件系统:新技术文件 系统(NTFS)
-
支持的版本:Windows 11、8、7、Vista、XP、2000、NT,以及 Windows Server 2022、2019、2016、2012 和 2008
-
最大卷大小:在较新的 Microsoft Server(2019 及更新版本)和 Windows 10 版本 1709 及更新版本中为 8PB(拍字节)。较早版本支持最大 256 TB。
-
最大支持的文件大小:256 TB(取决于簇大小)
-
NTFS 特性:压缩、加密文件系统(EFS)、磁盘配额
信息
较早版本的 Microsoft Windows 默认支持文件分配表(FAT)文件系统。较新的 Windows 版本也支持 FAT 和 FAT32,但存在驱动器大小(8 TB)和文件大小(4 GB)的限制。扩展文件分配表(exFAT)被创建用来去除 FAT32 的限制,但可能不像 FAT32 那样广泛支持。
Macintosh(macOS)
以下是一些Macintosh OS(macOS)的简要特点:
-
文件系统:层次化文件 系统(HFS+)
-
支持的版本:macOS 直到版本 10
-
最大卷大小:2 TB
-
最大支持的文件大小:2 GB
苹果公司已进一步推出了一种新的 64 位文件系统,称为苹果文件系统(APFS),它取代了 HFS+并专门为 SSD 和 iOS 设备进行了优化。
以下是 APFS 的一些简要特性:
-
支持的版本:macOS 10.13(及更高版本)和 iOS 10.3 及更高版本
-
最大支持文件大小:8 exbibytes (EiB)
Linux
以下是 Linux 文件系统的一些简要特性:
-
文件系统:第四扩展文件系统 (ext4)。虽然 Linux 有多种文件系统可供选择,但如果你不确定应该使用哪个文件系统,我推荐使用这个。
-
支持的版本:Red Hat、Kali、Ubuntu 等。
-
最大卷大小:1 EiB。
-
最大支持文件大小:16 tebibytes (TiB)。
重要提示
许多开源操作系统发行版基于 Linux,包括 Kali Linux 和 Android,因此它们使用 ext2/ext3/ext4 文件系统。它们也能使用 FAT32 文件系统。FAT32 可在任何平台间使用,包括旧版本的 Windows、Macintosh 和 Linux,并且几乎所有带有 USB 端口的设备都支持它。
对于数字取证与事件响应 (DFIR)来说,了解我们所读到的文件系统及其差异非常重要。一旦选择了文件系统(无论是由硬盘制造商还是用户选择),数据就可以存储在存储介质上。接下来我们将查看不同的数据类型和状态。
数据类型和状态
首先,有一种数据状态叫做传输中的数据,也叫做运动中的数据。这仅仅是指数据在移动,可能通过网络在设备之间,甚至在存储介质之间传输,积极地在不同位置之间流动。
还有一种数据状态叫做正在使用的数据。处于这种状态的数据当前正被用户访问或被 CPU 处理。当数据被访问或使用时,它会从硬盘中提取并暂时存储在 RAM 中,RAM 的速度远快于硬盘(尤其是机械硬盘),并在用户访问数据且设备保持供电时存储在那里。
当数据不在运动中、传输中或使用中时,它被称为静止数据。在这种状态下,数据静止或保存在非易失性介质上,如硬盘、光盘、闪存驱动器和内存卡。
现在我们已经了解了描述数据状态的正式术语,接下来我们将学习元数据和闲置空间。
元数据
元数据就是关于数据的数据。以一个存储在仓库中的笔记本为例。在仓库的某个地方(可能还包括其他位置如云端),可能有多项信息可以被称为关于笔记本的数据,甚至是笔记本的元数据,例如以下内容:
-
笔记本电脑在仓库中的位置
-
笔记本品牌和型号
-
制造日期
-
保修日期和信息
-
硬件和软件规格
-
颜色和大小
闲置空间
集群是存储介质中存储数据的最小磁盘空间或分配单元。当格式化磁盘时,我们需要定义这些分配单元的大小,或者可以使用 4 KB 的默认集群大小。这就是闲置空间的来源。
空闲空间是集群中的空闲和未使用空间,这些空间包含数据,但没有被数据填充。要充分理解这一点,我们首先需要了解操作系统指定的默认集群大小。使用 NTFS 格式化的驱动器(用于 Windows)默认的集群大小为 4 KB。假设您将一个大小为 3 KB 的文本文件保存到磁盘上,这意味着在该集群中仍然有 1 KB 的未使用或空闲空间。
空闲空间对法医调查员尤其重要,因为数据可以很容易地隐藏在空闲空间中。幸运的是,我们有多个可用工具,如 Kali Linux 中的 Sleuth Kit 和 Autopsy,可以帮助调查空闲空间并找到隐藏的文件。
请确保熟悉“元数据”和“空闲空间”这两个术语,因为在您的调查中它们将不断被提及。随着我们章节内容的推进,您也可以随时在笔记中记录这些和其他术语,以便于后续参考。现在,让我们继续了解不同类型内存的易失性和非易失性特性,同时看看在 DFIR 调查中,易失性顺序的重要性。
易失性与非易失性数据以及易失性顺序
在本节中,我们将探讨为什么当易失性内存失去电源时,数据会丢失。
数据可以存在,只要存储数据的介质能够存储数据。硬盘(机械硬盘和固态硬盘)、闪存驱动器和存储卡都是非易失性存储介质。尽管固态硬盘(SSD)在数据访问速度上提供并持续进行显著改进,但到目前为止,RAM(通常仅称为内存)仍然是设备内部速度最快的内存类型。
然而,RAM 是易失性内存。与硬盘和闪存驱动器中的非易失性内存不同,存储在 RAM 中的数据是暂时保存的,仅在芯片提供电流的情况下才会保留。我们需要了解的 RAM 有两种类型:静态 RAM(SRAM)和动态 RAM(DRAM)。
SRAM 优于 DRAM,但由于制造芯片所需的材料复杂,成本比 DRAM 高得多。SRAM 的物理尺寸也远大于 DRAM。SRAM 可以在 CPU 缓存(L1 或一级缓存)和一些主板芯片(L2/L3)上找到,尽管由于成本和物理尺寸的限制,容量通常非常小(以 KB 为单位)。
尽管 DRAM 较慢,但它便宜得多,仍然是设备中作为主内存使用的原因之一。使 RAM 具有易失性的是它的组件,如晶体管和电容器。你们中的一些人可能已经通过 A+等认证课程了解过这个话题,但为了帮助所有人,我将再详细说明一下。
DRAM 使用电容器,这些电容器在刷新电路中暂时存储电荷。芯片需要不断刷新才能在访问时保持数据。然而,在刷新之间会创建等待状态,这使得 DRAM 相比于使用晶体管而没有等待状态的 SRAM 更慢。
在过去几十年里,出现了许多不同类型的 DRAM 或内存条,大小略有不同,且接触主板的引脚数量有所增加。按年代排序的一些 RAM 类型如下:
-
扩展数据输出 RAM(EDO RAM):早期的 DRAM 类型之一。
-
同步动态随机存取存储器(SDRAM):这是第一种能够与 CPU 时钟速度同步的 RAM 类型。它的最大传输速率为 133 百万传输或每秒百万次传输(MT/s)。它的标签为 PC100、PC133 和 PC166。
-
DDR-SDRAM/DDR 1(双倍数据速率 - SDRAM):有效地将 SD RAM 的传输速率翻倍。最大传输速率为 400 MT/s。
-
DDR2:最大传输速率为 800 MT/s。
-
DDR3:功耗比 DDR2 低三分之一。最大传输速率为 1600 MT/s。
-
DDR4:最大传输速率为 4400 MT/s(DDR4-4400)。
在今天的笔记本和台式机中,常见的内存类型主要是 DDR3 和 DDR4,但碰到带有 DDR2 甚至(奇迹般的)DDR1 的老旧机器也并不罕见。下图展示了不同类型的 RAM 双列直插内存模块(DIMM),从上到下依次为:SDRAM(最上面),DDR1,DDR2,最后是 DDR3:

图 6.11 – RAM 类型
重要提示
笔记本也使用 DDR RAM,但它们采用一种更紧凑的尺寸,称为小型轮廓 DIMM(SODIMM)模块。
现在我们已经看过了 RAM 的演变及其各种形态类型,接下来让我们了解 RAM 的重要性,并学习分页文件和 RAM 缓存的使用。
DFIR 中 RAM、分页文件和缓存的重要性
操作系统可以将硬盘的一部分用作 RAM 的扩展。这被称为虚拟内存,通常在计算机或笔记本 RAM 有限的情况下非常有用。尽管硬盘比 RAM 慢得多,但硬盘上的交换文件或分页文件可以存储那些访问频率较低的文件和程序,从而使 RAM 可以存储频繁访问的数据。这个过程涉及操作系统将不常用的数据页交换到硬盘上的专用分页文件区域。
在取证调查中,分页文件对我们非常重要。尽管它不像 RAM 那样具有易失性,因为它存储在硬盘上,但它是 Windows 中的一个隐藏文件,名为pagefile.sys,应该始终使用您选择的工具进行检查,因为这个文件可能会揭示加密区域的密码、访问过的网站信息、打开的文档、登录的用户、打印过的项目等等。
机械硬盘上的数据是以碎片化的方式存储的;然而,分页文件或交换文件的优点是,数据可以以连续的方式存储,一个接一个,从而提高访问速度。
建议将分页文件的大小设置为内存大小的 1.5 倍,并且如果可能,存储在一个单独的驱动器上,而不仅仅是一个单独的分区。
关于 Pagefile.sys 的说明
Pagefile.sys可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management Windows 注册表路径下找到。
我希望分页文件和缓存的重要性已经被充分理解,因为在任何数字取证和事件响应调查中,获取和分析分页文件至关重要。在继续下一章之前,随时复习本章并记录下所有涉及的术语。
总结
在本章中,我们花时间介绍了一些非易失性存储介质的基础知识,这些介质在没有电源供应时依然能够存储数据。非易失性介质包括不同类型的硬盘,如机械硬盘和固态 PATA、SATA 驱动器,闪存驱动器以及内存卡。
较新的存储介质设备,包括 SSD,使用一种特殊类型的闪存——NAND 闪存来存储数据。这种闪存比传统的机械硬盘更快、更耐用,因为设备没有任何活动部件;然而,目前它们仍然相当昂贵。
我们还看到了与各种操作系统相关的不同文件系统,并了解到数据的最小分配单元称为簇,簇可以位于空闲空间中。空闲空间是簇内未使用的空间,数据可以隐藏在其中。数据本身有不同的状态,可以是静止的、运动中的或正在使用的。无论数据的状态如何,始终存在一些关于数据本身的信息,称为元数据。
用户或操作系统访问的任何数据都会暂时存储在易失性内存或 RAM 中。尽管数据可以在非易失性内存中存储很长时间,但当易失性内存(RAM)的电荷丢失时,数据也会丢失。硬盘上的一个区域,称为分页文件,可以充当虚拟内存,让计算机认为它有比实际安装的内存更多的 RAM。
我确实鼓励你做更多的研究,扩展你在这些主题上的知识,以便更好地理解所涵盖的内容。
现在让我们进入下一个章节,在这里我们将学习调查程序和事件响应的最佳实践,如获取易失性数据和处理及分析实时机器的程序。
第七章:事件响应、数据获取与 DFIR 框架
有时,在调查开始时很难确定什么才算证据,尤其是在关于发生了什么的所有事实尚未收集或陈述的情况下。正如任何调查一样,我们应当了解并遵循获取证据的指南、流程和程序,以确保其不被篡改,或者在最坏的情况下丢失。
在犯罪现场,比如枪击事件,通常会有一些特定物品可以立即被视为证据。物理证据容易收集,放入证据袋中,标记清楚后送往实验室和安全存储区域进行保管。这些证据可能包括弹壳、枪支、指纹和血液样本。不要忘记证人陈述和闭路电视(CCTV)录像资料。同样,考虑现场执法人员的身份和他们到达的顺序也很重要。看起来似乎很简单。
然而,当涉及计算机或智能设备的漏洞或犯罪事件被报告时,收集证据并不总是那么简单,因为在将任何物品定性为证据之前,需要考虑许多因素。
例如,如果桌面设备参与了事件,我们是只拿走主机塔,还是还需要将显示器、键盘、鼠标和音响一并扣押?打印机和扫描仪等其他外设又该如何处理?现场是否有其他固定或可移动存储介质,我们是否也需要扣押它们?
本章解答了所有这些问题,并提供了关于事件响应、证据获取和其他主题的指南和最佳实践,包括以下内容:
-
证据获取程序
-
事件响应和首批响应人员
-
证据收集与文档记录
-
现场数据获取与事后数据获取
-
证据链(CoC)
-
写保护器的重要性
-
数据镜像与证据完整性保持
-
数据获取最佳实践、指南和 DFIR 框架
证据获取程序
正如我们在上一章中讨论的,数据可以存储在固定和可移动存储介质上。然而,根据多个因素的变化,数据很容易被删除或完全丢失。如果我们要确保数据的保存,必须考虑这些因素。也可以说,数字存储面临的威胁比纸质存储还要多。以下列出了对比这两者的威胁。
针对纸质存储的威胁包括以下内容:
-
水
-
火灾和湿度问题
-
年龄
-
自然灾害——洪水、地震、龙卷风、飓风等
-
人为错误和疏忽
存储介质上的数据威胁包括以下内容:
-
人为错误和疏忽
-
磁性和电磁场
-
水和凝结水
-
热尘
-
影响电压
-
静电
-
自然灾害——洪水、地震、龙卷风、飓风等
那么,数据究竟何时成为证据呢?考虑到发生的事件,某些特定数据可能与调查相关,具有相对的价值。在执行数字取证和事件响应(DFIR)时应考虑这一点,因为此时范围可能不仅限于设备和存储介质,正如我们将在本章中进一步讨论的那样。
接下来,让我们讨论事件响应及第一响应者承担的技术角色。
事件响应和第一响应者
保存证据的工作并不仅仅从获取数据开始,而是从物理上查看嫌疑设备时就应开始。对于涉嫌犯罪或安全泄露,应有一定的结构化响应,类似于警方接到报案的处理方式。就像人们拨打紧急电话,紧急服务会派遣警方、消防队、急救人员以及其他第一响应者,随后可能会将问题上报给 FBI 或其他机构。当处理需要进行数字调查的报告时,也应有类似的指挥链。
当发现或怀疑发生泄露或犯罪时,应有一名专门的第一响应者被通知并赶赴现场。通常,这个人对设备、网络,甚至如果适用的话,组织的 IT 基础设施有一定的了解或知识。
第一响应者人员可以包括以下人员:
-
帮助台和 IT 技术人员
-
系统管理员
-
网络管理员
-
安全管理员
-
IT 经理和主管
尽管前述角色的人员可能未接受过数字取证或数字调查的培训或具备相关技能,但他们负责确保现场的安全,确保数据、外设、设备和存储未被未经授权的人员使用、篡改、移除或损坏。
第一响应者的职责包括以下内容:
-
第一响应者是最早抵达现场的人(正如名称所示),并进行初步评估
-
以房间的中心为焦点,环形方式全面记录现场和房间的情况
-
通过不允许未经授权的用户或嫌疑人接触设备或区域,尤其是易变数据和存储介质,来确保现场安全
-
为运输保存和包装证据,确保使用能够追踪证据交换的 CoC(证据链)表格
现在,让我们来看一些证据的例子,以及它们的收集和记录。
证据收集与记录
第一响应者还应对现场进行记录,以帮助调查。现场记录应包括以下内容的照片、视频、语音录音和手动记录:
-
设备所在的房间(桌子、天花板、入口/出口、窗户、照明、电源插座和数据插口)
-
设备的状态(开机、关机、电源指示灯闪烁)
-
屏幕内容,如果设备已开启(操作系统、正在运行的程序、日期和时间、有线和/或无线网络连接)
-
书籍、笔记或纸张
-
连接和断开的电缆
-
外设,如打印机、扫描仪和外部硬盘,靠近(无论是否连接)
一旦现场被首响应者确保并记录下来,法医调查员也应该被通知并赶到现场进一步检查和评估情况。
如果首响应者已接受证据收集和保存的培训,他们还可以开始获取可以视为物理证据的过程。
物理证据的例子包括以下内容:
-
台式电脑和计算机主机
-
笔记本电脑
-
平板电脑
-
智能手机
-
物联网设备
-
一般智能设备
-
固定和可移动存储介质:
-
硬盘
-
光盘介质
-
磁带存储
-
存储卡
-
卡片读卡器
-
适配器
-
托架站
-
打印机
-
扫描仪
-
手机
-
iPod
-
媒体和 MP3 播放器及其他可能在执行入侵时使用的设备。路由器和交换机也可能包含证据,如连接日志、源和目的地址,甚至访问过的网站。
- 电缆和充电器
这是一个预算合理但便携且非常有组织的螺丝刀工具包,我将其放在我的 DFIR 首响应急工具包中。它包含了打开台式电脑、笔记本电脑和平板电脑的所有附件,还可以用于拆卸甚至打开可移动存储介质,如硬盘驱动器、光盘驱动器,甚至如果遇到的话,也能处理软盘驱动器:

图 7.1 – 含有各种拆卸设备和驱动器的小工具包
物理获取工具
除了你先前提到的工具包外,我们还需要哪些工具来进行数字证据的法医获取和提取?还记得我们在第六章中讨论的存储介质种类吗?理解文件系统和存储?我们看到其中许多都有各种大小的连接器。
下面是进行证据获取时所需设备的部分列表:
-
写保护器(这些可以是硬件和/或软件基础的)
-
卡片读卡器(最好是 USB 3)
-
各种适配器(USB 到 SATA 和 EIDE,USB 到各种类型的 USB,VGA 到 HDMI)
-
设备电缆,如电源、SATA、EIDE、HDMI 和 VGA
-
网络电缆,包括直通、交叉和控制台电缆
下图展示了各种 USB 适配器的集合,所有这些适配器的价格都低于 10 美元,并且都可以在亚马逊上购买:

图 7.2 – 各种 USB 适配器
对于笔记本硬盘,我还使用 串行高级技术附加(SATA)转 USB 3.0 适配器,如下图所示。该设备也是自供电的,并配有可拆卸的电源适配器,因此可以为全尺寸硬盘、DVD 和 Blu-ray 驱动器提供电源,这些驱动器带有 SATA 接口:

图 7.3 – USB 3.0 转 SATA 自供电适配器,适用于 2.5 英寸和 3.5 英寸硬盘
在连接路由器和交换机时,控制台电缆和串行转 USB 电缆也可以包含在你的工具包中,像这里所展示的那样:

图 7.4 – 串行转 JJ-45(左)和串行转 USB(右)电缆
所有移动设备,包括手机和平板电脑,也可以通过 USB 端口连接到笔记本电脑和台式机。下图展示了一个 OTG 电缆,它可以将 USB 设备连接到具有 OTG 功能的手机或平板电脑:

图 7.5 – OTG(即插即用)电缆
以下是物理收集和保存的指南清单:
-
标记所有电缆和连接器
-
根据需要使用标记的证据收集袋
-
在存储具有无线和无线电功能的设备时,可能需要使用特殊的强固袋,以防止与其他设备的通信
-
将硬盘和闪存驱动器等敏感设备存放在防静电袋和保护外壳中
-
标记在运输过程中用于存储的容器
-
在将证据从一个人/操作员交接到另一个人时,保持证据链(CoC)表格(本章后面将讨论)
现在,让我们继续了解收集证据时的易变性顺序,并比较实时与事后获取。
实时与事后获取
本节将介绍实时和事后证据获取的不同程序。但在开始之前,我们首先必须了解易变性顺序。
易变性顺序
在收集证据时,我们应当牢记数据的易变性。如本章前面所提到的,数据很容易丢失或损坏。因此,在收集数据时,常见的最佳做法是尽可能按照从最易变到最不易变的顺序收集证据,并做好详细记录。
数字证据科学工作组(SWGDE)捕捉实时系统文档并列出了从最易变到最不易变的顺序,如下所示:
-
RAM
-
运行中的进程
-
活跃的网络连接
-
系统设置
-
存储介质
开机与关机设备的获取
在调查开机和关机设备时,必须特别注意数据的易失性。启动、重启或关闭设备可能会导致数据写入硬盘,甚至丢失在 RAM 和分页文件中。
开机设备
在调查开机设备时,应该采取以下预防措施:
-
如果怀疑设备处于睡眠状态,可以移动鼠标或滑动触摸板。不要点击按钮,因为这可能会打开或关闭程序和进程。
-
拍照并记录屏幕和所有可见的程序、数据、时间和桌面项目。
-
拔掉桌面设备的电源线,并尽可能地移除便携设备的电池。
最重要的是,在收集 RAM 和分页文件中的数据时,必须尽可能减少对数据的修改。有关更多内容,请参考第八章,证据采集工具,使用像 FTK Imager 和 Belkasoft RAM Capturer 这样的成像工具。
获取 RAM 映像和数据有许多原因。正如前一章提到的,用户可能加密的数据可以以未加密状态存储在 RAM 中。如果分析 RAM 和分页文件,登录用户、打开的程序、访问的文件以及正在运行的进程都可以被提取和分析。
然而,如果设备被关闭或重启,这些数据和证据可能很容易丢失。
对于开机便携设备和开机设备,电池应当移除(如果可能)。然而,某些设备可能没有可拆卸的电池。在这种情况下,应该按住电源按钮 30 到 40 秒,强制设备关闭。
关机设备
除非由取证调查员操作,否则绝不可启动关机设备。必须采取特殊步骤确保现有数据不被擦除,并且不会写入新数据。
设备看起来可能是关机状态,但实际上可能处于睡眠或休眠状态。作为一个简单的测试,可以移动鼠标并打开显示器(如果有的话),以确定设备是否处于这些状态之一。即使它们处于关机状态,仍应拍摄屏幕和端口的照片。
在调查已经关机的便携设备时,建议移除电池(如果可能),并将电池放入证据袋中,以确保在拔掉电池后设备无法被意外开启。
NIST.SP.800-101r1—移动取证指南,需要注意的是,即使在关闭状态下,移除电池也可能会改变易失性内存中的内容。
现在我们理解了在获取证据的设备状态上所需的重视,让我们来看看 CoC 表格,它为证据的完整性增加了另一层保障。
CoC
CoC 是一份合法确保证据完整性的表单,随着证据在不同人员之间交换,它也提供了一定的问责制,因为在填写表单时需要个人身份验证。该表单提供了详细的日志和记录,记录了从现场收集到法院呈交的运输和交换过程。
以下是 CoC 表单上一些典型字段:
-
案号
-
受害人和嫌疑人姓名
-
扣押日期和时间:
-
被扣押时的地点
-
项目编号
-
项目描述
-
释放和接收证据的人员签名和身份证明
-
-
处置授权
-
证据销毁见证人
-
证据释放(交还给合法所有者)
可以直接从国家标准与技术研究院(NIST)下载样本 CoC 表单:
www.nist.gov/document/sample-chain-custody-formdocx
我建议你下载前述表单,因为在进行 DFIR 调查时,你可能会用到它。现在,让我们来看一下在获取数据时,写保护器在保持证据完整性方面的重要性。
写保护器的重要性
一旦我们的物理证据得到了适当的文档记录和收集,我们就可以开始数字证据的法医采集。我会多次强调这一点:原始证据应该仅用于创建法医副本或镜像,稍后在本章及其他章节中将讨论这一点。
检查和分析应该仅在数据的法医副本/镜像上进行,而不是在原始数据或证据上进行,因为在原始证据上工作会(并且通常会)修改介质的内容。例如,启动扣押的笔记本电脑进入其原生操作系统会允许数据写入硬盘,可能还会删除并修改 RAM 和分页文件中的内容。
为了防止这种情况发生,必须使用写保护器。顾名思义,写保护器防止数据写入证据介质。写保护器有硬件和软件两种类型。如果没有硬件写保护器,软件版本也可以作为独立功能在包括 C.A.I.N.E 在内的法医操作系统中找到,正如在第二章《数字取证导论》中提到的那样,也可以作为 EnCase 和 Autopsy 等一些商业和开源工具的一部分。
同样,写保护器在调查中至关重要,它可以保护和保存原始证据不被修改。以下照片展示了一款便宜且高效的便携式 SATA 和 IDE 适配器,带有写保护开关,用于驱动器获取和恢复:

图 7.6 – USB 到 SATA 和 IDE 写保护设备
现在我们已经熟悉了写保护器的目的和重要性,让我们来了解一下数据成像和证据完整性算法。
数据成像与保持证据完整性
成像是指精确复制数据,无论是文件、文件夹、分区,还是整个存储介质或驱动器。当进行常规文件和文件夹复制时,由于文件的属性设置为系统文件或隐藏文件,可能并不是所有文件都会被复制。为了防止文件遗漏,我们执行一种特殊的复制方式,其中每一个比特都会被精确地复制或成像,就像拍摄数据的照片或快照一样。
创建每个数据比特的精确副本被称为 物理或法医图像。执行 比特流复制 可以确保复制的完整性。为了进一步证明这一点,我们对原始证据和物理镜像进行哈希计算并进行比较(稍后我们将深入探讨)。如果法医副本即使只偏离一个比特的数据,使用相应算法生成的哈希值也会完全不同。
提示
原始证据应仅由合格且授权的专业人员处理,并且只能用于创建具有法医学效力的物理镜像。否则,原始证据绝不应被使用,因为这样会妥协证据的完整性和调查的有效性。
信息摘要 (MD5) 哈希
哈希值是由特定算法生成的,用于通过证明数据未被修改来验证证据的完整性。哈希值可以被视为数字指纹,因为它们是唯一的,并且在证据和物理镜像的识别中发挥着重要作用。
其中一种算法,尽管较老,并且现在主要用于验证从互联网上下载内容的真实性,就是 信息摘要(MD5)加密哈希算法,它生成一个 128 位的十六进制输出值。
作为一个工作示例,让我们打开浏览器并访问 passwordsgenerator.net/md5-hash-generator/。
该网站创建单词和句子的哈希值作为字符串。在这个示例中,我输入了 Digital Forensics with Kali Linux 字符串(不含括号)。自动计算的 MD5 值为 7E9506C4D9DD85220FB3DF671F09DA35,如下图所示:

图 7.7 – MD5 哈希生成器结果
通过去掉 K 字母,从相同的字符串变为 Digital Forensics with ali Linux,此时 MD5 值变为 7A4C7AA85B114E91F247779D6A0B3022,如下图所示:

图 7.8 – 编辑后的 MD5 生成器结果
作为一个快速比较,我们可以看到,仅仅去掉 K 字母,就会产生明显不同的结果:
- 数字取证与 Kali Linux:
7E9506C4D9DD85220FB3DF671F09DA35
- 数字取证与 ali Linux:
7A4C7AA85B114E91F247779D6A0B3022
我鼓励你亲自尝试,或许可以在字符串中添加逗号或句号,以进一步比较哈希值。
安全哈希算法(SHA)
另一种在取证中常用的密码学哈希算法,并将在下一章中使用的是 安全哈希算法-1 (SHA1)。与 MD5 相比,SHA1 更安全,因为它生成的是 160 位输出,而 MD5 生成的是 128 位输出。由于 MD5 和 SHA-1 已知存在碰撞攻击,因此现在更安全、更稳健的哈希算法是 SHA-2。
SHA-2 是一组哈希算法,而不仅仅是一个,像 SHA-1 一样,最常见的位长是 SHA-256,它生成 256 位输出。SHA-2 的其他位长算法包括 SHA-224、SHA-384 和 SHA-512。
使用的密码学算法越强大,被攻击或破坏的可能性就越小。这意味着所创建的证据和物理图像的完整性得以保持,这将在取证案件和专家证词中提供有力支持。
关于创建哈希的更多内容将在 第八章 中演示,证据 采集工具。
现在,让我们继续讨论数据采集和 DFIR 的最佳实践与框架。
数据采集最佳实践与 DFIR 框架
到目前为止,我们已经概述了在收集和保存证据时 DFIR 程序的一般流程。我强烈建议你阅读并熟悉一些官方文件,因为它们详细说明了现场文档记录、证据收集和数据采集的相关指导。
SWGDE 提供了多项关于取证采集、证据收集、取证检查等方面的最佳实践指南。这些非常有用的文件应下载并作为 DFIR 游戏手册的一部分保存,因为它们简明扼要,总结了所有必要的步骤,可以作为 DFIR 调查的检查清单。所有文件可以在 SWGDE 的取证出版物部分找到:www.swgde.org/documents/published-by-committee/forensics,但就本章而言,我建议至少下载并阅读以下两个关于证据收集和取证采集的最佳实践指南。
第一篇论文详细介绍了在收集数字证据时的最佳实践,第二篇论文则详细介绍了从计算机执行数据采集时的最佳实践:
-
2018-07-11 SWGDE 数字证据收集最佳实践:
drive.google.com/file/d/1ScBeRvYikHvu6qtE_Lj3JtbOl94a5FDr/view?usp=sharing -
2018-04-25 SWGDE 计算机取证采集最佳实践:
drive.google.com/file/d/1ScBeRvYikHvu6qtE_Lj3JtbOl94a5FDr/view?usp=sharing
SWGDE《实时系统捕获文档,第 2.0 版》于 2014 年 9 月发布。虽然相对简短且不够详细,但它仍然适用于涉及实时(已开机)系统的法医调查。本文档提供了调查实时系统时的指南,包括易失性顺序、内存取证(包括分页文件取证)以及实时物理和文件系统采集。
本文档仅有六页,可以从此处下载:drive.google.com/file/d/10MJ9EJAkj6i6Xqpf3IcFb4dDPNUZ2ymH/view
DFIR 框架
前述的实践指南可以与一个或多个框架结合使用。无论任务是什么,目标应始终保持一致,即在整个 DFIR 过程(证据收集、审查、分析和报告)中始终保持证据的完整性。
尽管不是免费的,但有一本 ISO/IEC 出版物,名为ISO/IEC 27037:2021《信息技术 — 安全技术 — 数字证据识别、收集、采集和保存指南》,它是关于 DFIR 最佳实践的极好参考资料。该文档的预览版可以在www.iso.org/obp/ui/#iso:std:iso-iec:27037:ed-1:v1:en找到。
国家标准与技术研究院(NIST)还有一本较早的出版物,名为NIST 特别出版物(SP)800-86《将取证技术整合到事件响应中的指南》,该文档包含 121 页关于各种技术和数据识别、采集、审查的有用信息。完整文档可以在nvlpubs.nist.gov/nistpubs/legacy/sp/nistspecialpublication800-86.pdf免费下载。
另一本有用的出版物是NIST 特别出版物(SP)800-61 修订版 2《计算机安全事件处理指南》,该文档专门关注事件及其适当响应。该文档的完整版本可以在nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-61r2.pdf查看并下载。
此外,NIST 《移动设备取证指南》是另一本非常有用的文档,专门适用于移动设备。此文档的第一版于 2014 年发布,详细讨论了移动设备取证调查的各个方面。其内容包括以下内容:
-
移动设备和蜂窝网络特性
-
现场评估与文档记录
-
设备隔离与包装
-
设备与内存获取
-
检查、分析和报告
完整文档可从以下链接下载:
nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-101r1.pdf
与调查网络攻击相关的,应该参考 D4I – 数字取证框架,用于审查和调查网络攻击,作为一个提议的框架。它还引用了网络杀伤链(Cyber Kill Chain)及其与网络攻击相关的各个阶段。你可以在以下位置找到这篇 8 页的文档:
tsapps.nist.gov/publication/get_pdf.cfm?pub_id=929147
在过去的二十年中,技术和信息技术(IT)发生了重大变化。除了我们传统上认为的信息技术外,现在还有运营技术(OT)。OT 主要处理在制造和公用事业领域中传统上使用的设备和机械,这些设备可能通过 IT 流程进行逻辑管理。一个很好的例子是SCADA(监控控制与数据采集)系统,通常由天然气和公用事业公司使用来监控操作设备。对这些服务的破坏可能影响数百万人的生活和企业,应该实施正式的事件响应程序,以确保业务连续性和灾难恢复。NIST 最近发布了NISTIR 8428 数字取证与事件响应(DFIR)框架:面向运营技术(OT)(2022 年 6 月),作为解决这些问题的框架,并涵盖了非常详细的 OT DFIR 流程,包括资产识别、远程数据收集、过程监控、现场分析等。完整文档可从以下链接下载:
https://nvlpubs.nist.gov/nistpubs/ir/2022/NIST.IR.8428.pdf.
希望本节内容对你有所帮助,我建议你下载并将这些文档保存在一个文件夹中,或者甚至可以打印并装订成册,作为参考资料或整个数字取证与事件响应(DFIR)手册。
摘要
如果我只能让你从这一章中记住一件事,那就是要记住,原始证据,特别是硬盘、存储介质和内存镜像,应仅用于创建具有法证效力的位流副本。原始证据永远不应直接操作。
总结一下,当报告发生安全漏洞时,应有一名已建立的首位响应者,按照协议执行记录和保护现场的任务,并收集和保存证据。首位响应者应配备包含各种工具和物品的工具包,用于获取证据,并确保在交接证据时,链条(CoC)得到保持。
此外,我们还探讨了在调查开机和关机设备时的各种程序和最佳实践,并讨论了使用写保护器的重要性,以防止原始证据被篡改,随后使用哈希工具进行完整性验证。最后,我为你提供了一些非常有用的 DFIR 框架,当它们与 SWGDE 指南结合时,便能构成一套令人印象深刻的 DFIR 操作手册。
你已经走到了这一步,我知道这一定有些信息超载,但现在我们可以进入本书的实操部分,开始使用 Kali Linux 中的数字取证工具进行调查。开始吧!
第三部分: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 来分析本章中使用的相同文件进行对比。
第十三章:使用 Autopsy 4 图形界面进行全面的 DFIR 分析
如我们在第十二章中所学,Autopsy 取证浏览器,当我们使用 Kali Linux 中自带的 Autopsy 取证浏览器时,Autopsy 在自动化证据和文件分析方面非常强大。然而,Autopsy 取证浏览器有一些限制,尤其是它的版本较旧,并且更新频率较低,相比之下,图形用户界面(GUI)版本的更新频繁。Autopsy 取证浏览器已经有许多年没有更新,仍然处于 2.2 版本,而 Autopsy GUI 目前(在写作时)已经更新至 4.19 版本。
本章将重点介绍 Autopsy v4 图形界面(也称为 Autopsy 4 图形界面),并分析与上一章使用的相同文件,以便比较使用情况、功能和分析结果的差异(如有)。本章将涵盖以下主题:
-
Autopsy 4 图形界面功能
-
使用 Wine 在 Kali Linux 中安装 Autopsy 4
-
下载示例文件进行自动化分析
-
创建新案件并熟悉 Autopsy 4 界面
-
使用 Autopsy 4 分析目录并恢复已删除的文件和证据
Autopsy 4 图形界面功能
Autopsy 4 图形界面提供许多易于使用的功能,适用于相对简单和快速的分析。Autopsy 4 是少数几款全面的数字取证套件之一,完全免费使用,且被专业人员和执法部门广泛使用。
一些功能包括以下内容:
-
简单且直观的用户界面
-
案件管理,每个案件的所有文件都存储在各自的目录中
-
可用的第三方插件和模块
-
索引关键词搜索
-
从浏览器提取 Web 证据,包括从 Chrome 和 Firefox 中提取 cookies 和浏览历史
-
使用 PhotoRec 进行自动化文件恢复
-
使用照片和视频分析提取可交换图像文件(EXIF)数据
-
高级时间线分析与事件查看
-
妥协指示器(IoC)分析
-
并行任务处理以实现快速分析
-
可自由下载,支持 Windows、Linux 和 Mac
Autopsy 的详细信息可以在其主页找到:www.sleuthkit.org/autopsy/#:~:text=Autopsy%C2%AE%20is%20a%20digital,from%20your%20camera%E2%80%99s%20memory%20card
现在我们已经熟悉了 Autopsy 4 图形界面的一些功能,让我们使用 Wine 在 Kali 中安装它。
使用 Wine 在 Kali Linux 中安装 Autopsy 4
在本示例中,我们将使用 Autopsy for Windows,安装方式为 Wine。Autopsy 4 也可以在 Linux 上下载;不过,这可能更适合高级用户。如果你还没有在 Kali Linux 上安装 Wine,可以回顾一下第五章中的内容,在 Kali Linux 中安装 Wine,然后再返回当前章节。
现在,让我们开始在 Kali Linux 中使用 Wine 安装 Autopsy 4:
- 所有版本的 Autopsy 4 可在此找到:
www.autopsy.com/download/
要下载适用于 Windows 的 Autopsy,可以点击这里的直接链接:github.com/sleuthkit/autopsy/releases/download/autopsy-4.19.3/autopsy-4.19.3-64bit.msi
上一个版本是适用于 Windows 的最新稳定 64 位版本,当前版本为 4.19.3。该教程同样适用于后续版本,因为多年来其使用方法保持不变。
- 一旦下载了 Autopsy 4.19.3,你可以双击下载的文件,或者右键点击 autopsy-4.19.3-64bit.msi 文件,选择 使用 Wine Windows 程序加载器打开 来启动程序。这样将会启动 Autopsy 设置 窗口,如下图所示:

图 13.1 – Autopsy 向导欢迎屏幕
- 点击 下一步 继续。安装文件夹将显示为通常在 Windows 安装过程中显示的内容。点击 下一步 继续。

图 13.2 – Autopsy 安装文件夹
- 点击 安装 开始安装过程。

图 13.3 – Autopsy 安装过程
安装可能需要几分钟,具体取决于分配给 Kali 环境的 RAM 和 CPU 资源。

图 13.4 – 安装过程中复制文件
- 当所有文件安装完成后,向导会告诉我们安装已完成。点击 完成 启动 Autopsy。

图 13.5 – 完成的 Autopsy 安装
安装后,你将看到 Autopsy 4 的启动画面,加载所有所需模块可能需要一分钟时间。

图 13.6 – Autopsy 4 启动画面
- 在所有模块加载完毕后,会显示案例库信息,如下图所示。点击 确定 继续。

图 13.7 – 案例库信息
我们已经完成了在 Kali Linux 上通过 Wine 安装和初始配置 Windows 版本的 Autopsy 4 GUI。接下来,在继续之前,我们先确保已经下载了所有必要的示例文件。
下载用于自动化分析的示例文件
我们将使用的样本证据文件是之前章节中通过 Autopsy 取证浏览器分析的同一个terry-work-usb-2009-12-11.E01文件。你可以再次从这里直接下载:digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/terry-work-usb-2009-12-11.E01。
我还希望你借此机会从digitalcorpora.com网站下载其他示例文件,你可以自己分析这些文件,完全熟悉 Autopsy 4,因为这是 DFIR 调查员和分析师使用的主要开源免费工具之一:
-
Charlie-work-usb文件:
digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/charlie-work-usb-2009-12-11.E01 -
Jo-favorites-usb文件:
digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/jo-favorites-usb-2009-12-11.E01 -
Jo-work-usb文件:
digitalcorpora.s3.amazonaws.com/corpora/scenarios/2009-m57-patents/usb/jo-work-usb-2009-12-11.E01
再次提醒,无论是在阅读完本章后,还是在书籍结束后,你都可以随时回到这些文件来提升你的 DFIR 分析技能。
现在让我们回到 Autopsy 4 的安装界面,熟悉一下它的界面。
创建新案例并熟悉 Autopsy 4 的界面
现在我们已经在 Kali 上通过 Wine 安装了 Autopsy 4 的 GUI,并且从上一部分下载了所需的文件,我们可以通过创建一个新案例并使用样本证据文件来开始,接下来的部分我们将分析这些文件。
让我们首先在 Autopsy 4 的 GUI 中创建一个新案例:
- 无论是从之前下载样本证据文件之前的状态继续,还是从桌面或应用菜单中打开 Autopsy 4,你都会看到选择开始新案例或打开现有案例的选项。为了我们的目的,点击New Case来创建一个新案例:

图 13.8 – 在 Autopsy 中创建新案例
- 接下来,我们可以添加一个案例名称。我还在 Kali 中选择了Documents文件夹作为我的Base Directory文件夹,用来存放所有文件和日志。点击Next继续。

图 13.9 – 新建案例详情
- 我们接下来需要为案件分配一个编号,并填写检查员的详细信息。完成后,点击完成按钮以继续。

图 13.10 – 检查员详情
创建新案件可能需要几分钟时间,因为 Autopsy 正在为使用做好准备。

图 13.11 – 打开新案件状态显示
- 然后,选择主机。我们可以暂时保留默认选项根据数据源名称生成新的主机名称,然后点击下一步以继续。

图 13.12 – 案件主机名称
- 下一步是一个重要步骤,我们必须特别注意。在这里,我们选择数据源类型。我们的示例文件(terry-work-usb-2009-12-11.E01)是一个法医获取的证据镜像文件,因此我们将选择第一个选项,磁盘镜像或虚拟机文件。选择后,点击下一步以继续。

图 13.13 – 选择数据源
- 我们现在将选择要分析的文件。我已将示例证据文件下载到 Kali Linux 中的Downloads文件夹。您可以点击浏览按钮,导航到C:\users\kali\Downloads文件夹,然后选择证据文件(terry-work-usb-2009-12-11.E01)或直接输入文件路径。选择您的时区后,点击下一步以继续。

图 13.14 – 数据源路径指定
- 接下来,我们可以配置摄取模块,决定 Autopsy 将在哪些项目上运行已选择的模块进行完全自动化的 DFIR 分析。我保留了默认设置,选择了所有文件和目录。点击下一步以继续。

图 13.15 – 配置摄取模块
重要提示
对于较大的证据文件、磁盘和镜像,由于需要处理的项目数量庞大,分析过程可能会更长。运行所有模块可能不可行。然而,如果您没有手动指定模块,Autopsy 将自动取消任何无法运行的模块。
如果 Autopsy 在运行模块时遇到任何错误,它们将被自动移除,如以下截图所示。点击确定以接受并继续:

图 13.16 – 摄取模块失败错误
- 一旦错误信息被关闭,点击完成按钮开始分析文件:

图 13.17 – 完成数据源分析详情
现在我们可以在 Autopsy 界面中查看所有分析过的文件,如以下截图所示。

图 13.18 – Autopsy 界面
让我们开始在 Autopsy 界面中探索我们的发现,以查看分析结果。
使用 Autopsy 4 分析目录并恢复已删除的文件和遗迹
如前所述,Autopsy 拥有一个非常简单且不复杂的界面。Autopsy 窗口分为三个窗格,如下所述:
-
左侧窗格显示了被分析和检查的数据源,以及 Autopsy 所发现和恢复的所有目录和文件。
-
主窗格显示了数据源文件夹中所有发现的文件。
-
下方的窗格显示了文件的详细信息,如十六进制、文本、文件元数据和数据遗迹。
在以下截图中,我通过点击每个提到的项目旁边的加号(+)扩展了数据源、文件视图和已删除文件文件夹,这些文件夹都显示了子目录,如下图所示:

图 13.19 – Autopsy 中分析的数据源发现
通过在左侧窗格中展开数据源项目,我们可以看到证据文件包含两个卷。卷 1 是未分配的空间,卷 2 是 Windows 95 FAT32 卷,展开后可以看到孤立文件、未分配文件,甚至已删除的文件夹,如下图所示。

图 13.20 – 数据源卷和发现的遗迹
如果我们仔细查看文件类型,我们可以看到 Autopsy 已将文件类型分类为图片、视频、音频、压缩文件,甚至文档子文件夹,这些文件夹可能包含已发现的遗迹。
在以下截图中,我们可以看到 Autopsy 已发现几种类型的文件,包括 4,992 张图片、4 个数据库和 24 个已删除文件。我点击了扩展后的图片文件夹,其中包含 4,992 个文件。在右侧窗格中,我们可以看到所有图片的列表,以及这些图片文件的修改、访问和创建时间。

图 13.21 – 查看发现的图片及其相关时间戳
耐心是关键!
逐一浏览这些文件以发现任何有用的信息或遗迹可能看起来是一项繁琐的任务,但成功的数字取证和响应(DFIR)调查与分析的关键是耐心!
接下来,我选择了已删除文件文件夹,然后选择了文件系统文件夹。文件系统文件夹的内容显示在主窗口中,每个已删除文件旁边都有一个红色的X,如图 12.22所示。我还向下滚动并点击了已删除的xpadvancedkeylogger.exe文件,报告显示它最后一次修改的时间为 2009-12-03 08:40 EST。

图 13.22 – 发现并恢复的人工制品
在前面的截图中,我们可以看到,当需要筛选已删除的文件时,Autopsy 是多么有用,因为所有文件都被分组并附有时间戳。
我在这个非常简短的教程中想向你展示的最后一个功能是时间轴功能。点击应用程序顶部的时间轴按钮,生成按月排列的事件时间轴,正如下面的截图所示。

图 13.23 – Autopsy 时间轴功能
在前面的时间轴中,你还可以按月查看事件。让我们点击红色的十月标记。在下方的窗格中,我们可以看到有两个可执行文件是在 2008-10-15 17:14 创建和修改的。这些文件是vnc文件,可以用来获取或提供远程访问,可能还会危及设备安全。

图 13.24 – 时间轴功能中的 VNC 文件
这也标志着我们使用 Autopsy 4 进行的自动化 DFIR 分析的结束。我鼓励你使用本章开头提到的样本文件返回到这个工具中,并分析本章中“下载用于自动化分析的样本文件”部分提到的其他下载样本文件。
总结
在这一章中,我们下载并安装了更强大的 Windows 版本 Autopsy,称为 Autopsy 4 GUI,并通过 Wine 在 Kali Linux 上运行了它。我们还了解了如何利用这个版本的 Autopsy 自动分析证据文件,查找诸如已删除文件之类的人工制品。我希望你喜欢这一章,因为它展示了比我们在第十二章中看到的 Autopsy 浏览器更强大的 Autopsy 版本,Autopsy Forensic Browser。
接下来,我们将了解一些流行的扫描和侦察工具,尽管这些工具并非专为 DFIR 目的而创建,但在网络取证分析和调查中非常有用。我们在第十四章中见!
第五部分:网络取证分析工具
在最后部分,我们将使用大量已安装和在线工具来发现和检查网络及在线活动,包括网络主机发现与指纹识别、物联网发现与调查,以及数据包捕获分析来检查网络流量。
本部分包含以下章节:
-
第十四章,网络发现工具
-
第十五章,使用 Xplico 进行数据包捕获分析
-
第十六章,网络取证分析工具
第十四章:网络发现工具
在本章中,我将介绍一些常见工具,这些工具有助于网络发现、网络信息收集与侦察过程,并且总体上有助于网络取证分析。特定的网络取证分析工具,如 Xplico 和 NetworkMiner,将分别在第十五章《使用 Xplico 进行数据包捕获分析》和第十六章《网络取证分析工具》中进行讲解。
在本章中,我们将首先进行网络主机发现,详细介绍主机本身的具体信息,如操作系统(OS)和开放端口,然后使用一个在线工具来发现外部和公开可识别的主机。
在本章中,我们将学习以下内容:
-
在 Kali Linux 中使用 netdiscover 识别网络上的设备
-
在 Kali Linux 中使用网络映射器(Nmap)识别网络上的设备
-
使用 Nmap 对主机详细信息(端口、操作系统等)进行指纹识别
-
使用 Shodan.io 查找外部物联网设备,包括防火墙、监控摄像头系统和服务器
到本章结束时,你将能够使用这些工具帮助进行 DFIR 调查,收集有关本地和远程连接设备的信息,如 IP 地址、设备类型、操作系统详细信息、开放端口等。
在 Kali Linux 中使用 netdiscover 识别网络上的设备
我们将从使用一个非常简单的工具——netdiscover开始网络主机发现。netdiscover 工具已在 Kali Linux 中预装;不过,几乎任何版本的 Linux 都可以通过以下命令安装它:
sudo apt install netdiscover
netdiscover,顾名思义,用于通过广播地址解析协议(ARP)请求,在有线或无线网络上发现在线主机。netdiscover 易于使用的一大特点是它允许用户自动扫描整个 IP 地址范围或子网,从而检测在线主机。netdiscover 的另一个非常有用的功能是它可以显示媒体访问控制(MAC)地址以及设备或网络接口卡(NIC)的厂商信息,这在区分终端用户、服务器和网络设备时,能使主机发现变得更加简单。
在开始使用 netdiscover 之前,我们应该注意扫描设备上的网络接口信息。这还可以告诉我们 IP 地址、子网掩码和网络范围。
为此,输入以下内容:
ifconfig
在图 14.1中的以下输出中,我们可以看到有两个接口,分别是以太网(eth0)和回环(lo)接口:

图 14.1 – ifconfig 命令输出
在eth0接口的详细信息中,我们可以看到我的 IP 地址是10.10.170.105,子网掩码是255.255.0.0。我们将使用这个接口与netdiscover命令。
现在我们知道了将使用的接口和 IP 范围,我们可以继续使用 netdiscover 来识别网络主机:
-
我们将首先启动 netdiscover,并使用帮助选项查看 netdiscover 中所有可用的选项和开关。为此,请键入以下命令:
sudo netdiscover –h
要使用 netdiscover 自动扫描网络中的设备,我们将使用–r选项来指定子网或 IP 地址范围。

图 14.2 – netdiscover 选项
-
我将使用以下命令扫描我的整个10.10.0.0网络范围:
netdiscover –i eth0 –r 10.10.0.0/16
注意
请确保使用的是你自己的网络范围,因为你的范围可能与我的不同。
- 现在,按Enter键。按下Enter后,netdiscover 将开始运行。请等待片刻,直到它完成并编制出包含 IP、MAC 地址和厂商/主机名的列表,如下图所示:
注意
为了保护隐私,我已屏蔽了部分 MAC 地址。

图 14.3 – netdiscover 输出
在前述输出中,我们可以看到 netdiscover 已捕获468个 ARP 数据包并检测到151个活动主机,列出了它们的 IP、MAC 地址以及厂商/主机名。
现在我们来看一下如何使用 Nmap 来执行主机发现。
使用 Nmap 查找网络中其他主机和设备
由戈登·里昂(Gordon Lyon),也就是Fyodor,创建的Nmap是进行漏洞评估和渗透测试时最常用的网络扫描和枚举工具之一。它在数字取证和响应(DFIR)任务中也非常有用,特别是在调查需要披露网络上主机详细信息的网络通信时。
Nmap 也是一个名声在外的工具,曾出现在诸如黑客帝国重装上阵、谍影重重、惊天危机 4、龙纹身的女孩等热门电影中,并且还在非常受欢迎的电视剧《Mr. Robot》中出现。
Nmap 是一个命令行界面(CLI)工具,已预装在 Kali Linux 中。Windows 和 Mac 设备也有图形用户界面(GUI),但我个人认为,使用 CLI 可以访问更多选项和功能。
Nmap 有许多开关,并且需要了解端口、传输控制协议/互联网协议(TCP/IP)协议和 TCP 标志。如果你对这些主题不熟悉,请在继续之前阅读相关资料。有关 TCP 的更多信息,请访问这个链接:en.wikipedia.org/wiki/Transmission_Control_Protocol。
让我们按照以下步骤使用 Nmap 查找网络中其他主机和设备:
-
要启动 nmap 并查看可用的开关和选项,我们可以使用以下命令:
sudo nmap –h
如前述输出所示,nmap 的一般格式和用法是nmap [扫描类型] [选项] {****目标规范}。

图 14.4 – nmap 帮助选项输出的一个片段
- 首先,我将尝试使用 –sn 选项进行基本的 ping 扫描,以列出可以进一步扫描的主机,就像 netdiscover 在前一节中发现我网络中的在线主机一样。
要执行基本的 ping 扫描,我们可以输入 sudo nmap –sn,后跟网络范围,在我的情况下是 10.10.0.0/24。你的网络范围可能不同,所以请确保使用自己的网络范围。
-
我们还可以使用 –v 选项以原样列出 nmap 中的输出:
sudo nmap –sn –v 10.10.0.0/24
以下截图显示了前述 Nmap 命令的输出。

图 14.5 – nmap ping 扫描输出
如果我们向下滚动 nmap 输出,可以看到通过 ping 扫描发现的在线主机列表。尽管没有 netdiscover 那么有条理,nmap 仍然显示了相同的结果,如下所示。

图 14.6 – nmap 输出显示已发现的存活主机
在这一节中,我们学习了 Nmap 的基础知识,现在我们已经能够使用这个命令行工具扫描内部网络。
现在让我们进一步进行 Nmap 扫描,学习如何识别已发现设备的端口和服务。
使用 Nmap 获取主机详细信息指纹
现在我们已经熟悉了如何查看 nmap 开关并运行基本扫描,让我们通过发现运行中的服务、端口,甚至被发现主机的操作系统,来进行主机枚举,这可能是我们 DFIR 调查中的有用线索。
如前一节所示,一旦你熟悉了可以使用的各种开关,nmap 的使用相当简单。可以再次运行 sudo nmap –h 命令来查看可用的开关和选项。
对于我们的目的,nmap 中的 –A 选项在枚举主机或整个网络时可以执行以下任务:
-
操作系统检测
-
服务版本检测
-
脚本扫描
-
路由追踪
–A 选项在对整个网络运行时可能需要较长时间,因此我将其仅针对一台主机运行,这台主机在我之前对我的网络进行 ping 扫描时被显示为存活。
要运行此服务扫描,我将执行以下命令:
sudo nmap –A –v 10.10.10.10
以下截图显示了 Nmap 中 -A 选项的输出。

图 14.7 – nmap 服务扫描
滚动浏览服务扫描输出,nmap 还显示了开放端口列表,并识别了正在运行的服务及其版本,如下所示。

图 14.8 – nmap 输出显示开放端口和正在运行的服务
在继续浏览同样的输出时,nmap 显示了主机的详细信息,例如主机(目标)名称、域名和计算机名,如图所示。出于隐私原因,我已经模糊了部分输出。

图 14.9 – nmap 输出显示主机信息
滚动到 nmap 输出的几乎底部,我还可以看到主机操作系统的详细信息,如图所示:

图 14.10 – nmap 输出显示主机操作系统详情
在前面的输出中,我们可以看到主机是运行 Windows 10(1507 - 1607)的戴尔设备。
我们现在已经知道如何扫描内部网络,并使用 Nmap 来识别活动系统及其详细信息,如操作系统、MAC 地址、正常运行时间,甚至开放端口。
现在让我们走出本地网络,学习如何使用 Shodan 定位和识别外部及物联网设备。
使用 Shodan.io 查找包括防火墙、监控摄像头和服务器在内的物联网设备
快速想象一个允许你搜索任何内容的网站。虽然我不是预言家,但我猜你会想到 Google。也许我还是老老实实做我的本职工作吧。就像 Google 扫描和抓取互联网上的主要部分,索引网站和资源一样,Shodan 采取类似的方法来扫描互联网和 IP 地址,并索引可以通过网络访问的设备的有用信息。
物联网(Internet of Things)设备是指那些能够连接到互联网,但可能不是传统计算机(如笔记本电脑和台式机)的设备。物联网设备包括智能设备,如可穿戴的健身设备和追踪器、智能微波炉和烤箱、亚马逊 Echo、门铃摄像头,甚至智能汽车。物联网设备还扩展到工业系统,被称为工业物联网(IioT)设备。比如,一家大型饮料制造公司就需要有系统和设备来计算瓶子、瓶盖和标签,检查温度,并促进需要通过可编程逻辑控制器(PLCs)、监控控制与数据采集(SCADA)和工业控制系统(ICS)进行网络连接的传感器之间的通信。这适用于每个工业领域,甚至是核电厂!将这种操作技术(OT)与 IioT 结合在一起的情况也很常见,这就是OT-IIoT,因为 OT 设备可以通过 IIoT 系统进行远程控制。
这里的问题在于确保物联网(IoT)和工业物联网(IIoT)设备的安全性,以及设备访问权限,尤其是远程访问。作为一名渗透测试员,我经常使用Shodan.io来查找属于不同类型公司的系统,尤其是大型组织。在进行数字取证和事件响应(DFIR)调查时,这项技能也非常有用,因为关于外部设备和物联网设备的信息可以通过 Shodan.io 很容易地找到。
Shodan 团队声称,Shodan 可以找到所有连接到互联网的设备,并揭示关于设备的重要元数据。这是有益的,因为它允许公司使用 Shodan 查找其设备是否可以被公开访问,但同样也将这些信息展示给攻击者。这并不是说 Shodan 是一个坏的或恶意的工具,因为还有数百种其他工具可以一起使用,泄露相同的信息。Shodan 只是让这一过程变得更简单。
Shodan 是一项付费订阅服务;然而,你可以免费使用它,虽然只能获得非常有限的结果,或者注册一个免费账户,在进行物联网和工业物联网搜索时可以访问两页结果。如果你不想购买他们的订阅套餐,可以等他们的年终促销(通常在黑色星期五和感恩节期间),这时可以以 5 美元的价格购买一个个人使用的限时终身订阅。对于这个练习,我将使用 5 美元的付费订阅,但我鼓励你注册该网站,这样至少可以每次访问两页结果。
使用 Shodan 过滤器进行物联网搜索
Shodan 搜索不像 Google 搜索那样直观,但进行 Shodan 过滤器搜索并查找特定设备并不难。你可以查看 Shodan 过滤器参考文档,地址是 beta.shodan.io/search/filters。
这是你可以使用的一些基本搜索过滤器:
-
product:搜索硬件制造商或软件开发商的名称
-
hostname:根据搜索的主机名查找设备
-
os:按操作系统搜索设备
-
port:查找设备的开放端口
-
city:查找特定城市内的设备
-
country:查找特定国家内的设备
-
geo:根据 GPS 坐标查找设备
让我们来试试几个搜索。我住在加勒比海的一个小岛上,叫做特立尼达。如果我想查看特立尼达岛内的设备列表,可以在 Shodan 搜索框中使用国家过滤器,后跟国家代码:
country:"TT"
如果不确定自己国家的代码,简单的网络搜索应该能帮你找到答案。我发现 www.countrycode.org/ 这个网站非常有用。
在下方的截图中,我们可以看到国家过滤器的结果,其中TT代表特立尼达和多巴哥的国家代码。在屏幕左侧,我们可以看到找到的124, 921个物联网设备的结果,下面列出了顶级城市,每个城市列出了设备的数量,随后是顶级开放端口、顶级组织等信息。在屏幕的中间和右侧,我们可以看到实际的 IP 地址和这些设备的信息。

图 14.11 – Shodan 国家过滤器结果
由于隐私和法律问题,我不会点击这些结果,因为这会将我们带到另一个页面,显示公司和主机的详细信息,甚至公开设备的开放端口和操作系统。请务必在继续操作之前,进行网络搜索并查看您所在国家和州的法律。如果不确定,您可能希望先联系执法机关或了解当地法律和法规的专家。
让我们尝试另一种搜索,使用 国家 过滤器和 产品 过滤器,搜索特立尼达的 Fortinet 防火墙,输入如下内容:
country:"TT" product:"Fortinet"
在以下搜索结果中,我们可以看到 Shodan 返回了特立尼达的 54 个 Fortinet 防火墙结果。再次出于法律和隐私的考虑,我不会点击 IP 地址,因为这将显示比主页列出的更多设备细节。

图 14.12 – 特立尼达 Fortinet 防火墙的产品过滤器
我们还可以使用 Shodan 查找特定的服务器。假设我想搜索使用 2.2.3 版本的 Apache Web 服务器。可以通过使用 服务器 过滤器并输入服务器版本来实现,输入如下内容:
country:"TT" apache 2.2.3
在这里,我们看到 Shodan 显示了 11 个结果,主要位于特立尼达的西班牙港和查瓜纳斯。

图 14.13 – 使用 Shodan 查找 Web 服务器
在我们的最后一次搜索中,我想使用 Shodan 搜索 CCTV IP 摄像头。为此,我们可以再次使用 产品 过滤器。我将指定 海康威视 摄像头系统,因为这是一个非常常见的 CCTV 系统,输入如下内容:
country:"TT" product:"Hikvision IP Camera"
如最终示例所示,Shodan 返回了 7,689 个海康威视摄像头实例。如果你的 DFIR 调查需要监控摄像头录像,这也会非常有用,它能提醒你摄像头可能的位置,甚至可能提供一个公司名称,你可以联系并请求查看他们的录像。

图 14.14 – 使用 Shodan 发现 CCTV 摄像头
随时尝试更多 Shodan 过滤器,但请检查适用的当地法规,确保这些搜索是合法的。
总结
在本章中,我们了解了网络发现和枚举工具 netdiscover 和 nmap,并学习了如何扫描网络以寻找开放的主机,并查看 IP 地址、MAC 地址和主机名等详细信息。我们还进一步使用 Nmap 探索更多主机细节,如开放端口、正在运行的服务及其版本、计算机名称和域名。接着,我们使用 Shodan.io 查找 IoT 设备,并通过各种搜索过滤器查找防火墙、服务器和 CCTV 摄像头。
这些工具对于任何收集本地和远程设备信息的人来说,尤其是在网络 DFIR 调查中,都是非常有用的。
接下来,我们将介绍一款叫做 Xplico 的 网络取证分析工具 (NFAT)。下章见。
第十五章:使用 Xplico 进行数据包捕获分析
在本章中,我们将介绍 Xplico,它是一款自动化的网络取证分析工具(NFAT)。Xplico 可以在 Kali Linux 中找到;然而,我发现,在过去的几个版本(2019-2022 年)中,尝试运行 Xplico 时会遇到一些问题,这可能是由于 Kali 本身的更新所致。
虽然我会为那些有幸能够顺利运行 Xplico 的人解释如何在 Kali Linux 中启动 Xplico,但对于那些在 Kali 本身中运行 Xplico 时可能遇到困难的人,我们将使用运行 DEFT Linux 8.1 的虚拟机来运行 Xplico。
本章将涵盖以下主要主题:
-
在 Kali Linux 中安装 Xplico
-
在 VirtualBox 中安装 DEFT Linux 8.1
-
下载样本分析文件
-
在 DEFT Linux 中启动 Xplico
-
使用 Xplico 自动分析网页、电子邮件和语音流量
在 Kali Linux 中安装 Xplico
按照以下步骤在 Kali Linux 中安装 Xplico:
-
如果 Xplico 没有包含在你当前使用的 Kali Linux 版本中,你可以首先更新 Kali Linux,并通过输入以下命令安装 Kali 取证仓库:
sudo apt update && sudo install kali-linux-forensics -
然后,通过输入以下命令更新你的 Kali:
sudo apt update -
一旦 Kali 更新完成,使用以下命令在 Kali 中安装 Xplico:
sudo apt-get install xplico -
当提示你点击Yes并下载和安装必要的文件时,按Y键。
接下来,我们需要启动 Apache 和 Xplico 服务。
-
输入以下命令启动apache2服务:
sudo apache2 start -
通过输入以下命令启动 Xplico 服务:
sudo xplico start -
要以 root 用户的身份完全管理员权限运行 Xplico,请输入以下命令:
sudo /etc/init.d/xplico start -
在搜索框中输入Xplico并点击第一个 Xplico 选项:

图 15.1 – Xplico 在搜索菜单中的选项
- Xplico 界面将在浏览器中打开。你也可以手动输入http://localhost:9876/,在你选择的浏览器中打开。
如果前面的步骤不起作用,你可以使用 Xplico 在 DEFT Linux 中,我们将在下一节进行介绍。
在 VirtualBox 中安装 DEFT Linux 8.1
安装 DEFT Linux 非常简单,只需几分钟。我们很快就能启动并运行 Xplico。对于那些能够在 Kali Linux 中启动 Xplico 的用户,你可以跳过这个过程,直接进入下载样本分析文件部分,在那里我们将下载并开始使用 Xplico 分析样本文件。
对于那些选择安装 DEFT 以便使用 Xplico 的用户,让我们毫不拖延地开始吧:
-
DEFT 非常用户友好,基于一个名为 Lubuntu 的轻量级 Ubuntu 版本。你可以在
archive.org/details/deft-8.2下载 DEFT Linux 的 ISO 镜像文件。 -
下载完成后,打开 VirtualBox 并点击新建选项来创建一个新的虚拟机,如下所示。

图 15.2 – VirtualBox 中的“新建”选项
- 在相关字段中输入详细信息,如下图所示:

图 15.3 – 新虚拟机详细信息
我为 DEFT 虚拟机分配了 6 GB 的内存。

图 15.4 – VirtualBox 内存分配
-
对于硬盘选择,选择立即创建虚拟硬盘选项,并点击创建。
-
对于硬盘文件类型选择,选择 VDI(VirtualBox 磁盘映像)选项并点击下一步。
-
对于物理硬盘上的存储选择,选择动态分配选项,点击下一步,然后点击创建。
-
接下来,点击 VirtualBox 管理器窗口中的 DEFT Linux 条目,然后点击绿色的开始按钮:

图 15.5 – VirtualBox 管理器窗口中的 DEFT 详细信息
- 接下来,点击选择启动 磁盘窗口右下角的黄色文件夹图标,选择 DEFT ISO 镜像。
注意
还不要点击开始。

图 15.6 – 虚拟光盘文件选择
- 然后,点击蓝色的添加按钮。

图 15.7 – 光盘选择
- 现在,浏览到你下载的 deft-8.2.iso 文件所在的文件夹,点击该文件,然后点击打开。

图 15.8 – 选择 DEFT.iso 文件
现在你应该在磁盘选择窗口中看到 deft-8.2.iso 文件。
- 点击deft-8.2.iso文件,然后点击选择按钮:

图 15.9 – 选择光盘
- 一旦选择完成,你应该能够在选择启动磁盘窗口中看到 deft-8.2.iso 文件。现在可以点击开始按钮启动 DEFT Linux 8.2。

图 15.10 – 选择启动磁盘窗口
- 一旦完成所有先前的步骤,你将看到 DEFT Linux 启动屏幕。选择DEFT Linux 8 Live选项并按 Enter。

图 15.11 – DEFT Linux 启动画面
所有进程加载完毕后,你现在可以访问 DEFT Linux 桌面,如下所示。

图 15.12 – DEFT Linux 桌面界面
希望你已经顺利到达这里。继续分析之前,我们现在先下载我们的样本文件以供分析。
下载样本分析文件
现在,让我们下载三个样本文件进行 Xplico 的自动化分析。我们将下载三个样本数据包捕获(.pcap)文件进行分析。所有三个文件和其他许多文件可以在wiki.wireshark.org/SampleCaptures找到;不过,您可以通过以下直接链接立即下载这三个必需的捕获文件:
-
http_with_jpegs.cap.gz:
wiki.wireshark.org/uploads/__moin_import__/attachments/SampleCaptures/http_with_jpegs.cap.gz -
smtp.pcap:
wiki.wireshark.org/uploads/__moin_import__/attachments/SampleCaptures/smtp.pcap -
nb6-telephone.pcap:
wiki.wireshark.org/uploads/__moin_import__/attachments/SampleCaptures/nb6-telephone.pcap
现在我们已经下载了所有样本文件并准备好使用,最后,让我们启动 Xplico。
在 DEFT Linux 中启动 Xplico
我们在本章开头已经学习了如何在 Kali Linux 中启动 Xplico,现在让我们在 DEFT Linux 中做同样的操作:
- 在你的 DEFT Linux 虚拟机中,点击 DEFT 桌面左下角的 DEFT 菜单按钮,它看起来像是字母d旁边有一个黑色八号球。

图 15.13 – DEFT Linux 菜单按钮
DEFT 菜单将会打开。
-
点击Service选项,然后点击Apache start按钮。终端将会打开并启动该服务。
-
接下来,返回Service选项并点击Xplico Start按钮。终端将会打开并启动 Xplico 服务。
-
最后,我们可以通过点击DEFT菜单按钮/图标,向上导航到DEFT菜单,再横向选择Network Forensics菜单,最后选择Xplico来启动 Xplico,如下所示。

图 15.14 – 在 DEFT 中启动 Xplico
- Xplico 现在将在默认浏览器中打开,你也可以通过在网址栏输入localhost:9876来访问它。
重要提示
用户名和密码都是xplico(全小写)。

图 15.15 – Xplico 界面登录
现在我们已经登录到 Xplico,接下来让我们创建一个案例和会话来进行分析。
使用 Xplico 自动分析网页、电子邮件和语音流量
一旦我们在 Kali Linux 或 DEFT Linux 中启动了 Xplico,就可以开始创建和分析我们的 .pcap 文件。Xplico 拥有非常直观的用户界面,还允许单独管理案例和会话。在上传并自动分析 .pcap 文件之前,我们必须先创建一个案例和会话:
- 要创建一个新案例,点击 Xplico 窗口左侧的 新建案例 选项。

图 15.16 – Xplico 中的新建案例选项
- 接下来,给你的案例命名。我将我的案例命名为 CFSI-HTTP-2023,因为在这个案例中,我们将分析之前下载的 HTTP .pcap 文件:

图 15.17 – 案例名称创建
- 点击 创建 继续,然后点击已创建的案例名称以继续。如图所示,案例名称列出为 CFSIHTTP2023。

图 15.18 – 案例列表
- 现在新案例已经创建,我们必须创建一个新的会话。在 Xplico 的左侧菜单中点击 新建会话 按钮,如图所示。

图 15.19 – Xplico 中的新建会话
- 给你的会话起一个与案例名称不同的名称,然后点击 创建:

图 15.20 – 案例会话创建
- 创建案例会话后,点击红色文字列出的会话名称。如图所示,我的会话名称为 CFSIHTTPAnalysis:

图 15.21 – 案例会话详情
这将把我们带到 Xplico 的主窗口,在这里我们可以上传文件进行分析。
注意
对于每个下载的 .pcap 示例文件,你需要创建一个新的案例。创建新案例和会话时,随时可以根据需要查看本部分内容。
创建案例后,我们可以开始使用 Xplico 进行实际的数据包分析。
自动化的 Web 流量分析
在本节中,我们将使用 Xplico 执行自动化的 Web 流量和 HTTP 分析:
- 让我们继续进行 CFSIHTTPAnalysis 会话。在这个会话中,我们将分析 http_witp_jpegs.pcap 文件,该文件包含在我们下载的 http_witp_jpegs.gz 文件中。要提取 .pcap 文件,右键点击下载的 http_witp_jpegs.gz 文件,并点击 解压到此。
解压后,你将看到 http_witp_jpegs.pcap 文件与其他下载的文件一起列出,如下所示。

图 15.22 – 所有已下载并解压的示例文件
- 现在让我们返回浏览器中的 Xplico 网络界面,并点击 浏览… 按钮,位于 Pcap 集合 部分,如下所示。

图 15.23 – Xplico 中的 Pcap 集合部分
-
转到http_witp_jpegs.pcap并点击打开。
-
然后,在Pcap 集合部分点击上传按钮上传文件进行分析。文件上传可能需要几秒钟,这将以红色文字显示,如图所示。

图 15.24 – Pcap 文件解码
一旦文件被解码并分析完毕,您将在 Xplico 的会话数据区域看到解码完成的字样,如图所示。

图 15.25 – 解码完成
重要提示
上传并解码文件的过程也必须对每个.pcap文件进行。根据需要随时返回此部分。
- 为了分析我们上传的文件,我们将使用左侧菜单,这允许我们检查网页、邮件、VoIP(语音传输协议)和其他工件。

图 15.26 – Xplico 分析菜单栏
- 让我们通过点击网页菜单并选择网站选项开始分析。Xplico 已经显示了访问过的网站列表。我们还可以点击每个网站进行访问。

图 15.27 – Xplico 解码的网站
- 让我们点击侧边菜单中的图像选项。我们可以看到,Xplico 已经为我们解码并处理了四张图像,如图所示。

图 15.28 – 解码后的图像
现在我们知道如何执行自动化 HTTP 分析并查找各种网页工件,包括已查看和下载的图像,接下来让我们使用 Xplico 进行一些自动化的 SMTP 和电子邮件分析。
自动化 SMTP 流量分析
让我们创建一个新案例来执行简单邮件传输协议(SMTP)分析。SMTP 用于发送电子邮件,分析 SMTP 流量可以揭示邮件的发送者、接收者和其他详细信息,包括附件。所以,让我们开始创建新案例并进行 SMTP 流量分析:
-
对于本次练习,我已重复前面的步骤来创建一个新案例和会话。案例详情如下:
-
案例名称:CFSI-SMTP-2023
-
外部参考:SMTP 分析
-
会话名称:CFSI SMTP 分析 2023
-
-
一旦我们的案例和会话被创建,点击会话继续。

图 15.29 – SMTP 会话
- 现在我们可以浏览smtp.pcap文件并上传它进行处理、解码和分析。解码完成后,您将再次收到通知,如图所示。

图 15.30 – 解码完成
- 让我们点击侧边栏中邮件菜单下的电子邮件选项,以查看 Xplico 解码的内容。

图 15.31 – 解码的电子邮件
在前面的屏幕中,我们可以看到 Xplico 解码了从gurupartap@patriots.in发送到raj_deo2002in@yahoo.com的电子邮件。
- 如果我们点击SMTP这个词,如图 15**.31所示,我们可以查看电子邮件的内容,如图 15**.32所示。

图 15.32 – 解码电子邮件的内容
现在让我们继续进行另一项分析练习。
自动化 VoIP 流量分析
如果捕获并保存在.pcap文件中,Xplico 还可以解码 VoIP 流量。进行此分析,请按照以下步骤操作:
- 让我们再次创建一个新的案例和会话。
这里是案例和会话的详细信息:
-
案例名称:CFSI-Voice-2023
-
外部参考:CFSI Voice 分析
-
会话名称:CFSIVoice2023
- 一旦我们创建了案例和会话,我们就可以导航到并上传我们之前下载的nb6-telephone.pcap文件。

图 15.33 – 解码的 VoIP 文件
- 让我们点击Voip菜单栏中的SIP选项,查看 Xplico 揭示了什么。

图 15.34 – 解码的 VoIP 流量
- 正如之前所示,Xplico 已经自动解码了捕获的 VoIP 对话。您还可以点击通话持续时间以回放对话,如下面的截图所示。

图 15.35 – 解码的 VoIP 通话
您可能需要安装插件来播放音频文件。如图 15**.35所示,您将被提示自动安装相关插件。
摘要
在本章中,我们学习了如何在 Kali Linux 和 DEFT Linux 中使用 Xplico,这两者我们分别在 VirtualBox 中单独安装。对于那些在 Kali 中安装 Xplico 时遇到问题的人来说,DEFT 可以是一个很好的替代品,它还提供了许多其他工具,如果你愿意的话可以去探索。我们学到了每个数据包捕获(.pcap)文件分析都需要创建一个新的案例和会话,并且 Xplico 会自动解码和分析.pcap文件,以揭示对我们 DFIR 调查有用的证据。最后,我们学会了如何使用 Xplico 查找有用的证据,比如访问的网站、查看和下载的图片、电子邮件和 VoIP 对话。希望你喜欢使用这个自动化工具。我们将在下一章中介绍其他 NFAT 工具。下一章见。
第十六章:网络取证分析工具
我们到了最后一章。我相信“强势完成”这一概念,所以让我们继续保持节奏,通过一些网络取证分析工具(NFAT)来继续我们的 DFIR 之旅,我相信你会觉得这些工具非常有用。
到目前为止,我们已经进行了相当多的获取和分析工作,包括硬盘、存储、RAM 和交换文件分析,恶意软件分析,甚至是一些网络数据包分析,目的是获取、记录和分析证据,以期找到或恢复证据。然而,让我们进一步分析数据包、协议和网络通信,因为它们也可能是有用的证据,有助于我们在 DFIR 调查中找到线索。
认识到一些事件和犯罪发生在互联网或局域网(LAN)上,捕获和分析网络流量应该是我们调查过程中不可或缺的一部分,有助于发现可能帮助我们更好地理解事件的证据,指向事件的起源,甚至在某些情况下,如果怀疑事件不是孤立的,还能帮助扩大调查范围。
本章将涵盖以下主题:
-
使用 Wireshark 创建数据包捕获(PCAP)文件
-
使用 NetworkMiner 进行数据包分析
-
使用 PcapXray 进行数据包分析
-
使用packettotal.com进行在线 PCAP 分析
-
使用apackets.com进行在线 PCAP 分析
-
报告与展示
使用 Wireshark 捕获数据包
Wireshark是一款非常流行且知名的网络和数据包分析工具,广泛用于网络故障排除。它在 Kali 中预装,并且一旦了解了过滤器、协议和颜色代码,使用起来相对简单。
如果你是 Wireshark 协议分析器和数据包分析的新手,你可以在网上找到一些很好的教程,包括官方文档:www.wireshark.org/docs/wsug_html_chunked/ChapterCapture.xhtml。
首先,让我们看看我们的网络接口是什么,然后开始使用 Wireshark:
- 启动 Wireshark 后,我们需要指定接口来捕获数据包。要在 Kali Linux 中查看你的接口信息,打开终端并输入ifconfig:

图 16.1 – ifconfig 输出
在前面的屏幕截图中,ifconfig命令显示了两个接口的输出。我将使用的接口是我的以太网接口,列为eth0,另外还有一个回环接口,列为lo。
请注意
如果你使用无线网络接口卡(NIC)来捕获接口,它将显示为wlan0。
-
现在我们知道了将用于捕获数据包和嗅探网络的接口,我们可以通过在终端中输入sudo wireshark来启动 Wireshark。
-
你也可以通过点击应用程序 | 09-嗅探与伪装 | Wireshark来运行 Wireshark:

图 16.2 – 在嗅探与伪装菜单中查找 Wireshark
- 启动 Wireshark 后,如前所述,我们需要选择一个接口来开始捕获数据包。在这个实例中,我的eth0接口被高亮显示,但请确保选择你将用于捕获数据包的接口。

图 16.3 – Wireshark 接口
- 选择接口后,我们可以通过点击蓝色鲨鱼鳍图标或点击捕获 | 开始来开始数据包捕获过程:

图 16.4 – 在 Wireshark 中启动数据包捕获过程
点击开始按钮后,数据包捕获过程会自动开始。

图 16.5 – Wireshark 显示 eth0 上的流量
在前面的截图中,我们可以看到 Wireshark 将显示分为三个部分,顶部的主部分包含以源、目标、协议等信息为行的内容,所有信息都进行了颜色编码。
- 要停止捕获,点击顶部的停止按钮(红色方块图标):

图 16.6 – Wireshark 停止捕获按钮
- 请确保通过点击文件 | 另存为来保存数据包捕获文件。

图 16.7 – 在 pcapng 文件中保存流量
- 我们还可以使用特定的 Wireshark 过滤器来排序数据,从而呈现数据包的逻辑性和更简洁的视图。
Wireshark 过滤器
你可以在www.networkdatapedia.com/single-post/2019/01/29/Top-10-Wireshark-Filters查看所有 Wireshark 过滤器的列表。
要为具有特定源或目标 IP 地址的数据包设置过滤器,我们使用ip.addr==a.b.c.d格式,如下例所示:
ip.addr==172.16.79.21
以下图显示了前面ip.addr过滤器的输出:

图 16.8 – ip.addr Wireshark 过滤器输出
-
要为特定的 TCP 端口设置过滤器,我们可以使用tcp.port==过滤器,如以下示例所示:
tcp.port==443
以下图显示了前面tcp.port过滤器的输出:

图 16.9 – tcp.port 过滤器
- 要设置一个过滤器以搜索特定的单词、字符串甚至用户,可以使用 frame contains 过滤器。例如,我访问了一个网站(www.malware-traffic-analysis.net),该网站托管了恶意软件感染的样本 PCAP 文件,并下载了一个样本 PCAP 文件。要搜索 malware 这个词,我将使用 frame contains malware 过滤器。
下图展示了 frame contains malware 过滤器的输出:

图 16.10 – frame contains malware 过滤器输出
-
要设置一个过滤器以查看两个 IP 之间的对话,我们使用 ip.addra.b.c.d && ip.addrw.x.y.z 格式,如下所示:
ip.addr==172.16.79.94 && ip.addr==172.16.0.1
下图展示了前述过滤器的输出:

图 16.11 – 设备间的数据包交换
注意
你可以在这里找到有关 Wireshark 过滤器的更多信息:wiki.wireshark.org/DisplayFilters。
使用 Wireshark 确实需要花费一些时间来学习,但我向你保证,它不仅对我们作为 NFAT 在 DFIR 方面的用途非常有用,而且还是一款非常好的网络故障排除工具。接下来我们将介绍一个类似的工具,它以更易读的格式展示数据包分析结果。
使用 NetworkMiner 进行数据包分析
对于一些新接触协议分析器的人来说,分析来自 Wireshark 的捕获数据可能会有些挑战,因为这需要了解协议、过滤器并能够跟踪数据流(所有这些随着实践会变得更容易)。
NetworkMiner 是一个易于使用的数据包捕获查看器,某些用户可能会发现它比 .packet 捕获(PCAP)分析更易于使用,因为它通过解析 PCAP 文件,将找到的数据提取并分类为主机(带有操作系统指纹)、文件、图像、消息、会话等。
NetworkMiner 提供免费版和付费专业版,可以安装在 Windows 和 Linux 上。
我们现在将下载 NetworkMiner,使用 Wine 安装它,然后分析一个样本 PCAP 文件:
- 你可以通过此链接访问 NetworkMiner 的官方网站:
www.netresec.com/?page=NetworkMiner。
你还可以在 www.netresec.com/?download=NetworkMiner 下载安装文件。
- 下载文件后,右键点击文件并选择 Extract Here 选项。这将提取 NetworkMiner_2-7-3 文件夹。打开该文件夹查看提取的内容。

图 16.12 – 提取的 NetworkMiner 文件
- 运行 NetworkMiner 非常简单,因为我们已经安装了 Wine。只需双击 NetworkMiner.exe 即可打开程序。

图 16.13 – 在 Kali Linux 的 Wine 中运行的 NetworkMiner 界面
-
要查看更多文档和视频,并访问示例 PCAP 文件,请访问此链接:
www.netresec.com/?page=Resources。 -
在本次分析中,我们将使用来自
wiki.wireshark.org/uploads/__moin_import__/attachments/SampleCaptures/http_with_jpegs.cap.gz的 PCAP 文件,您可以将其下载并保存到您的 Kali 机器上。该文件之前在第十五章中,用于与 Xplico 一起使用,因此您可能已经将其保存到您的下载文件夹中。
我决定使用这个文件,这样我们可以比较 Xplico 和 NetworkMiner 在结果上有什么不同。
- 我已经将文件下载并解压到我的下载文件夹中。在 NetworkMiner 程序中,点击文件和打开,然后浏览到Downloads文件夹中的http_witp_jpegs.cap文件(或者您下载文件的位置)。点击该 PCAP 文件,然后点击打开。

图 16.14 – 在 Kali 中浏览样本文件
- 点击打开后,NetworkMiner 会加载并分析该文件,并自动为我们分类结果,如下所示:

图 16.15 – 分析和分类的样本 PCAP 文件的结果
-
一开始,我们会在主机标签中看到有关设备的信息。.pcap文件包含每个类别的多个命中:
-
主机 – 4
-
文件 – 11
-
图片 – 5
-
消息 – 0
-
凭证 – 8
-
会话 – 19
-
DNS – 0
-
参数 – 257
-
-
在主机标签中,点击 IP 地址旁的展开(+)按钮,即可查看每个主机的详细信息。我们可以展开第二个 IP 地址(10.1.1.1)来查看详细信息。我们还可以展开其他项,如操作系统,外发会话和主机详细信息,以查看 NetworkMiner 自动解析的所有信息。

图 16.16 – 主机标签中的结果
在前面的截图中,我们可以看到诸如 MAC 地址、NIC 制造商、操作系统(Linux)、开放端口、外发会话到服务器,甚至是主机详细信息,这些信息告诉我们该系统是运行在 Red Hat Linux 上的 Apache web 服务器。
- 接下来,让我们点击文件标签。我们可以看到多个条目和文件类型(html,xapc,和jpeg)。

图 16.17 – 文件标签列表
-
我们还可以打开这些链接并查看文件。右键点击index.xhtml文件并选择打开。这将在浏览器中打开.xhtml文件。你也可以对其他文件(如.jpeg文件)执行此操作。
-
点击图像标签。在这种情况下,NetworkMiner 已经找到了5张带预览图像。你也可以右键点击图像,选择打开图像来查看该图像。

图 16.18 – 图像标签
-
在消息标签中,有三条消息显示了源主机和目标主机,以及消息/电子邮件的发送者和接收者,如果我们向右滚动的话。
-
在凭据标签中,我们发现了一些非常有趣的证据。此标签显示了客户端和服务器的 IP 地址、操作系统类型、协议以及可能在该会话中使用的任何关联用户名和密码,这些密码很可能是未加密的明文密码。
-
会话标签显示了数据包捕获时设备之间的会话信息。
-
关键字标签/部分允许调查员输入单个关键字(字符串或十六进制格式),或从文本文件中添加关键字进行搜索,以查找结果列表。如果使用关键字,您可能需要重新指定一个关键字列表或文件,然后重新打开.pcap文件来使用 NetworkMiner。
如我们所见,NetworkMiner 是一个强大的数据包捕获分析工具,它通过自动解析和分类在.pcap文件中找到的信息,使得分析对调查员和网络人员来说更加简便。
我相信很多人会发现,在进行数据包分析时,NetworkMiner 比 Wireshark 更简单易用,因为其结果以更简洁、更易读的格式展示。请记住,NetworkMiner 的免费版有一些限制,这就是我们需要了解多个 NFAT 工具的原因。接下来,我们将介绍另一个工具——PcapXray。
使用 PcapXray 进行数据包捕获分析
与 NetworkMiner 类似,PcapXray是另一个强大而全面的数据包捕获分析工具。该工具的主要功能之一是识别恶意流量、隐蔽通信、网页流量,甚至是 Tor 流量。
现在,我们将在 Kali Linux 中安装并配置 PcapXray,然后开始分析数据包捕获文件:
-
让我们通过从 GitHub 克隆 PcapXray 来安装它,在终端中输入以下命令:
sudo git clone https://github.com/Srinivas11789/PcapXray.git
像往常一样,我已经将目录更改为桌面。当你将 PcapXray 克隆到桌面时,这会花费一些时间,因为文件的大小为 115MB。

图 16.19 – 将 PcapXray 克隆到 Kali
-
接下来,我们需要通过输入以下命令来安装graphviz:
sudo apt install graphviz
以下图示展示了前述命令的输出:

图 16.20 – 安装 graphviz
-
通过在终端中运行以下命令安装python3-pil.imagetk:
sudo apt install python3-pil python3-pil.imagetk
下图显示了前面命令的输出结果:

图 16.21 – 安装 python3-pil.imagetk
- 我们现在应该能够看到一个包含启动应用所需文件的 PcapXray 文件夹。使用ls命令列出并显示文件夹,然后使用cd PcapXray命令切换到PcapXray文件夹。

图 16.22 – 切换到 PcapXray 目录
-
在运行 PcapXray 之前的最后一步是通过输入以下命令安装应用所需的所有依赖项:
pip3 install -r requirements.txt
这可能需要一些时间,因为它将下载pyshark、stem、pyvis和其他所需的组件。

图 16.23 – 安装额外的 PcapXray 依赖项
-
在PcapXray目录内,我们现在可以通过输入以下命令启动 PcapXray GUI:
python3 Source/main.py

图 16.24 – 在终端中启动 PcapXray
-
首先,从
www.malware-traffic-analysis.net/2019/07/19/index.xhtml下载名为2019-07-19-traffic-analysis-exercise.pcap的文件进行分析。点击文件名下载它,然后解压文件以开始分析。当系统提示输入密码时,输入infected。 -
现在,我们可以返回到 PcapXray GUI,并浏览到提取的.pcap文件,指定输出目录,如下所示:

图 16.25 – PcapXray 文件上传界面
- 点击Analyze!按钮,接下来会花费一些时间来执行分析。当分析完成后,你应该能够点击Visualize!按钮,查看可视化结果。

图 16.26 – 自动化 PcapXray 分析结果
- 尽管在前面的截图中有些难以看到,它对源和目的地之间的流量进行了分析。点击InteractiveMagic!按钮,查看设备之间的不同视图及其相互关系。

图 16.27 – PcapXray InteractiveMagic 视图
这些视图可以帮助确定哪些设备彼此通信,无论是合法的还是隐蔽的,并帮助进行事件分析。
- 我们还可以通过点击流量可视化上方菜单中的All按钮,来缩小视图范围,选择我们希望查看的流量类型。

图 16.28 – PcapXray 全部流量视图
- 点击恶意,然后再次点击可视化!按钮。

图 16.29 – 恶意流量通信
在这里,我们可以看到标记为恶意的流量,以及与通信设备相关的 IP 和网关地址。如果我们将流量视图切换为 HTTPS,然后再次点击可视化!按钮,我们还可以看到 HTTPS 网页流量,从而开始重建或还原恶意软件、设备和网页流量在捕获时的场景。
现在让我们开始使用在线工具进行 PCAP 分析。我们从packettotal.com开始。
使用 packettotal.com 进行在线 PCAP 分析
现在让我们来看一个独特的在线自动化 PCAP 分析资源,它是免费提供给我们的。这将通过使用www.packettotal.com来完成。

图 16.30 – PacketTotal 文件上传界面
PacketTotal 完全免费,界面简单,用户可以将 PCAP 文件拖入上传区域,或者点击上传按钮上传并自动分析.pcap文件。唯一的限制是.pcap文件上传的大小限制为 50MB。
现在我们将下载一个示例数据包捕获文件,并将该文件上传到 PacketTotal 进行自动分析:
-
下载用于分析的样本文件,
mega.nz/file/6FciHZhY#bF1M-9kwmWLgUfQ_uq2_9k1DICIUkeY4lrT58X8XVXs。该文件名为SQL 注入测试.pcap。 -
点击上传按钮,浏览到已下载的文件,然后点击打开。

图 16.31 – PacketTotal PCAP 文件上传状态
- 在点击分析按钮之前,您需要点击我不是机器人以继续。

图 16.32 – PacketTotal reCAPTCHA 验证
- 一旦分析完成,PacketTotal 会提供一个非常详细的流量捕获视图。注意顶部的分类(恶意活动、可疑活动、连接和各种协议)。首先显示的是可疑活动页面。

图 16.33 – PacketTotal 可疑活动标签
我们可以看到HTTP::SQL_Injection_Attacker和HTTP::SQL_Injection_Victim警报立即被检测到!
- 接下来点击连接。
在这里,我们可以看到连接 ID以及发送者和目标IP,以便获得更多关于192.168.0.107 IP 地址的信息。

图 16.34 – PacketTotal Connections 标签页
- 最后,让我们点击Strange Activity。

图 15.35 – PacketTotal Strange Activity 标签页
- 欢迎继续在 PacketTotal 和其他工具上进行分析,使用在
www.malware-traffic-analysis.net/index.xhtml和www.malware-traffic-analysis.net/training-exercises.xhtml提供的免费 PCAP 文件。
让我们进入本章和本书的最后一个工具。
使用 apackets.com 进行在线 PCAP 分析
在我们的最后一个练习中,让我们看看另一个在线数据包分析工具,网址为apackets.com/。那么,让我们开始这个练习吧:
- 让我们从
www.malware-traffic-analysis.net/2022/06/07/index.xhtml下载一个示例文件。这个文件的名称是Emotet-epoch5-infection-with-Cobalt-Strike-.pcap。

图 16.36 – A-Packets 文件上传界面
- 点击From Device按钮并浏览到下载的示例文件,以进行上传分析。

图 16.37 – A-Packets 文件上传状态
- 一旦 A-Packets 自动处理并分析了我们的.pcap文件,接下来会呈现一个非常详细并分类的分析结果,如下图所示:

图 16.38 – A-Packets 分析结果
如果我们向下滚动一点,我们应该能看到更多的结果,包括 DNS 和 DHCP 协议,甚至是通信中使用的以太网设备:

图 16.39 – 更多 A-Packets 分析结果
如果你看一下页面左侧的菜单,你会注意到有几个标签,其中一些标签旁边可能会有数字。这些数字表示每个项目的发现数量。
- 作为示例,让我们点击Connections标签页,它显示了所有连接到捕获数据包的本地机器的连接,如下所示:

图 16.40 – A-Packets Connections 标签页结果
如果你再向下滚动一点,你会看到一个展示通信设备地理位置的视图:

图 16.41 – A-Packets Connections 标签页通信图
- 现在,让我们点击Open Ports标签页,查看 A-Packets 发现的45项结果,如下所示:

图 16.42 – A-Packets 开放端口标签页发现
在前面的截图中,我们可以看到涉及此通信的各种 IP 地址的开放端口。
- 让我们继续查看服务器标签页,以查看服务器通信发现:

图 16.43 – A-Packets 服务器标签页
- 在服务器标签页中,我们可以看到 DNS 信息。让我们通过点击左侧菜单中的DNS标签,进一步深入查看 DNS 发现:

图 16.44 – A-Packets DNS 标签页发现
从前面的截图中查看 DNS 发现,我们可以看到许多不存在的域名出现在 DNS 条目列表中,这可能表明可疑的网页活动和通信,需要进一步调查。
如你所见,apackets.com 网站为我们提供了非常详细的封包捕获分析,尽管它是一个在线 NFAT 工具,但它应该成为你网络 DFIR 工具库的一部分。接下来,让我们简要介绍一下报告和展示部分,为本书画上句号。
报告与展示
每个人在创建和展示报告时可能有自己的风格。然而,通常的格式是典型的 PDF 格式分析报告。标题结构通常如下:
-
标题
-
目录
-
调查员和案件详情
-
工作范围
-
执行摘要
-
技术发现
-
附录
尽管这仍然是个人偏好,但通常会包括所有的发现、文档和截图,以确保充分披露。将包含所获证据、文档和发现的所有媒体交给客户也是一种常见做法,以确保保密性。
总结
恭喜!你已经读完了本书,或者说,跟我一起完成了 DFIR 的旅程,因为这是我们一起的最后一章!现在你已经能够使用 Wireshark 创建自己的 PCAP 文件,同时也可以选择某种工具,或者像我一样,使用本章中的所有工具,在进行网络取证时尽可能多地收集信息,使用 Wireshark、NetworkMiner、PcapXray、PacketTotal 和 A-Packets。
希望你喜欢这本书,并且在你的 DFIR 调查中能找到有用的信息。如果你有任何问题或需要建议,欢迎在 LinkedIn 上加我:tt.linkedin.com/in/shiva-parasram-87a66564。


浙公网安备 33010602011771号