电子数据取证工作中,加载、查看镜像文件数据是非常高频的需求,也是取证软件最基础最功能,但这并不意味着每个取证软件都能把这一功能做到极致。

大部分取证软件加载镜像需要比较长的时间。国内的取证软件,一般需要先新建案例后添加镜像,完成文件系统解析才能浏览其中的数据。个人一直不习惯这一逻辑,因为每天要加载查看很多的镜像,但大多数情况下都是临时分析,每次创建案例耗时容易打断思路,而且软件启动后看到一堆无用的案例对于我这种有强迫症的人来说看着非常不舒服。

免费的EnCase Imager查看镜像倒是不需要新建案例,双击打开EnCase Imager后,点击“Add Evidence File”或“Add Raw Image”即可添加镜像文件。但和EnCase一样,EnCase Imager让我无法忍受的是文件系统解析实在太慢了,一个NTFS分区MFT解析动辄几十秒甚至几分钟。

免费的FTK Imager同样打开软件后就可以直接加载镜像文件了,速度也比EnCase Imager及其他取证软件快不少。FTK Imager加载镜像文件后,并没有马上解析文件系统中的所有文件,当用户展开某个文件夹时,FTK Imager才去解析该文件夹下的文件记录,这一特性使得FTK Imager加载镜像文件速度远超其他软件。

虽然FTK Imager不需要创建案例就可以直接加载镜像文件,而且解析文件的速度也很快,但打开FTK Imager→点击加载镜像按钮→浏览选择镜像→点击完成→开始浏览数据这一整套浏览流程下来对我来说还是太慢了。有没更快的工具呢?答案是肯定的,X-Ways Forensics堪当此任!

设置“显示更多右键菜单功能(Items in Windows context menu)”后,在资源管理器中右击任意文件或文件夹,都会出现“打开X-Ways Forensics”的菜单。如果选中的是任意镜像文件(例如E01、dd、vmdk等),选择“打开X-Ways Forensics”后会自动打开X-Ways并加载该镜像文件,一气呵成,速度飞快!(注意X-Ways靠拓展名识别镜像,如果不是dd、E01、vmdk等常规拓展名,会按普通文件处理,及打开后显示文件十六进制数据。)对镜像进行分析后,如果觉得有必要,也可以随时将当前镜像或镜像中的某分区添加到当前活动案例或新建案例中。

请输入图片描述

请输入图片描述

那么,有么有操作同样简单最好还免费的工具呢?还真有!今天就给大家介绍一个低配版的工具——7-Zip。没错,就是开源的解压缩工具7-Zip!

直接看官网,7-Zip声称支持DMG、EXT、GPT、HFS、ISO、NTFS、QCOW、2、SquashFS、UDF、UEFI、VDI、VHD、VMDK等格式的解压,是不是很强大?上面列出的均为镜像格式或文件系统格式,这哪是解压软件,感觉简直是取证软件了,很多取证软件支持的文件系统还没这全呢!

请输入图片描述

7-Zip安装完成后,默认会在右键菜单中添加7-Zip相关的菜单选项,例如使用7-Zip打开压缩包。右击镜像文件,即可使用7-Zip打开浏览其中的数据了。

先打开一个阿里云镜像试试看。

请输入图片描述

这是一个Ext4文件系统的镜像,7-Zip可以完美支持!速度比X-Ways还快那么一丢丢!文件/文件夹的大部分属性都可以正常解析,不仅如此,还可以统计每个文件夹的子文件夹数(下图倒数第二列)、子文件数(下图倒数第一列)、链接数等信息。

请输入图片描述

再试试今年的能力验证镜像吧,这是一个带LVM的Linux镜像。

请输入图片描述

可以正常打开!

请输入图片描述

换一个Windows磁盘镜像试试看,里面有两个NTFS分区。

请输入图片描述

依然可以正常打开!

请输入图片描述

再打开一个手机镜像试试看,依然没问题!

请输入图片描述

看起来功能还是比较强大的,不过竟然说是低配版的工具,其缺点也很明显——只支持RAW镜像(与拓展名无关),而不支持E01等专业的镜像格式。当然了,作为一个解压缩软件,兼职功能做到这程度已经很不错了!

总结一下,7-Zip开源免费,可以识别MBR、GPT分区结果,支持NTFS、FAT、EXT、HFS等文件系统。对于DD镜像(常见拓展名可能有dd、001、bin、raw等),可以直接使用7-Zip快速打开进行文件浏览及数据导出。

大约是2017年,又一件重案的分析任务落到我头上。检材是一块台式电脑硬盘和一块移动硬盘,需要提取或检验其中的特定内容。制作完镜像后,使用取证软件加载,发现台式电脑硬盘第二分区有Bitlocker加密,移动硬盘也有Bitlocker加密。于是打电话和办案单位沟通,可是对方表示嫌疑人不愿意交代密码等任何相关信息。

Bitlocker是Windows平台下常用分区加密方案,高效而安全。我自己十年前就开始使用Bitlocker加密移动硬盘了,那时候大部分同学还在使用Windows XP系统,需要使用Bitlocker To Go才能打开我Bitlocker加密后的移动硬盘。

打开Bitlocker分区主要有两种方式,一种是通过密码,一种是通过恢复密钥。恢复密钥是创建Bitlocker加密分区时提醒备份或打印的一串8组共48位的字符串。保存的恢复密钥文件默认是txt格式,其中的文字有一定规律,可以被取证软件用来检索恢复密钥。

使用取证软件的恢复密钥搜索功能对硬盘镜像进行全盘搜索后,果然在未分配空间找到了一个恢复密钥。使用该恢复密钥尝试解密Bitlocker分区,移动硬盘镜像中的加密分区成功被解密。经检验,里面果然有委托方需要的数据。

硬盘镜像中的Bitlocker分区就没有这么幸运了,只能另外想其他的办法。

山穷水尽疑无路,柳暗花明又一村。当我使用委托方提供的关键词,尝试对硬盘镜像中未加密的系统分区进行搜索,意外发现在一个名为“Everything.db”的文件中有大量命中记录。里面不仅有文件名,还有文件的完整路径!没错,这就是大名鼎鼎的文件搜索工具Everything的索引数据库。经过其他方式综合关联分析,确定了其中一些记录就是未解密的Bitlocker分区中的文件。委托方最终对结果非常满意!

请输入图片描述

Everything是一款高效的文件搜索工具,我自己也已使用多年,100万的文件在一两秒就可以创建完索引然后快速搜索。我计算机上千万级别的文件,基本也只有Everything能够进行管理和搜索了。我经常在想,如果Everything的快速搜索技术如果能应用到取证软件中就太好了。

请输入图片描述

Everything的索引数据库保存路径为“C:\Users\<用户名>\AppData\Local\Everything\Everything.db”,如果电脑上有多个用户,就会有多个Everything.db文件。看文件头,该文件像是ESE数据库,但是根据Everything官方描述,该文件可能会使用BZIP算法进行压缩,所以直接搜索并不是永远都会起作用。在写这篇文章的时候,意外的发现Everything官方提供了Everything.db的转换工具,可以直接将Everything.db转换成EFU格式,该格式是Everything创建的文件列表文件,实际就是CSV格式,可以用记事本等任意文本编辑器打开查看。

请输入图片描述

另外,在写本篇文章的时候,我还发现了Everything的另外一个痕迹——文件打开记录。忘记了从哪个版本开始,Everything支持记住每个搜索结果的打开次数以优化结果排序。Everything文件打开记录位于“C:\Users\<用户名>\AppData\Roaming\Everything\”下,文件名有“Run History.csv”、“Run History.csv.tmp”,其中的“Last Run Date”字段时间戳格式为Google Chrome Value格式,可以用DCode工具进行解码。

请输入图片描述

请输入图片描述


2020年6月27日发布于本博客及微信公众号“取证杂谈”、“神探学院”。

电子数据取证中常用序列号来唯一标识检材。在检材的众多属性中,一般只有序列号可以出厂即固定且长期不变,所以理所当然被作为唯一标识信息的首选。但是,序列号真的就永远可以唯一标识一个检材?

一个案件中,被告对鉴定意见书中提到的优盘提出了质疑,称鉴定的优盘并不是他的优盘,因为序列号对不上。原来嫌疑人对电子数码比较感兴趣,平时有对优盘进行各种折腾操作的经历,正好对其优盘的序列号有印象。嫌疑人后来甚至还找到了一张以前的电脑截图,截图里是小工具USBTreeView的运行截图,里面可以看到优盘的序列号,确实与鉴定意见书中记录的不一致。

一番扯皮后,法院决定对有异议的优盘进行重新鉴定。鉴定人按照第一份鉴定意见书中提到的步骤,使用取证大师对优盘序列号进行获取,得到的结果和第一份鉴定意见书中的一致。使用FTK Imager进行检验,结果也一样。难道嫌疑人在说谎?但使用嫌疑人提到的工具USBTreeView查看,还真的可以看到另外一个序列号。

这一切到底怎么回事?为什么这么多取证软件在这里翻车?其实,这里的坑,会让不少取证软件都翻车,而且肯定已经翻车无数次了,只是没有被人注意到。

这一现象很容易复现。

下面一个朗科的优盘,本人之前常用的型号。

请输入图片描述

用取证大师加载优盘直接看,序列号为AA00000000000489。

请输入图片描述

用FTK Imager加载查看,序列号依然为AA00000000000489。

请输入图片描述

使用EnCase Imager查看,序列号却为AA00000000007275。

请输入图片描述

使用USB Tree View查看,序列号也为AA00000000007275。

请输入图片描述

在资源管理器中右击优盘,选择“属性”,然后依次点击“硬件”、“属性”,“详细信息”,然后在“属性”中选择“父系”,也可以看到和EnCase Imager中一致的AA00000000007275。

请输入图片描述

其实,造成这种情况的原因是Windows中使用不同方法获取优盘序列号,确实可能得到不同的结果。本人经过一番测试,通过PowerShell分别获取到了这两种序列号。

使用命令Get-WmiObject Win32_PhysicalMedia可以获取到序列号AA00000000000489。

请输入图片描述

使用命令Get-Wmiobject Win32_USBControllerDevice可以获取到序列号AA00000000007275。

请输入图片描述

其实,如果使用X-Ways,这两种序列号都可以获取到。新建案例加载优盘后,右击属性,即可在案件描述中看到这两个序列号。

请输入图片描述

一入取证深似海!

Windows操作系统中有很多种种方式可以检验应用程序运行记录,例如预读取文件(*.pf)、Shimcache、RecentFileCache.bcf、Amcache.hev、跳转列表等等,这些已经有很多资料介绍了。今天给大家介绍一个我最近才注意到的程序运行痕迹的地方——RADAR。

我们在Windows注册表编辑器中展开“\HKLM\SOFTWARE\Microsoft\ RADAR\HeapLeakDetection\DiagnosedApplications\”,可以看到该键有很多以程序名命名的子键,每个应用程序子键有一个名为“LastDetectionTime”的项。这些就是注册表中的RADAR数据。

下面是我在自己工作电脑上的注册表截图,可以看到Belkasoft Acquisition Tool、取证大师、FTK Imager、UFED PA、X-Ways Forensics等取证软件的记录,当然还有我们自家的手机神探(LY.exe)和取证神探。

请输入图片描述

以上图FTK Imager.exe为例,LastDetectionTime值为“1d61e8076a3cb58”,将其复制到取证神探时间解码工具中,选择FileTime格式,或使用免费的解码工具DCode选择FileTime格式进行解码,得知时间值为2020-04-30 07:46:54。

请输入图片描述

RADAR最后记录时间还可以通过对应注册表键的最后修改时间得知。最简单的方法是右击注册表键,点击“导出”,在对话框保存类型中选择“文本文件”,保存后用记事本打开即可看到对应注册表键最后修改时间。

请输入图片描述

请输入图片描述

关于RADAR,网上可以查到的中文资料不多。通过Google总算找到了少量的相关信息。RADAR是始于Windows 7的一种内存泄漏检测技术,可以自动检测出应用程序的内存泄露情况并进行定位,打包成错误报告后通过某种方式反馈给微软团队或软件开发者。

根据RADAR的原理,并非每次程序运行都会在注册表中产生记录,但如果注册表RADAR键中存在某个应用的记录,则说明该应用在对应时间点肯定运行过。经过实测,在Windows7到windows10最新版(1909)系统中都可以发现RADAR相关记录。