20232304冯天悦数字取证实验一

数字取证综合实验指导书

本实验指导书覆盖 Kali 安装、Kali 内置取证工具实践(foremostdcfldd)、以及三种额外取证工具——内存取证(Volatility 3)文件雕刻取证(scalpel)Rootkit 检测(chkrootkit)——的安装与实战。所有步骤均可在你的 Kali 虚拟机中完成,并提供外部公开数据集的获取方式。


一、实验环境准备

1.1 Kali Linux 安装(简述)

如果你已经安装好 Kali 虚拟机,可跳过至 1.2。以下为推荐步骤(实验中无需重复操作,但报告需填写):

  1. 访问 kali.org 下载 VMware 或 VirtualBox 版本虚拟机镜像。
  2. 在虚拟机软件中导入 .ova 文件。
  3. 启动虚拟机,默认用户名/密码为 kali/kali
  4. 执行更新:sudo apt update && sudo apt upgrade -y
  5. 安装增强工具(VMware Tools / VirtualBox Guest Additions)以实现剪贴板共享等。
  6. 快照保存纯净环境。
    img
    记录:
  • 虚拟机平台:Kali Linux
  • Kali 版本号:2025.3
  • 分配内存/CPU:16GB RAM 32-Core-CPU

1.2 实验数据获取

本实验需要两份数据源:

数据 用途 获取方式
取证镜像 usb.img 文件雕刻、镜像验证、雕刻工具对比 自行生成(见 Task 1,Task 3 复用)
内存镜像 内存取证 CTF 试题获取 - Windows 内存镜像(见 Task 2)

说明:Task 3 的 scalpel 文件雕刻直接复用 Task 1 已生成的 usb.img,无需额外数据源。


二、Task 1:Kali 内置工具——foremost 与 dcfldd

目标:使用 Kali 预装的 foremost 和 dcfldd 两个磁盘取证基础工具,完成数据恢复与证据固定操作。

2.1 制作目标镜像(5 分钟)
在 Kali 终端生成一个 32MB 的 FAT32 镜像,并向其中写入测试文件后将其删除。

dd if=/dev/zero of=usb.img bs=1M count=32
mkfs.vfat usb.img

mkdir mnt_usb
sudo mount -o loop usb.img mnt_usb

# 放入一个 PDF 和一个 JPEG 文件
echo "This is a fake PDF header %PDF-1.4" > mnt_usb/readme.pdf
cp /usr/share/wallpapers/KaliTiles/contents/images/3840x2160.jpg mnt_usb/test.jpg

# 删除 readme.pdf,模拟数据丢失
rm mnt_usb/readme.pdf
sync
sudo umount mnt_usb
rmdir mnt_usb

该脚本实际运行结果如下图所示:
img

2.2 文件雕刻恢复(foremost,10 分钟)

# foremost 预装在 Kali 中,直接使用
foremost -v -o foremost_output usb.img

运行结果如下图所示:
img

查看恢复结果:

ls -R foremost_output/
file foremost_output/*/*

运行结果如下图所示:
img
记录:

恢复出的文件类型及数量:恢复出1个audit.txt文件和1个jpg文件

其中 readme.pdf 是否被恢复?(是/否)

foremost 输出目录结构(主要子目录名):foremost_output/jpg

问题 1:foremost 基于什么原理恢复文件?为什么删除后仍能恢复?

foremost 基于文件头和文件尾的标志恢复文件。文件头和文件尾的标志是文件系统在写入文件时添加的,即使文件被删除,这些标志仍然存在。foremost 通过搜索这些标志来恢复文件。

2.3 镜像完整性校验(dcfldd,10 分钟)
dcfldd 是 dd 的增强版,支持哈希计算。用它为 usb.img 生成校验值并验证。

# 计算整个镜像的 SHA-256
dcfldd if=usb.img hash=sha256 | grep -E "Total|SHA256"

运行结果如下:
img
再将图像复制一份,并修改副本中的一个字节,验证完整性。

cp usb.img usb_tampered.img
echo -n 'X' | dd of=usb_tampered.img bs=1 seek=1024 conv=notrunc
dcfldd if=usb_tampered.img hash=sha256 | grep -E "SHA256"

运行结果如下:
img
记录:

原始镜像 SHA‑256:448e41fcaf2f15a9404eb5dab811319dc9afdf9ef55a167ecdffbcd0ae7c3814

修改后镜像 SHA‑256:5607690ac129c797e51f1b325ba3a2e5b5e4c84311fcce2501e4c7ba4693393c

两次哈希值是否一致?

问题 2:dcfldd 与普通 dd 相比,在取证中有什么优势?为什么必须对原始镜像先计算哈希值?

dcfldd 支持哈希计算,而普通 dd 不支持。dcfldd 可以在不改变镜像内容的情况下计算哈希值,而 dd 不能。

三、Task 2:额外工具安装(一)——内存取证工具 Volatility 3

注意:Volatility 3 不是 Kali 预装工具(Kali 预装为 Volatility 2),需手动安装。
类别:内存取证工具
变更说明:原计划使用 DFRWS 2009 公开内存镜像,因该镜像内核过老(Linux 2.6),Volatility 3 无法解析其结构。最终改为使用 CTF 试题中提供的 Windows 内存镜像,Volatility 3 对 Windows 支持更为成熟,分析效果更好。

3.1 安装 Volatility 3

在 Kali 终端执行:

sudo apt update
sudo apt install -y pipx
pipx ensurepath
pipx install volatility3
vol --help   # 验证安装

安装结果如下:
img
img
Volatility 版本号:2.28.1

3.2 获取 Windows 内存镜像

说明:最初计划使用公开的 DFRWS 2009 内存镜像,但该镜像过于老旧(Linux 2.6 内核),Volatility 3 无法正确解析其结构。后续尝试使用自建 Kali 虚拟机快照,但 Linux 内存镜像涉及 ISF/符号表适配问题。最终改为使用 CTF 试题中提供的 Windows 内存镜像,Volatility 3 对 Windows 的支持更为成熟稳定,命令运行后更有成就感。

本实验使用的 Windows 内存镜像文件从 CTF 试题中获取,放置于家目录下:

ls -lh ~/memory.img

3.3 内存取证实践

使用 Volatility 3 分析 CTF 中的 Windows 内存镜像(~/memory.img),逐步完成以下任务:

(a)识别操作系统版本

vol -f ~/memory.img windows.info.Info

img
记录操作系统信息(版本、内核、架构):Windows Server 2003 SP1 (NT 5.2 Build 3790),32 位(非 PAE),内核基址 0x80800000,系统根目录 C:\WINDOWS

(b)列出运行进程

注意windows.pslist.PsList 对本镜像返回为空(可能是 Volatility 3 对 Windows 2003 链表遍历兼容性问题),换用物理内存扫描插件 windows.psscan.PsScan 成功获取进程列表。

vol -f ~/memory.img windows.psscan.PsScan

img
运行结果如下(关键进程):

PID PPID 进程名 创建时间 备注
4 0 System N/A 系统内核进程
380 4 smss.exe 2018-12-07 会话管理器
580 380 winlogon.exe 2018-12-07 登录管理器
660 580 lsass.exe 2018-12-07 安全子系统
648 580 services.exe 2018-12-07 服务控制管理器
1992 1664 explorer.exe 2018-12-07 桌面进程
3660 1992 DumpIt.exe 2019-04-25 ⚠ 内存镜像导出工具

记录可疑进程名:DumpIt.exe(内存导出工具,用于抓取本内存镜像)

(c)查看网络连接

注意windows.netscan.NetScanwindows.netstat.NetStat 均报错 NotImplementedError: This version of Windows is not supported: 5.2 15.3790!,Volatility 3 的网络相关插件不完全支持 Windows Server 2003。

vol -f ~/memory.img windows.netscan.NetScan
# 报错:NotImplementedError
vol -f ~/memory.img windows.netstat.NetStat
# 同样报错

img
记录活跃连接/监听端口:Volatility 3 网络插件不支持 Win2003,网络连接信息未能提取

(d)查看命令行历史

vol -f ~/memory.img windows.cmdline.CmdLine

记录可疑命令行参数:cmdline 插件返回为空,未能提取命令行参数

(e)提取注册表信息

vol -f ~/memory.img windows.registry.hivelist.HiveList

img
记录关键注册表路径:Volatility 3 对 Win2003 的 hivelist 插件在本次测试中返回为空(注册表数据应存在于镜像中,可尝试 Volatility 2 的 hivelist 命令提取)

Volatility 3 对老旧 Windows 兼容说明:本镜像为 Windows Server 2003 SP1 (NT 5.2),属于较老版本。Volatility 3 对 Windows 8/10/11 支持最好,对 NT 5.x 系列部分插件(网络、注册表、命令行)存在兼容限制。针对此类场景,可考虑使用 Volatility 2(--profile=Win2003SP1x86)作为补充分析工具。

问题 A:根据进程列表分析,DumpIt.exe 进程的存在说明该内存镜像是通过 DumpIt 工具抓取的(PID 3660,创建于 2019-04-25,而其他进程均运行于 2018-12-07)。分析:(1)镜像生成方式为 DumpIt 工具;(2)系统环境为运行了大量 VMware Tools 相关服务的虚拟机(vmacthlp.exe、vmtoolsd.exe、VGAuthService.exe)。


四、Task 3:额外工具安装(二)——文件雕刻取证工具 scalpel

注意:scalpel 不是 Kali 预装工具,需通过 apt 安装。
类别:磁盘/文件系统取证

4.1 安装 scalpel

在 Kali 终端执行(scalpel 不在 Kali 预装软件包中):

sudo apt update
sudo apt install -y scalpel
scalpel -h   # 验证安装

img
记录 scalpel 版本:1.60

4.2 配置 scalpel 签名文件

scalpel 默认禁用所有文件类型,直接编辑系统配置文件取消注释目标类型:

sudo nano /etc/scalpel/scalpel.conf
# 或使用 GUI 编辑器:sudo mousepad /etc/scalpel/scalpel.conf

在文件中找到 pdfjpg 两行(大约在第 60–70 行),删除行首的 # 注释符,保存退出(Ctrl+XYEnter)。
img
img

说明scalpel.conf 中内置了数十种文件类型的签名规则,每行以 # 开头的为禁用状态。直接删 # 即可启用,无需复制文件。

4.3 复用 Task 1 的 usb.img 进行文件雕刻

直接使用 Task 1 中已生成的 usb.img(含已删除的 readme.pdf 和未删除的 test.jpg),运行 scalpel:

# 清理旧输出(如有)
rm -rf scalpel_output

# 运行 scalpel(-o 指定输出目录,-c 指定配置文件)
scalpel -c /etc/scalpel/scalpel.conf -o scalpel_output usb.img

img
运行后查看恢复结果:

ls -R scalpel_output/
file scalpel_output/*/*

记录:
img
scalpel 恢复出的文件类型及数量:恢复出 1 个 audit.txt 和 1 个 jpg 文件(00000000.jpg,JPEG 3840×2160,JFIF 标准)

其中 readme.pdf 是否被 scalpel 恢复?(是/否)

scalpel 输出目录结构:scalpel_output/(含 audit.txt 和子目录 jpg-1-0/00000000.jpg)

说明:Task 1 中创建的 readme.pdf 并非真正的 PDF 文件,而是 echo "This is a fake PDF header %PDF-1.4" > mnt_usb/readme.pdf 写入的一行文本。虽然该字符串包含 %PDF-1.4,但文件头签名不在 foremost/scalpel 期望的偏移位置(文件开头),且文件内容过短、缺乏 PDF 交叉引用表等必要结构。因此 foremost 在 Task 1 中无法恢复该"PDF",scalpel 预期结果相同——这恰恰验证了文件雕刻工具并非简单字符串匹配,而是基于结构化的签名偏移与最小文件完整性判断。

问题 B:foremost 与 scalpel 均基于文件头/文件尾签名(magic bytes)进行文件雕刻,核心原理相同——在磁盘镜像中扫描已知文件类型的十六进制特征码,不依赖文件系统元数据,因此都能恢复已删除的文件。主要差异:(1)配置方式不同:foremost 通过命令行参数指定类型或使用默认配置,scalpel 必须编辑配置文件取消注释才能启用目标类型;(2)性能与精确度:scalpel 在高负载场景下更高效,支持更精细的最小文件大小控制;(3)foremost 输出子目录以扩展名命名(如 jpg/),scalpel 输出子目录以"类型-编号"命名(如 jpg-1-0/)。本次实验中两者恢复效果完全相同:均恢复出 1 个 jpg 文件,均无法恢复假 PDF。这说明对于正常结构文件两者能力相当,假 PDF 因缺乏合规文件结构(签名不在偏移 0、无交叉引用表、内容过短),两者都无法恢复——验证了雕刻工具并非简单字符串匹配。


五、Task 4:额外工具安装(三)——Rootkit 检测工具 chkrootkit

注意:chkrootkit 不是 Kali 预装工具,需通过 apt 安装。
类别:Rootkit 检测工具

5.1 安装 chkrootkit

在 Kali 终端执行:

sudo apt update
sudo apt install -y chkrootkit
chkrootkit -h   # 验证安装

img
img
记录 chkrootkit 版本:0.58b

5.2 Rootkit 检测实践

直接执行 chkrootkit 即可对系统进行全面的 rootkit 扫描,结果将滚动显示:

chkrootkit

运行结果如下图所示:
img

注意:chkrootkit 的检查过程依赖部分系统命令(如 lspsfind 等)。如果服务器已被入侵,这些系统命令可能也已被攻击者替换(植入木马版本),chkrootkit 的扫描结果将变得完全不可信——甚至连 ls 等基础文件查看命令的输出也不可信。因此,chkrootkit 最适合在系统刚安装后、尚未接入网络时建立基线扫描记录。

列出 chkrootkit 已测试的所有项目,可运行带有 -l 参数的命令:

chkrootkit -l

运行结果如下图所示:

img

在测试过程中如需在屏幕上看到更详细的检测信息,可使用 -x 参数进入专家模式(expert mode),显示所有检测结果:

chkrootkit -x

运行结果如下图所示:

img

记录:

检测项目总数(-l 列出数量):69

-x 专家模式是否比普通模式输出更多细节?是,-x 专家模式对每个检测项输出详细的检查步骤和中间结果(如搜索路径、匹配模式、比对命令返回值等),而普通模式仅输出最终结论(not infected / not found / WARNING)。

扫描结果中是否发现可疑 rootkit?否,未发现已知 rootkit。但出现两处 WARNING:(1) 可疑文件/目录——均来自 Debian 软件包(如 hashcat/.gitkeep、python3-numpy/.f2py_f2cmap 等),属于误报;(2) sniffer 检测——eth0 和 eth1 上发现 NetworkManager 的 PACKET SNIFFER socket(PID 1034),属正常网络管理服务行为,非恶意嗅探器。

问题 C:chkrootkit 的工作原理是什么?为什么说"如果系统已被入侵,chkrootkit 的结果不可信"?

chkrootkit 通过一系列 shell 脚本和 C 程序检测已知 rootkit 的特征签名,包括:检查关键系统目录中是否存在已知 rootkit 的文件名;比对 pslsfindnetstat 等系统命令的输出是否包含异常字符串(某些 rootkit 会修改这些命令以隐藏自身);检查 /proc 文件系统中的异常条目;扫描网络接口是否处于混杂模式等。但由于 chkrootkit 本身依赖系统的 lspsgrep 等基础命令来执行检测,如果攻击者已经替换了这些命令(植入木马版本),这些被篡改的命令会向 chkrootkit 返回虚假信息,导致扫描结果完全不可信。因此,在取证场景中,建议从可信介质(如 Kali Live CD)启动后再运行 chkrootkit,或者使用静态编译的独立版本。


六、Task 5:综合取证分析

结合五个子任务,回答:

  1. 磁盘取证中的文件雕刻恢复(foremost 和 scalpel)能够恢复已被删除的文件,这与内存取证(Volatility 3)中看到的进程信息有何互补关系?分别总结每项取证技术能发现的关键证据类型。
    磁盘取证(文件雕刻)从持久化存储层面恢复已删除文件,可发现被刻意隐藏/销毁的文档、图片等静态证据;内存取证(Volatility 3)从易失性内存中提取进程列表、网络连接等动态运行时信息。两者互补:磁盘取证回答"曾存储过什么",内存取证回答"正在运行什么"。例如,若攻击者删除了恶意程序文件,磁盘取证可恢复该文件,而内存取证可发现其运行时进程痕迹(如 DumpIt.exe)。关键证据类型:磁盘取证——文档、图片、压缩包、可执行文件等文件级证据;内存取证——进程列表、内存字符串、网络连接、注册表缓存、命令行参数等运行时状态证据。

  2. 试比较 foremost 与 scalpel 两种文件雕刻工具在使用方式和文件恢复原理上的差异,分别描述各自的优势。
    foremost 优势:Kali 预装、开箱即用,默认配置覆盖常见文件类型,命令行参数简洁(-v -o 即可),适合快速应急响应。scalpel 优势:雕刻算法更高效,可精细控制最小文件大小和签名匹配严格度,配置文件集中管理所有类型规则,适合大规模批量恢复。两者原理相同(文件头/尾签名匹配),但 scalpel 提供更细粒度的调优能力,foremost 更注重易用性。


七、实验报告模板

以下为完整的、可直接填空的实验报告。请按要求填入你的实验记录。

# 数字取证综合实验报告

## 一、实验环境

### 1.1 Kali Linux 信息
- 虚拟机平台:_Kali Linux(VMware 虚拟机)_
- Kali 版本号:_2025.3_
- 内核版本:_Linux 6.x(Kali 2025.3 默认内核)_
- 分配内存/CPU:_16GB RAM / 32-Core CPU_

### 1.2 使用工具清单

| 工具 | 是否 Kali 预装 | 版本 | 安装方式 |
|------|----------------|------|----------|
| foremost | 是 | 1.5.7(系统预装) | 系统预装 |
| dcfldd | 是 | 1.3.4-1(系统预装) | 系统预装 |
| Volatility 3 | 否 | 2.28.1 | pipx 安装 (PyPI) |
| scalpel | 否 | 1.60 | apt 安装 |
| chkrootkit | 否 | 0.58b | apt 安装 |

---

## 二、Kali 内置工具实践:foremost & dcfldd

### 2.1 文件雕刻恢复
- 恢复出的文件类型及数量:_恢复出 1 个 audit.txt 和 1 个 jpg 文件_
- readme.pdf 是否恢复:_否_
- foremost 输出子目录:_foremost_output/jpg 和 foremost_output/audit.txt_

问题1:_foremost 基于文件头/文件尾签名(magic bytes)恢复文件。删除操作仅移除文件系统的目录索引项(inode/目录记录),文件数据块本身仍保留在磁盘上,直到被新数据覆盖。foremost 通过直接扫描磁盘原始数据与已知文件类型特征码做匹配,不依赖文件系统元数据,因此在数据块未被覆盖前即可恢复。_

### 2.2 镜像完整性验证
- 原始镜像 SHA-256:_448e41fcaf2f15a9404eb5dab811319dc9afdf9ef55a167ecdffbcd0ae7c3814_
- 篡改后镜像 SHA-256:_5607690ac129c797e51f1b325ba3a2e5b5e4c84311fcce2501e4c7ba4693393c_
- 两次哈希一致与否:_否_

问题2:_dcfldd 在 dd 的块复制基础上集成了实时哈希计算(SHA-256/MD5 等),可边复制边校验,无需事后单独运行 hash 工具,从而减少镜像被意外修改的风险。取证流程要求先对原始介质(或原始镜像)计算并记录哈希值(建立"证据基线"),后续所有分析都在只读副本上进行,最终比对哈希以证明在整个取证分析过程中证据未被篡改——这就是电子证据的"完整性证明链"。_



## 三、内存取证:Volatility 3

### 3.1 安装记录
- 版本:_2.28.1_

### 3.2 实验数据说明
- 内存镜像来源:_CTF 试题 - Windows 内存镜像(原始计划使用 DFRWS 2009 公开内存镜像,因内核过于老旧、Volatility 3 无法解析,改为 Windows 内存镜像)_
- 镜像文件大小:_约 512 MB_

### 3.3 分析结果
- 操作系统版本:_Windows Server 2003 SP1 (NT 5.2 Build 3790),32 位(非 PAE),内核基址 0x80800000,系统根目录 C:\WINDOWS_
- 可疑进程(cmd/powershell/网络工具):_DumpIt.exe(内存镜像导出工具,PID 3660,创建于 2019-04-25)_
- 网络连接摘要:_Volatility 3 网络插件(netscan/netstat)不支持 Windows Server 2003,报 NotImplementedError,网络连接信息未能提取_
- 监听端口/远程连接:_同上,未能提取_
- 可疑命令行参数:_cmdline 插件返回为空,未能提取命令行参数_
- 关键注册表路径:_hivelist 插件返回为空(Volatility 3 对 Win2003 注册表支持有限)_

问题4:_原始 DFRWS 2009 镜像为 Linux 2.6 内核,Volatility 3 对老旧 Linux 内核需自建 ISF/符号表,适配复杂度高。本实验改为使用 CTF 试题中的 Windows 内存镜像,虽然版本较老(Win2003),但 Volatility 3 的 windows.info 和 windows.psscan 插件仍能成功提取操作系统版本和进程列表,验证了内存取证可以在不启动目标系统的情况下,还原其运行时状态。_

---

## 四、文件雕刻取证:scalpel

### 4.1 安装与配置记录
- 版本:_1.60_
- 配置启用的文件类型:_jpg(JPEG/JFIF)和 pdf(PDF)_

### 4.2 分析结果
- 恢复出的文件类型及数量:_恢复出 1 个 audit.txt 和 1 个 jpg 文件(00000000.jpg,JPEG 3840×2160,JFIF 标准)_
- readme.pdf 是否被恢复:_否_
- scalpel 输出目录结构:_scalpel_output/(含 audit.txt 和子目录 jpg-1-0/00000000.jpg)_

问题5(foremost 与 scalpel 对比):_两者均基于文件头/尾签名(magic bytes)进行文件雕刻,原理相同——扫描磁盘原始数据中的十六进制特征码,不依赖文件系统元数据。foremost 优势:Kali 预装、开箱即用,默认配置覆盖常见文件类型,适合快速应急响应;scalpel 优势:雕刻算法更高效,可精细控制最小文件大小和签名匹配严格度,配置文件集中管理所有类型规则,适合大规模批量恢复。本次实验中两者恢复效果相同(各恢复 1 个 jpg,均无法恢复假 PDF)。_

---

## 五、Rootkit 检测:chkrootkit

### 5.1 安装与配置记录
- chkrootkit 版本:_0.58b_
- 安装方式:_apt 安装_
- 检测项目总数(`-l` 列出数量):_69_

### 5.2 分析结果
- `-x` 专家模式是否比普通模式输出更多细节:_是,`-x` 专家模式对每个检测项输出详细的检查步骤和中间结果(如搜索路径、匹配模式、比对命令返回值等),而普通模式仅输出最终结论(not infected / not found / WARNING)。_
- 扫描结果中是否发现可疑 rootkit:_否,未发现已知 rootkit。但出现两处 WARNING:①可疑文件/目录——均来自 Debian 软件包(如 hashcat/.gitkeep、python3-numpy/.f2py_f2cmap 等),属于误报;②sniffer 检测——eth0 和 eth1 上发现 NetworkManager 的 PACKET SNIFFER socket(PID 1034),属正常网络管理服务行为,非恶意嗅探器。_

问题6:_chkrootkit 通过一系列 shell 脚本和 C 程序检测已知 rootkit 的特征签名,包括:检查关键系统目录中是否存在已知 rootkit 的文件名;比对 `ps`、`ls`、`find`、`netstat` 等系统命令的输出是否包含异常字符串(某些 rootkit 会修改这些命令以隐藏自身);检查 `/proc` 文件系统中的异常条目;扫描网络接口是否处于混杂模式等。但由于 chkrootkit 本身依赖系统的 `ls`、`ps`、`grep` 等基础命令来执行检测,如果攻击者已经替换了这些命令(植入木马版本),这些被篡改的命令会向 chkrootkit 返回虚假信息,导致扫描结果完全不可信。因此,在取证场景中,建议从可信介质(如 Kali Live CD)启动后再运行 chkrootkit,或者使用静态编译的独立版本。_

---

## 六、综合结论

(300–500 字,结合五个子任务,描述攻击场景、分析思路及多维度取证的价值)

_本实验通过五个子任务实现了磁盘取证、Rootkit 检测与内存取证的交叉验证,形成了一条完整的数字取证分析链。_

_在 Task 1 中,使用 Kali 预装的 foremost 和 dcfldd 完成了 FAT32 镜像的文件雕刻恢复与完整性校验。foremost 成功从 usb.img 中恢复出已删除的 test.jpg,验证了基于文件头/尾签名的雕刻原理在数据恢复中的有效性;dcfldd 演示了如何通过 SHA-256 哈希建立证据完整性证明链——原始镜像与篡改后镜像哈希值不同,说明单字节修改即可被检测到,这在实际取证中至关重要。_

_在 Task 2 中,安装了 Volatility 3 并成功分析 Windows Server 2003 内存镜像。提取到操作系统版本(NT 5.2 Build 3790)、进程列表等关键信息,发现 DumpIt.exe 进程(镜像导出工具),证明了内存取证可以在不启动目标系统的情况下,还原其运行时状态。同时暴露了 Volatility 3 对老旧 Windows 的兼容性局限(网络/注册表插件不支持),得出针对 NT 5.x 系列应结合 Volatility 2 的实践结论。_

_在 Task 3 中,安装并配置 scalpel 1.60,通过编辑 /etc/scalpel/scalpel.conf 启用 jpg/pdf 签名规则,从同一 usb.img 中恢复出 1 个 jpg 文件,假 PDF 未能恢复。与 foremost 对比发现两者原理相同、结果一致,差异主要体现在配置方式和使用便利性上。_

_在 Task 4 中,安装并运行 chkrootkit,通过直接执行、`-l` 列出全部检测项、`-x` 专家模式三种方式对系统进行全面 Rootkit 扫描,验证了 Rootkit 检测工具的可用性,同时也揭示了其"依赖系统命令"的局限性——若系统已被入侵,chkrootkit 结果不可信,应从可信介质启动后运行。_

_五个任务共同说明:磁盘取证、Rootkit 检测与内存取证是互补的——前者回答"曾存储过什么",中者回答"系统是否已被植入后门",后者回答"正在运行什么"。在真实攻击场景中,攻击者可能删除恶意文件(磁盘取证可恢复)、植入 rootkit 隐藏行踪(chkrootkit 可检测),但无法清除内存中的进程痕迹(内存取证可捕获)。多维度取证能最大程度还原攻击全貌,提高证据链的完整性和说服力。_

---

## 八、附录(关键截图/命令输出)

(可粘贴终端截图或关键命令文本)

九、评分参考

维度 分值 细则
实验环境搭建 10% Kali安装正确,额外工具安装成功,镜像/数据获取完整
Kali 内置工具(foremost/dcfldd) 25% 镜像制作、foremost文件雕刻恢复、dcfldd哈希校验与完整性验证
内存取证(Volatility 3) 20% 正确安装、加载镜像、提取进程/网络/历史命令并推理
文件雕刻取证(scalpel) 15% 正确安装、配置签名文件、雕刻恢复文件、与foremost对比分析
Rootkit 检测(chkrootkit) 15% 正确安装、执行基本扫描、-l 列出检测项、-x 专家模式分析
实验报告填写 15% 报告完整、结论有逻辑、截图清晰

安全提醒:所有分析操作务必在只读挂载或镜像副本上进行。内存镜像若从网络下载,应在隔离的虚拟机实验环境中打开。

posted @ 2026-05-13 09:53  20232304冯天悦  阅读(61)  评论(0)    收藏  举报