# 磁盘取证

---

## 免责声明

`本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.`

---

**简介**

一般来说取证就是收集并分析证据，并为司法行动中的展示构建事实的一个过程。但在计算机技术中，或在计算机取证技术中，取证就是通过专门的技术来发现证据的过程，这些证据可被用于确认计算机、计算机网络、相关设备、数据存储媒体是否被用于实施犯罪或未授权的活动。在计算机的取证领域中，取证人员在取证调查的整个过程中证明证据媒体没有在任何方面被篡改是至关重要的。其中一种方法是对原始的证据媒体作一个映象复制，并对映象复制品展开调查，以防止对原始证据的任何更改。

**相关文章**
- [Linux硬盘镜像获取与还原（dd、AccessData FTK Imager）](https://www.cnblogs.com/17bdw/p/9094659.html)
- [windows取证之镜像取证仿真步骤](https://www.codenong.com/cs106859820/)

---

# 磁盘提取

## Linux

**dd & nc**

- 本地取数据
    ```bash
    fdisk -l    # 查看磁盘及分区
    dd if=需要拷贝的磁盘 of=/存储目录/镜像文件 （确保存储目录有足够的空间） # 获取整个磁盘镜像文件
    ```

- 远程取硬盘数据
    ```bash
    # 取证机器 B 上运行
    nc -l -p 4445 | dd of=/tmp/sda2.dd

    # 受害机器 A 上执行传输，即可完成从受害机器 A 克隆 sda 硬盘到取证机器 B 的任务：
    dd if=/dev/sda2 | nc 192.168.10.11 4445
    ```

**[FTK Imager for Linux](https://accessdata.com/product-download)**
```bash
./ftkimager --help          # 查看帮助信息
./ftkimager --list-drives   # 查看当前加载的驱动器列表

# 获取/dev/sdb 这个磁盘的 E01 模式的文件映像
./ftkimager /dev/sdb /tmp/cyq.e01 --e01 --frag 500M --description "cyq" --examiner cyq
    # /dev/sdb              取证目标驱动器名称
    # /tmp/cyq.e01          取证文件的名称和路径
    # --e01                 表示使用 E01 格式。
    # --frag 500M           表示每 500MB 分成一个文件，在映象片断的大小中，用户可以可以选择将映象分割为多个文件以便于在 DVD 或 FAT 文件系统中中备份
    # --examiner cyq        取证操作人员的姓名简称
    # --description "cyq"   操作说明

# dd 镜像格式是目前被最广泛使用的一种镜像格式，也称成原始格式 (RAW Image)。dd 镜像的优点是兼容性强，目前所有磁盘镜像和分析工具都支持 dd 格式。
# E01 是法证分析工具 EnCase 的一个证据文件格式，较好地解决了 dd 镜像的一些不足。在生成 E01 格式证据文件时，会要求用户输入与调查案件相关的信息，如调查人员、地点、机构、备注等元数据。这些元数据将随证据数据信息一同 存入 E01 文件中。文件的每个字节都经过 32 位的 CRC 校验，这就使得证据被篡改的可能性几乎为 0。默认情况下，分析软件自动以每 64 扇区的数据块进行校验，这种方式兼顾速度和完整性两个方面的考虑。获取个磁盘的 E01 模式的文件映像需要一些时间，根据磁盘大小和硬件型号有所差异.
```

**xmount** - xmount 工具可以把 E01 格式的镜像文件转化为 VDI 或者 VMDK 格式。然后用户可以使用 VirtualBox 和 Vmware 软件打开文件进行取证操作。

```bash
rpm -ivh https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
yum install -y xmount

groupadd fuse
groupadd cyq
usermod -a -G fuse cyq
```
```diff
vi /etc/fuse.conf

++ user_allow_other
```
```bash
mkdir ~/mnt0
xmount --in ewf --out vdi --cache ~/tmp/MyDisk.cache ~/tmp/cyq.E?? ~/mnt0
    # --in ewf              表示源文件是 E01 格式。
    # -~/tmp/cyq.E??        表示源文件的路径，并且可能是多个文件。
    # --out vdi             表示输出格式是 vdi。
    # /mnt0                 输出文件的目录。
    # --description "cyq"   操作说明。
    # ~/tmp/MyDisk.cache    缓存文件名

# 建立 vdi 文件后，可以使用 VirtualBox 虚拟机导入这个 vdi 文件进行取证分析。
# 建立 vmdk 文件后，可以使用 Vmware Workstation 导入这个文件进行取证分析。
```

## Vmware

**[VMware-converter](https://www.vmware.com/go/getconverter)**

管理员权限打开,选择 local machine

然后选择取证生成的镜像目标类型，这里就选 vmware，select vmware product 是选择适配 vmware 的版本，最后一个选项 select a location for the vitual machine 选择是保存位置，比如移动硬盘或者 nas。

当完成时候就生成了 vmware 可以跑起来的镜像。格式是 vmdk，仿真就直接可以用 vmware 打开。

**[AccessData FTK Imager](https://accessdata.com/product-download)**

---

# 磁盘分析

**分析工具**
- R-Studio
- DiskGenius
- [AccessData FTK Imager](https://accessdata.com/product-download)
- [Elcomsoft Forensic Disk Decryptor](https://www.elcomsoft.com/efdd.html) - 如果有密码,工具可以安装加密的卷或将其解密以进行脱机分析
- WinHex

---

# 磁盘加解密

**相关文章**
- [A Bootable Flash Drive to Extract Encrypted Volume Keys, Break Full-Disk Encryption](https://blog.elcomsoft.com/2019/04/a-bootable-flash-drive-to-extract-encrypted-volume-keys-break-full-disk-encryption/)

**相关工具**
- TrueCrypt - 一款用于动态加密（OTFE）的免费开源软件。它可以在一个文件中创建一个虚拟的加密磁盘，或加密一个分区或整个存储设备。(已不推荐使用)
- VeraCrypt - TC 的替代品
- [Elcomsoft Forensic Disk Decryptor](https://www.elcomsoft.com/efdd.html) - 如果有密码,工具可以安装加密的卷或将其解密以进行脱机分析

## 磁盘加密爆破

**相关工具**
- [Elcomsoft System Recovery](https://www.elcomsoft.com/esr.html) - 爆破 TrueCrypt 和 VeraCrypt
