2025年08月12日 10:45:48 来源:四川效率源信息安全技术股份有限公司 >> 进入该公司展台 阅读量:33
编者按: 在《技术视界》前13期中,数据恢复四川省重点实验室科研人员讲解了手机音频文件提取、SQLite数据库文件恢复、手机APP取证脚本编写以及防御手机APP窃密等主题,本期重点介绍iPhone手机(越狱和未越狱)数据提取的多种方式,可以有效提取各类应用数据,包括文字、图片、声音、视频等各种多媒体信息。
随着移动通信技术的不断发展,手机也逐渐成为人与人之间的联系工具,几乎人人都会携带一部甚至多部手机。手机中各种APP会记录下大量信息,包括、位置等,这些信息很可能成为警方破案有效的辅助证据,所以对手机数据的提取很有必要。
目前Android始终是手机行业的老大,各个手机数据提取商对Android的支持也是。来自ZDC(互联网消费调研中心)手机品牌关注度的数据显示(如图1),2015年三星毫无疑问位居,但我们也同时发现,iPhone手机紧随华为位居第三,所以对iPhone手机数据提取的支持刻不容缓。下面将和大家一起来探讨iPhone手机数据的提取方式。

【图1:苹果手机品牌关注位居第三】
同Android手机一样,iPhone手机数据的提取也分两种情况越狱和未越狱。
一、未越狱手机数据的提取
未越狱手机主要通过备份和沙盒提取方式。目前8.3以上的系统不再支持沙盒提取,而且也比较简单,故不再拿出来讨论。下面只针对备份方式进行简要说明。
1、数据备份
备份可通过两种方式实现:
(1)通过iTunes直接备份。备份路径为XP:C:/Documents and Settings/用户名/Application Data/Apple Computer/MobileSync/Backup;WIN7及以上:C:/Users/用户名/AppData/Roaming/Apple Computer/MobileSync/Backup。
(2)AppleMobileBackup.exe命令。如:AppleMobileBackup.exe -b --target befd8222746f2d52b9f2f40e862444208b3d423f(设备id可在itools里查看) -q "c:emp/2016-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所示)。

【图4 :Info.plist文件内容】
(2)Manifest.plist
这个文件主要记录一些安装的应用程序信息,也记录了用户信息,如应用程序包名、版本号、安装路径等。

【图5:Manifest.plist文件内容】
(3)Status.plist
这个文件主要记录一些安装的应用程序信息,也记录了用户信息,如应用程序包名、版本号、安装路径等。

【图6:Status.plist文件内容】
(4)Manifest.mbdb
这个是最重要也是最复杂的文件,记录了所有的备份文件信息,在这里可以找到文件与app的对应关系及文件路径。
在介绍这个文件之前,必须先了解一个名词“域名”。域名是用来定位一个文件在手机上的全路径,比如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的十六进制结构】
①文件头
根据图8中红色框数据,前6个数据就是文件头。

②内容:
包含多条记录,每个记录是大小可变的,每个记录包含有关文件的各种详细信息。

根据上表显示的文件结构可以依次还原所有备份文件。当然,如果只需要解析指定文件,并且知道文件路径与所在域(比如短信,域名、路径都是固定的),那么就可以直接根据SHA1值找到备份文件并提取数据。如果是解析未知文件,如路径不固定、域名未知等,要提取数据,就必须解析Manifest.mbdb文件。
二、越狱手机数据的提取
手机越狱后相当于获取到了系统的权限,可以直接访问系统中的应用数据。下面简单列举几个常用目录:
1、系统应用目录
①/private /var/ mobile/Media /DCIM/ 照片目录
②/private/var/ mobile /Library/SMS/ 短信目录
③/private /var/root/Media/EBooks/ 目录
2、用户应用目录
用户安装应用数据存放在/private/var/mobile/Containers/Data/Application/下。
下面,以某金融类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手机可视化行踪取证系统就是一个很好的例子,他将这些方式有效结合,能更加快速完成“越狱”和“非越狱”手机数据的采集和判断,包括、行踪、购物、账号等各类应用信息以及已删除的动作行为信息。