手机取证——关于iPhone手机数据提取方式的探讨

手机取证——关于iPhone 手机数据提取方式的探讨编者按在《技术视界》前13期中,数据恢复四川省重点实验室科研人员讲解了手机音频文件提取、SQLite 数据库文件恢复、手机APP 取证脚本编写以及防

手机取证——关于iPhone 手机数据提取方式的探讨

编者按

在《技术视界》前13期中,数据恢复四川省重点实验室科研人员讲解了手机音频文件提取、SQLite 数据库文件恢复、手机APP 取证脚本编写以及防御手机APP 窃密等主题,本期重点介绍iPhone 手机(越狱和未越狱)数据提取的多种方式,可以有效提取各类应用数据,包括文字、图片、声音、视频等各种多媒体信息。

随着移动通信技术的不断发展,手机也逐渐成为人与人之间不可或缺的联系工具,几乎人人都会携带一部甚至多部手机。手机中各种APP 会记录下大量信息,包括聊天、位置等,这些信息很可能成为警方破案有效的辅助证据,所以对手机数据的提取很有必要。

目前Android 始终是手机行业的老大,各个手机数据提取商对Android 的支持也是首当其冲。来自ZDC(互联网消费调研中心) 手机品牌关注度的数据显示(如图1),2015年三星毫无疑问位居第一,但我们也同时发现,iPhone 手机紧随华为位居第三,所以对iPhone 手机数据提取的支持刻不容缓。下面将和大家一起来探讨iPhone 手机数据的提取方式。

图1:苹果手机品牌关注位居第三

同Android 手机一样,iPhone 手机数据的提取也分两种情况越狱和未越狱。

一、未越狱手机数据的提取

未越狱手机主要通过备份和沙盒提取方式。目前8.3以上的系统不再支持沙盒提取,而且也比较简单,故不再拿出来讨论。下面只针对备份方式进行简要说明。

1、数据备份

1 / 6

,

备份可通过两种方式实现: (1) 通过iTunes 直接备份。备份路径为XP :C:Documents and Settings用户名

Application DataApple ComputerMobileSync�ckup;WIN7及以上:C:Users

用户名AppDataRoamingApple ComputerMobileSync�ckup。

(2) AppleMobileBackup.exe 命令。如:AppleMobileBackup.exe -b --target

befd8222746f2d52b9f2f40e862444208b3d423f (设备id 可在itools 里查看) -q "c:temp 16-05-18-15-37-42"

图2 AppleMobileBackup.exe命令

图2中是所有命令,我们只需要用到-b (备份)、-t (设备id )、-q (备份路径)就好了(如红色框所示) ,其他没有用到的命令暂不做介绍。

2、数据分析

图3备份目录(红色框为明文文件)

如图3所示,打开备份目录可以看到一大堆40位16进制数组成文件名的文件,这些文件就是APP 的数据文件。面对这些符号复杂的文件,怎么才能知道这些文件是哪个APP 产生的数据呢?不急,图片下面有几个明文的文件,我们可以在这几个文件中找到想要的一些信息。

(1) Info.plist

这是一个plist 格式文件,可用plist editor打开查看,其中包括用户信息、设备信息、备份信息等等(如图4所示)。

2 / 6

,

图4 :

Info.plist 文件内容

(2) Manifest.plist

这个文件主要记录一些安装的应用程序信息,也记录了用户信息,如应用程序包名、版本号、安装路径等。

图5:Manifest.plist 文件内容

(3) Status.plist

这个文件记录了备份状态,包括备份时间、是否全备份、备份的UUID 等信息,如图6所示。

图6:Status.plist 文件内容

(4) Manifest.mbdb

这个是最重要也是最复杂的文件,记录了所有的备份文件信息,在这里可以找到文件与app 的对应关系及文件路径。

在介绍这个文件之前,必须先了解一个名词“域名”。域名是用来定位一个文件在手机

3 / 6

,

上的全路径,比如AppDomain-com.meitu.myxj 代表手机路径/var/mobile/Applications/。 我们用NotePad 打开文件可看到一大堆域名与路径(如图7)。

图7:Manifest.mbdb 文件内容

从图7的红色框区域,可以获取到域名(AppDomain-com.meitu.myxj )和路径(Library/com-facebook-sdk-AppEventsTimeSpent.json)。在获取到“一个域名 文件路径”的基本信息后,可通过SHA1加密得到一个40位16进制字符串,而这个字符串就恰恰对应了上面的一个文件名,通过这种方法就得到了文件与路径的对应关系。

比如:

AppDomain-com.meitu.myxj-Library/com-facebook-sdk-AppEventsTimeSpent.json的SHA1值5ee0c32e727e1a89605ee018aa9b6fd173001b57,这个值也就是该路径所对应的文件名。

如果想要还原所有备份文件,用上面的方法显然不行的,文件可读性差,分析耗时耗力。但是,如果我们知道了文件的结构,就可以通过代码来实现对该文件的解析,减少人工成本。下面将介绍Manifest.mbdb 的具体结构。

用WinHex 打开可看到他的十六进制结构(如图8所示)。

图8

:Manifest.mbdb 的十六进制结构

① 文件头

4 / 6

,

二、越狱手机数据的提取

手机越狱后相当于获取到了系统的最高权限,可以直接访问系统中的应用数据。下面简单列举几个常用目录:

1、系统应用目录

①/private /var/ mobile/Media /DCIM/ 照片目录

②/private/var/ mobile /Library/SMS/ 短信目录

③/private /var/root/Media/EBooks/ 电子书目录

2、用户应用目录

用户安装应用数据存放在

/private/var/mobile/Containers/Data/Application/下。

5 / 6

,

下面,以某金融类APP 数据为例,详细讲解。该APP 的路径为:

/private/var/mobile/Containers/Data/Application/3ADDACBE-7FDB-4726-AC47-4F1EFD0702B5/。

我们怎么知道这是哪个应用的数据呢?可以通过以下方法寻找线索。

打开该目录,我们会看到一个名叫

“.com.apple.mobile_container_manager.metadata.plist”的文件。

从文件名可看出这是一个管理文件,打开文件即可看到图9的内容。

图9:.com.apple.mobile_container_manager.metadata.plist文件内容

如图9中红色框所示,第二个框“MCMMetadataUUID ”对应的值及为目录中的那段哈希值。第一个框“MCMMetadataIdentifier ”对应的值则为应用程序包名。知道这些信息后,我们就可以对指定应用进行解析,提取需要的数据。

三、总结 通过备份方式虽然能提取未越狱手机中的数据,但毕竟是没有拿到最高权限的,

所以还是有部分数据不能提取出来。而且,这个过程必须先全部备份再解析相应文件,增加了数据提取的时间。而越狱手机拿到了最高权限,直接读取需要的文件,减少了备份这个步骤,更加快速的实现数据的提取。

目前,市面上有一部分取证设备采用了这些方法,效率源的MTF 手机可视化行踪取证系统就是一个很好的例子,他将这些方式有效结合,能更加快速完成“越狱”和“非越狱”手机数据的采集和判断,包括聊天、行踪、购物、账号等各类应用信息以及已删除的动作行为信息。

6 / 6

标签: