网络安全 频道

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

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

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

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

关于iPhone手机数据提取方式的探讨
1:苹果手机品牌关注位居第三

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

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

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

1、数据备份

备份可通过两种方式实现:

(1)   通过iTunes直接备份。备份路径为XPC:\Documents and Settings\用户名\Application Data\Apple Computer\MobileSync\BackupWIN7及以上:C:\Users\用户名\AppData\Roaming\Apple Computer\MobileSync\Backup

(2)   AppleMobileBackup.exe命令。如:AppleMobileBackup.exe -b --target befd8222746f2d52b9f2f40e862444208b3d423f(设备id可在itools里查看) -q  "c:\temp\2016-05-18-15-37-42"

关于iPhone手机数据提取方式的探讨
图2 AppleMobileBackup.exe命令

 

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

 

2、数据分析

关于iPhone手机数据提取方式的探讨
图3备份目录(红色框为明文文件)

 

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

 

(1)  Info.plist

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

关于iPhone手机数据提取方式的探讨
图4 :Info.plist文件内容

 

(2)   Manifest.plist

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

关于iPhone手机数据提取方式的探讨
图5:Manifest.plist文件内容

(3)   Status.plist

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

关于iPhone手机数据提取方式的探讨
图6:Status.plist文件内容

 

(4)   Manifest.mbdb

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

在介绍这个文件之前,必须先了解一个名词“域名”。域是用来定位一个文件在手机上的全路径,比如AppDomain-com.meitu.myxj 代表手机路径/var/mobile/Applications/。

我们用NotePad++打开文件可看到一大堆域名与路径(如图7)。

关于iPhone手机数据提取方式的探讨
图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所示)。

关于iPhone手机数据提取方式的探讨
图8:Manifest.mbdb的十六进制结构

    文件头

根据图8中红色框数据,前6个数据就是文件头。

类型

Uint8[6]

mbdb\05\00

②内容:

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

类型

数据

说明

string

域名

域名(前两位为数据大小,后面紧接着为数据值)

string

文件路径

文件路径(前两位为数据大小,后面紧接着为数据值)

string

链接路径

符号链接的绝对路径(前两位为数据大小,没有链接路径则为0xff 0xff,后面紧接着为数据值)

string

SHA1摘要

一般为空,

前两位为(0xff 0xff)代表应用域中的文件

(0x00 0x14)代表系统域中的文件,向后数20位组成40位哈希值则为SHA1摘要

string

密钥

前两位为(0xff 0xff)代表未加密

否则代表密钥长度

Uint16

路径类型

0x4000为目录(测试显示4开头的都是目录)

0x8000为文件(测试显示8开头的都是文件)

0xa000为符号链接(测试显示a开头的都是链接)

Unit64

节点号

在节点号中查找条目

Unit32

User ID

一般为0x000001f5 = 501

Unit32

Group ID

一般为0x000001f5 = 501

Unit32

最后一次更改时间

精确到秒的时间戳

Unit32

最后一次访问时间

精确到秒的时间戳

Unit32

创建时间

精确到秒的时间戳

Unit64

文件大小

0代表链接或者目录

Unit8

保护等级

0x001~0x0B

Unit8

文件属性个数

记录后面记录的文件属性个数。

属性获取与域名相同:

属性名:前两位为属性名长度,接着为属性名

属性值:紧接着属性名,同样前两位为属性值长度,接着为属性值

根据上表显示的文件结构可以依次还原所有备份文件。当然,如果只需要解析指定文件,并且知道文件路径与所在域(比如短信,域名、路径都是固定的),那么就可以直接根据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的内容。

关于iPhone手机数据提取方式的探讨
图9:.com.apple.mobile_container_manager.metadata.plist文件内容

 

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

三、总结

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

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


特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章