最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

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

IT圈 admin 41浏览 0评论

2024年1月30日发(作者:铁春桃)

手机取证——关于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 ComputerMobileSyncBackup;WIN7及以上:C:Users用户名AppDataRoamingApple ComputerMobileSyncBackup。

(2) 命令。如: -b --target

befd8222746f2d52b9f2f40e862444208b3d423f(设备id可在itools里查看) -q

"c:temp2016-05-18-15-37-42"

图2 命令

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

2、数据分析

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

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

(1)

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

2 / 6

图4 :文件内容

(2)

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

图5:文件内容

(3)

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

图6:文件内容

(4)

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

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

上的全路径,比如 代表手机路径/var/mobile/Applications/。

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

图7:文件内容

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

比如:

-Library/的SHA1值5ee0c32e727e1a89605ee018aa9b6fd173001b57,这个值也就是该路径所对应的文件名。

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

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

图8:的十六进制结构

① 文件头

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

类型

Uint8[6]

mbdb0500

②内容:

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

4 / 6

类型

string

string

string

string

数据

域名

文件路径

链接路径

SHA1摘要

说明

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

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

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

一般为空,

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

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

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

否则代表密钥长度

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

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

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

在节点号中查找条目

一般为0x000001f5 = 501

一般为0x000001f5 = 501

string

Uint16

密钥

路径类型

Unit64

Unit32

Unit32

Unit32

Unit32

Unit32

Unit64

Unit8

Unit8

节点号

User ID

Group ID

最后一次更改时间 精确到秒的时间戳

最后一次访问时间 精确到秒的时间戳

创建时间

文件大小

保护等级

文件属性个数

精确到秒的时间戳

0代表链接或者目录

0x001~0x0B

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

属性获取与域名相同:

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

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

根据上表显示的文件结构可以依次还原所有备份文件。当然,如果只需要解析指定文件,并且知道文件路径与所在域(比如短信,域名、路径都是固定的),那么就可以直接根据SHA1值找到备份文件并提取数据。如果是解析未知文件,如路径不固定、域名未知等,要提取数据,就必须解析文件。

二、越狱手机数据的提取

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

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/。

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

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

“._container_”的文件。

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

图9:._container_文件内容

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

三、总结

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

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

6 / 6

2024年1月30日发(作者:铁春桃)

手机取证——关于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 ComputerMobileSyncBackup;WIN7及以上:C:Users用户名AppDataRoamingApple ComputerMobileSyncBackup。

(2) 命令。如: -b --target

befd8222746f2d52b9f2f40e862444208b3d423f(设备id可在itools里查看) -q

"c:temp2016-05-18-15-37-42"

图2 命令

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

2、数据分析

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

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

(1)

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

2 / 6

图4 :文件内容

(2)

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

图5:文件内容

(3)

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

图6:文件内容

(4)

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

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

上的全路径,比如 代表手机路径/var/mobile/Applications/。

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

图7:文件内容

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

比如:

-Library/的SHA1值5ee0c32e727e1a89605ee018aa9b6fd173001b57,这个值也就是该路径所对应的文件名。

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

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

图8:的十六进制结构

① 文件头

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

类型

Uint8[6]

mbdb0500

②内容:

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

4 / 6

类型

string

string

string

string

数据

域名

文件路径

链接路径

SHA1摘要

说明

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

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

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

一般为空,

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

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

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

否则代表密钥长度

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

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

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

在节点号中查找条目

一般为0x000001f5 = 501

一般为0x000001f5 = 501

string

Uint16

密钥

路径类型

Unit64

Unit32

Unit32

Unit32

Unit32

Unit32

Unit64

Unit8

Unit8

节点号

User ID

Group ID

最后一次更改时间 精确到秒的时间戳

最后一次访问时间 精确到秒的时间戳

创建时间

文件大小

保护等级

文件属性个数

精确到秒的时间戳

0代表链接或者目录

0x001~0x0B

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

属性获取与域名相同:

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

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

根据上表显示的文件结构可以依次还原所有备份文件。当然,如果只需要解析指定文件,并且知道文件路径与所在域(比如短信,域名、路径都是固定的),那么就可以直接根据SHA1值找到备份文件并提取数据。如果是解析未知文件,如路径不固定、域名未知等,要提取数据,就必须解析文件。

二、越狱手机数据的提取

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

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/。

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

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

“._container_”的文件。

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

图9:._container_文件内容

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

三、总结

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

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

6 / 6

发布评论

评论列表 (0)

  1. 暂无评论