在电子取证过程中拿到的检材形式各异,它们可能是从硬盘完整复制下来的镜像文件,也可能是RAID阵列中的多个磁盘,或者是手机的逻辑备份,而知道这些检材是是什么怎么用,才是启动分析的第一步
以弘连火眼证据分析软件为例,选取检材的时候会看见如下选项:
这些都是什么呢?我们先大致说一下:
-
镜像文件
最常见的证据形式,是物理存储的数字副本,单个的手机、计算机都可能是这个
-
多镜像文件
当单个镜像文件被分割成多个小文件时,就会变成多镜像,有点像分卷压缩
-
物理磁盘
直接对连接到取证机的原始硬盘或SSD进行分析,或者挂载镜像为系统盘后分析
-
文件集合
非完整的磁盘镜像,仅包含从源设备中提取的特定文件和文件夹,比如手机系统的备份
-
移动设备
由于要使用雷电手机快取软件,我至今没有用过这个功能……
不过好像是连接手机、平板等进行数据提取分析
-
磁盘阵列
对由多块硬盘组成的RAID进行重组和分析
下面我们系统介绍一些检材常用的格式,以及转换方法
计算机取证镜像
标准镜像文件式
原始镜像
纯粹的位对位(bit-by-bit)副本,文件大小与源磁盘/分区容量完全一致
无元数据、无压缩、无加密(因为本身就是字节流,没有这些标识概念),但是利用命令和工具可以做到
所以,就算把他们后缀名去掉,使用方法也是一样的
.dd
这个扩展名源自Unix/Linux系统下的**dd(dataset definition,数据集定义)**命令,它是制作原始镜像最经典、最基础的工具,因此.dd成为了原始镜像的代名词
命令行制作:
dd if=/dev/sda of=image.dd bs=4M conv=noerror,sync
意思是把整块硬盘/dev/sda按照4MB为单位复制到image.dd文件里,如果遇到坏扇区,不报错不中止,而是用0填充,保证镜像完整且和原盘大小一致
几乎所有主流取证工具都支持创建和导出为.dd,非常的常见
.img / .raw / .bin / .dsk 等等
这些都是描述性的扩展名,img代表"镜像",raw代表"原始",bin代表"二进制文件",.dsk则是"磁盘镜像"
它们在功能和结构上与.dd文件完全相同,都是指原始逐位的副本,只是使用场景和工具不同叫法不同罢了,后缀名完全不影响分析(不过有些软件还是会限制扩展名,尽管扩展名并未对数据造成任何修改)
这些扩展名实际能用于很多场景,遇见了不确定的话就一个个尝试吧,能分析出来就行
封装镜像
本质上也包含了原始磁盘或分区的bit-by-bit数据,但是采用了封装数据 + 元数据(采集者、采集时间、硬盘序列号、哈希值)的形式
也正因此,他们支持压缩、加密等形式来节约空间,支持分卷存储大型镜像文件,部分可随机访问(如AFF)
.E01, .Ex01
由EnCase Forensic开发的证据文件格式,已成为事实上的行业标准,也就是说法庭认可度最高!
.Ex01是其更新的“专家见证”格式,支持更强的AES-256加密和更大的文件大小
它主要通过EnCase Forensic软件制作,同时,绝大多数第三方取证工具也都支持直接采集为.E01格式以保证兼容性
想要查看里面具体信息,可以在Xways中创建案例,添加检材之后右键看属性
.aff / .aff4(.af4)
.aff,全称是高级取证格式 (Advanced Forensic Format),它是一个开源项目,旨在克服.dd格式无元数据和.E01格式专有的缺点
而.aff4是.aff的第四代版本,是一个经过大幅重新设计的格式,可以存储多种数据流,包括磁盘映像、内存映像、逻辑文件,甚至是网络流量,也被简写成.af4
他们都是通过支持AFFLIB库的工具制作的,比如Evimetry等
.ad1
由AccessData开发的证据文件格式,全称AccessData Evidence Container,主要用于他的产品FTK系列
大多数主流取证软件都能识别导入.ad1文件
多镜像文件
扩展名可能是上面的任意一种+序列号
当单个大镜像被分割存储时,会看到一组序列文件:
可能是disk_part1.dd、disk_part2.dd、 disk_part3.dd这样的原始文件分卷
也能是case.E01、case.E02、case.E03,或者case001.E01、case002.E01、case003.E01这样的封装镜像分卷
比较特殊的是,使用通用文件分割工具(如WinRAR、7-Zip等)处理原始镜像生成的分片镜像会以数字作为后缀名,比如.001、.002这样的序列,看成是.dd这样的另一种表达方式就行了
它们必须放在一起才能被完整加载,也就是之前提到的“多镜像文件”这一栏
物理磁盘与磁盘阵列
物理磁盘
这不是一种文件格式,而是一种证据源
比如把一块嫌疑人电脑里的硬盘拔下来,接到自己电脑,或者某块硬盘里面有着线索,直接对他分析
也有可能是使用FTK等工具挂载镜像成为系统盘
磁盘阵列 (RAID)
RAID(Redundant Array of Independent/Inexpensive Disks,独立冗余磁盘阵列)是一种将多块物理磁盘组合成一个逻辑磁盘的技术,用于提升容错能力,抗数据丢失
遇到这类检材,一般是考察RAID的磁盘重组,也就是把分散的块组合成可以访问的正常存储空间
这部分内容有点多,后面单开一篇学习
移步:RAID与它的重组
逻辑镜像
与获取整个磁盘不同,这类检材只包含从源系统中选择性提取的部分数据(特定文件和文件夹)
.L01 / .Lx01
同样来自EnCase,是它的逻辑证据文件格式
在EnCase软件中选择要导出的文件条目,再通过添加至逻辑证据文件功能创建.L01文件
.ad1
嗯,就是之前提到过的那个
使用FTK软件时,选择获取逻辑证据,然后添加特定的文件/文件夹就能创建.ad1文件
.zip / .tar / .rar
其实就是手动打包一系列要分析的文件,不使用专业软件制作而已
不过要注意有的时候压缩包内的只是分类的文件集合(比如24年美亚杯),还是需要自己手动查看
如果是零散的文件,专业软件无法正常处理,可以尝试使用开源的autopsy进行初步的分析
系统备份
.tib / .tibx
由Acronis True Image软件创建的备份镜像格式
.tib是旧版格式,而.tibx是较新版本引入的格式,提供了更强的性能和可靠性
这类文件包含了整个磁盘或分区的完整快照,可以通过Acronis软件进行恢复或挂载浏览
.gho & .s01
来自Symantec Ghost软件的磁盘克隆镜像
在21世纪初非常流行,现在虽然少见,但在一些旧的系统备份中仍可能遇到
当Ghost镜像被分割存储时,它会生成一个主.gho文件和一系列.s01、.s02… 的分卷文件
.bkf
由旧版Windows(如 XP, Server 2003)自带的NTBackup工具创建的备份文件
它主要用于备份文件和系统状态,而不是完整的磁盘镜像
.bak
通用的备份文件扩展名,它没有统一的格式标准,具体内容取决于创建它的应用程序,不过一般是移动设备
虚拟磁盘镜像
虚拟机镜像是案件中的常见角色,它们本身就是完整的操作系统环境
它们一样能被当成整个的镜像文件被分析
.vmdk
全称Virtual Machine Disk
是VMware公司为其虚拟化产品开发的格式,在VMware产品中创建新虚拟机时自动生成
也可以使用其命令行工具vmware-vdiskmanager.exe手动创建
.vhd / .vhdx
全称Virtual Hard Disk
.vhd源于Connectix公司,后被微软收购用于Virtual PC
.vhdx是其现代化的后继者,随Windows Server 2012推出,支持更大容量和更好的性能
在Windows的Hyper-V管理器或“磁盘管理”工具中(操作 -> 创建VHD)可以直接创建
.avhd / .avhdx
这是Microsoft Hyper-V的快照文件
当为虚拟机创建快照后,系统会创建一个.avhd(x)文件,之后所有对虚拟磁盘的增量修改都会写入这个文件,而原始的.vhd(x)文件则保持只读
将快照文件与父磁盘文件(.vhd/.vhdx)合并,才能看到虚拟机在快照时间点的完整状态
.vdi
全称Virtual Disk Image
是Oracle公司为其开源虚拟化软件VirtualBox开发,在VirtualBox中创建新虚拟机时自动生成
.qcow / .qcow2 / .qcow3
.qcow全称QEMUCopy-On-Write,来自开源的QEMU项目(后面会提到)
而.qcow2是第二版,也是目前的主流,.qcow3则是实验性版本,同样不太使用
主要通过qemu-img命令行工具创建,比如:
qemu-img create -f qcow2 image.qcow2 20G
意思是创建一个大小为20GB、格式为qcow2的虚拟磁盘文件image.qcow2
.iso
.iso是光盘(CD/DVD/Blu-ray)的标准镜像格式,它包含了光盘的完整文件系统
不过火眼似乎对.iso的直接解析不太支持
.dmg / .sparseimage
.dmg全称Apple Disk Image,是macOS下标准的磁盘映像格式,用于软件分发和数据归档,就类似于Windows下的.iso
**.sparseimage**是.dmg的一种稀疏捆绑磁盘映像,它的特点是文件大小会根据实际存储数据的增多而动态增长,而不是一开始就占用全部分配空间,非常节省存储,类似growable的.vmdk文件
这两种格式都是通过macOS系统自带的磁盘工具应用程序创建
.hdd / .hds / .zvhd2
这些都是Parallels Desktop虚拟机软件使用的虚拟磁盘格式
Parallels是一款在macOS上运行Windows和其他操作系统的流行软件
.hdd:是Parallels较早版本使用的格式,它本身是一个包,内部可能包含.hds磁盘分片文件.zvhd2:是较新版本Parallels使用的专有虚拟磁盘格式,性能和压缩更好
.xva
全称Xen Virtual Appliance,是Citrix XenServer/XCP-ng虚拟化平台的虚拟机导出格式
它不仅仅是一个磁盘镜像,而是一个包含了虚拟机完整配置(CPU、内存、网络)和所有虚拟磁盘(VHD格式)的归档包(实际上是一个TAR归档文件),用于虚拟机的备份和迁移
内存镜像
.mem / .raw
通用描述性名称,代表原始内存数据
使用专业的内存获取工具,如DumpIt等能够制作,在Linux中也可从/dev/mem等设备文件转储
这是最为常见的一类,使用频繁
.dmp
常见于Microsoft Windows系统崩溃(也就是蓝屏)时由系统自动生成MEMORY.DMP
也可以通过任务管理器(针对单个进程)或WinDbg等调试工具手动创建
.vmem
VMware的内存镜像格式
这是虚拟机的内存文件,当一个正在运行的VM被挂起时,其内存内容会被写入.vmem文件
.vmsn
同样被使用于VMware
为虚拟机创建一个快照时生成,.vmsn文件保存了虚拟机在快照那一刻的运行状态,其中就包含了内存数据
移动设备镜像
iOS
文件夹集合
就是文件的集合,没有任何格式
通过iTunes或Finder连接执行备份操作时创建,部分第三方取证工具也能调用此协议进行提取
主文件夹名通常是设备的UUID(一长串十六进制字符),内部包含大量以两位哈希值命名的子文件夹和散列文件名,里面有Info.plist,Manifest.db,Status.plist等关键索引文件
看到这种结构,即可100%确定为iOS的官方备份
.zip / .tar
移动取证工具供应商,如Cellebrite, Grayshift, Magnet Forensics等都能制作,或者使用别的办法直接导出
解压后会看到完整的iOS文件系统目录结构,如/private/var/等
这比上面备份操作得到的集合包含更多系统文件、应用缓存和数据库
.bin / .raw / .dd / .img
和计算机镜像文件一样,是对闪存芯片最底层的、逐位的完整复制
Android
.ab
全称Android Backup
在电脑上通过Android调试桥(ADB)工具执行adb backup命令创建
.zip / .tar
和ios一样来源于移动取证工具供应商,或者通过完全root的手段导出
压缩包内包含了/data分区的完整目录结构,也就是很多com.开头的包,包含了所有用户安装的应用和数据
.bin / .raw / .dd / .img
无需多言
安卓模拟器镜像
模拟器本质是运行在PC上的虚拟机
多数模拟器既可以直接获取其运行中的磁盘文件,也可以处理其专有的备份文件
备份文件通常是包含了磁盘文件的压缩包,如同.apk格式一样,改后缀名就能解压得到其中的虚拟磁盘文件
需要注意的是,不同模拟器使用的虚拟磁盘格式也有出入
雷电模拟器
虚拟磁盘格式:.vmdk
磁盘文件位于安装目录的vms文件夹下,点进对应模拟器也能得到.vmdk文件
备份格式:.ldbk
.ldbk文件是一个ZIP压缩包,修改扩展名为.zip后解压,就能得到data.vmdk和sdcard.vmdk两个虚拟磁盘文件
MuMu模拟器(v12)
虚拟磁盘格式:.vdi
磁盘位置和雷电模拟器如出一辙,位于安装目录的vms文件夹下,不多赘述
备份格式:.mumudata
.mumudata也是一个ZIP压缩包,按同样方法改名解压后可获取.vdi磁盘文件:
夜神模拟器
虚拟磁盘格式:.vmdk
不过它的磁盘位置是位于安装目录的BignoxVMS文件夹下:
备份格式:.npdk
官方文档说32位是.npbk,64位是.anpbk,我测试下来64位是.npbk,32位没找到下载方式
解压方式不变:
逍遥模拟器
虚拟磁盘格式:.vmdk
它的磁盘位置也不一样,或者说它的文件目录构造就和上面三个不一样
它的磁盘位于安装目录的\MEmu\MemuHyperv VMs文件夹下:
备份格式:.ova
解压方式不变:
BlueStacks(蓝叠5)
虚拟磁盘格式:.vhd、vhdx、.vdi
它的磁盘位置完全就和上面这些不是一个构造了
它的虚拟机统一放在安装目录下的Engine文件夹中:
Engine文件夹下也放置了一些json/cfg格式配置文件,以及Manager和UserData文件夹,所有虚拟机共用
同时,他的磁盘似乎是分开存储的,fastboot使用的是.vdi,而数据和root使用.vhd和.vhdx
- Data.vhdx ≈ 用户数据分区
- Root.vhd ≈ 系统分区
- fastboot.vdi ≈ fastboot引导镜像
- .bstk / .cfg 文件 ≈ 配置与快照
备份格式:文件集合
蓝叠备份文件不会压缩,而是直接导出一整个原始文件夹,包含Engine文件夹下的所有必要配置:
格式转换
虚拟磁盘之间转换
命令行工具 —— qemu-img
qemu-img 是 QEMU 虚拟化套件中的一个功能极其强大的命令行工具,被誉为虚拟磁盘管理的“瑞士军刀”。它支持几乎所有主流虚拟磁盘格式的读写和转换
下载地址:QEMU
查看镜像信息
在转换前,最好先用info命令检查源文件的格式和参数
qemu-img info source_disk.vmdk
输出会显示格式 (file format)、虚拟大小 (virtual size)、物理大小 (disk size) 等信息
格式转换
基本语法:
qemu-img convert [options] -f <source_fmt> -O <output_fmt> <source_file> <target_file>
常用参数:
-p:显示转换进度条-f <format>:指定源文件格式(通常可自动识别,但显式指定更可靠)-O <format>:指定输出文件格式(必填!)
支持格式 keyword:vmdk, vhdx, vdi, qcow2, raw (对应.dd或.img) 等
示例:
-
vmdk转 vhdx
qemu-img convert -p -f vmdk -O vhdx source.vmdk target.vhdx需要注意的是VMware分片vmdk需要用描述文件
.vmdk,单独s001.vmdk这样的文件不能直接转换 -
vdi 转 vmdk
qemu-img convert -p -f vdi -O vmdk source.vdi target.vmdk -
qcow2 转 raw
qemu-img convert -p -f qcow2 -O raw source.qcow2 target.img -
raw/dd/img 转 vmdk
qemu-img convert -p -f raw -O vmdk source.dd target.vmdk
图形化工具 —— StarWind V2V Converter
一款功能强大的免费工具,界面直观,非常轻量化,支持多种物理和虚拟格式的互相转换
选择要转换的镜像
选择转换目标
growable是动态扩展磁盘,磁盘文件初始体积较小,随着写入数据逐渐增大
Pre-allocated是预分配磁盘,创建时会一次性占用所有空间,性能更稳定,但占用磁盘空间大
ESX是专门为VMware ESX/ESXi虚拟化平台使用的vmdk格式,和Workstation/Player用的vmdk略有不同
选择虚拟机磁盘接口类型
接下来选择保存位置即可
图形化工具 —— VMware vCenter Converter
VMware官方工具,需要单独下载安装:
这个软件功能繁多,还能做到物理磁盘到虚拟磁盘的迁移(P2V),由于主题不在此,就不多赘述
不同镜像格式转换
实际上,使用上面提到过的VMware vCenter Converter就能做到这一点
先用挂载工具把源镜像挂载为物理磁盘,然后使用VMware vCenter Converter导出为虚拟磁盘即可
以及使用一些软件,比如火眼仿真提供的gho转vmdk: