使用 dd 和 dcfldd 获取磁盘镜像
适用场景
- 当需要为调查创建嫌疑硬盘的取证副本时
- 在事件响应期间,在分析前保全易失性的磁盘证据时
- 当执法或法律程序需要经验证的逐位副本时
- 在对存储设备执行任何破坏性分析之前
- 当从物理硬盘、USB 设备或存储卡获取数据时
前置条件
- 基于 Linux 的取证工作站(SIFT、Kali 或任意 Linux 发行版)
dd(所有 Linux 系统预装)或 dcfldd(增强的取证版本)
- 已配置硬件写保护器或软件写保护
- 容量充足的存储目标硬盘(大于源盘)
- 在取证工作站上具备 root/sudo 权限
- SHA-256 或 MD5 哈希工具(
sha256sum、md5sum)
工作流程
步骤 1:识别目标设备并启用写保护
# 列出所有已连接的块设备以识别目标
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,MODEL
# 验证设备详细信息
fdisk -l /dev/sdb
# 启用软件写保护(若没有硬件写保护器)
blockdev --setro /dev/sdb
# 验证只读状态
blockdev --getro /dev/sdb
# 输出:1(表示已启用只读)
# 或者,使用 udev 规则实现持久化的写保护
echo 'SUBSYSTEM=="block", ATTRS{serial}=="WD-WCAV5H861234", ATTR{ro}="1"' > /etc/udev/rules.d/99-writeblock.rules
udevadm control --reload-rules
步骤 2:准备目标位置并记录源盘信息
# 创建案件目录结构
mkdir -p /cases/case-2024-001/{images,hashes,logs,notes}
# 记录源盘信息
hdparm -I /dev/sdb > /cases/case-2024-001/notes/source_drive_info.txt
# 记录序列号和型号
smartctl -i /dev/sdb >> /cases/case-2024-001/notes/source_drive_info.txt
# 预先对源盘进行哈希计算
sha256sum /dev/sdb | tee /cases/case-2024-001/hashes/source_hash_before.txt
步骤 3:使用 dd 获取镜像
# 使用 dd 进行基础采集,并显示进度与错误处理
dd if=/dev/sdb of=/cases/case-2…