iOS研究之工具

iOS研究之工具
iOS研究之工具

本文由小茆同学编译,金恒源、陈裕铭校对,转载请注明。

这篇文章将帮助您使用两个二进制文件设置您的iDevice(译者注:iDevice,非官方词汇,泛指Apple公司生产的以“i”字母为开头命名的电子产品,如:iPhone、iPad、iPod等。),这会大大有助于目标测试和分析。目的是使取证人员能够独立进行研究和测试,并且能够自信地解决所遇到的问题。目前依靠商业工具来提取和解析iDevice数据是很普遍的,本文绝对适合您!

总结一下将要做的事情:

1.安装并运行已经具有适当权限的“fsmon”和“cda”二进制文件。

2.大体了解“fsmon”和“cda”运行过程以及如何运行。

3.使用“fsmon”和“cda”来锁定iPhone上的特定数据。

4.将特定数据提取到桌面上。

**如果您正在阅读本篇文章,请确保您已经阅读并遵循了第1部分和第2部分的说明。强烈建议您在辅助、测试或者研究设备上执行此操作,而不是您的主要使用设备。在这里所做的任何事情都不应该破坏任何东西,当您在root shell中进入设备时应当保持谨慎。

iOS研究之工具

下载iOS二进制文件

在这里笔者已经制作好了这两个二进制文件,使用笔者提供的文件可以使实验过程变得更加容易。下面的链接中存在一个包含“cda”和“fsmon”的.zip文件,这两个文件都是Mach-O(Mach Object文件格式的缩写)格式的 64位ARM架构的可执行文件。

“cda”二进制文件有助于定位应用程序数据存储的位置。iOS将大多数应用程序数据存储在文件系统中随机生成的GUID后面,因此查找某个应用程序其数据存储的位置是一件非常痛苦的事情。该文件可以很短的时间内快速地告诉取证人员需要注意的目录。

“fsmon”二进制文件是一个文件系统监视器。简单的说,它将文件系统中发生的改变都显示在屏幕上。出于研究目的,这是很宝贵的。当需要知道例如拍照、发短信、安装应用程序等操作时都发生来了什么,您可以在按下设备上的按钮的同时运行“fsmon”,看着屏幕随着程序的运行而变化。

1. 单击此链接并下载.zip文件(这不是恶意软件,请放心下载)。

https://drive.google.com/drive/folders/17coqGLWIdXcWx_RhnV6qAq7tlh7xpfqu?usp=sharing

如果您想自己制作该程序,或者您对该文件感到好奇,可以在GitHub repo的链接中找到他们:

https://github.com/ay-kay/cda

cda-“一个简单的iOS命令行工具,用于搜索已安装的应用程序并列出其相关的文件夹(包、数据、组)。

https://github.com/nowsecure/fsmon

fsmon-文件系统监视器。

2. 为了方面操作,可以将把它们放在桌面上的一个文件夹中。在桌面上创建一个名为“binaries”的文件夹,并将.zip文件移动到文件夹中。在文件夹中将zip文件解压缩,使两个这两个文件位于“binaries”文件夹中。如下图所示:

iOS研究之工具
iOS研究之工具

连接测试设备

现在有了所需的文件,需要确保设备可以用通过USB连接到Mac,并且他们之间可以进行通信。请按照本系列part 2部分文章中的说明,通过USB连接到您的设备。下面将展示我的操作,如果有任何问题,请查阅之前文章的相关部分,并确保系统已根据之前文章设置正确。

此次测试设备是具有iOS 14.2的iPhone X(A1865),并使用checkra1n越狱。

1.在Mac上打开终端窗口。键入iproxy 4242 44并按return。(如果设备是使用unc0ver越狱的,则端口需要修改为22而不是44)。

iOS研究之工具

2.此时仍处于终端窗口中,按键盘上的command+T组合键打开新的终端窗口。在新窗口中,键入ssh root@127.0.0.1-p 4242并按return。系统将提示输入密码以通过SSH访问设备。如果尚未设置唯一密码,则输入默认密码:alpine。键入密码时不会显示任何内容,请键入密码并按return。然后,您会在下面的屏幕截图中看到一些带有#的bash提示符:

iOS研究之工具

现在已经可以通过Mac使用CLI(命令行界面)对iPhone进行操作。此时应该小心操作,避免误删文件和目录。如果不熟悉CLI,可以事先做一些研究。您可以选择在线查找相关知识,接下来我也将对这里使用的命令进行非常详细的阐述。

现在打开一个终端窗口,用iproxy映射到iPhone。除非连接失败必须重新打开,否则不会再使用该窗口。下一个终端窗口应该是测试iPhone的shell。

3.使用shell进入iPhone的窗口中,键入pwd并按return,将会显示当前目录或“Print Working Directory”。此时可以看到当前正处在/var/root目录下。现在键入ls-la并按return,列出当前目录中的文件。

**对于在本篇文章中使用的任何CLI程序,在Mac终端shell中,您可以键入man<name_of_utility>并按return键查看其手册以及所有可用的标志。例如,如果我想知道如何使用“ls”通过递归的方法列出目录和子目录中的所有文件,我会键入man ls并按return。使用man命令的用法手册,我可以看到使用ls-laR将(l)列出长格式,(a)分别显示以点(.)、(R)开头的目录条目和递归列出遇到的子目录。若要离开该页面,只需按Q即可,然后它将跳转回终端shell。

iOS研究之工具
iOS研究之工具

将二进制文件从Mac复制到iPhone

现在,已经下载了文件且放在桌面上,并在iPhone上安装了一个shell——以便将文件植入iPhone中。

1.通过终端shell进入iPhone,再次按command+T打开新的终端窗口。这个新终端页面是Mac上的shell,而不是iPhone中的shell。单击Mac上新打开的终端窗口并键入以下内容:

scp-P 4242~/Desktop/binaries/cdaroot@127.0.0.1:然后按return。此时会提示输入访问iPhone的密码,这个密码不是解锁iPhone的密码,而是更改后设置的alphine或独有的密码。总之输入密码并按return。

此时正在使用“scp”命令在主机Mac和连接的iPhone之间进行“安全复制”或远程复制文件。上文中执行的命令的意思是:“scp(secure cope安全复制)-P(端口)4242(端口号)~/Desktop/binaries/cda(一个名为cda的文件,位于/Users//Desktop/binaries/)root@127.0.0.1:(root是用户名,127.0.0.1是本地主机,您必须在末尾添加“:”)。

如果运行成功,应该会看到如下图所示的样子:

iOS研究之工具

2.为了进一步确认它的运行状态,可以查看呈现在iPhone上的文件列表。单击终端选项卡,通过shell进入iPhone。再次键入ls-la并按return。如果没有离开/var/root目录,会看到文件系统根目录中的文件列表,在列表中会看到“cda”。

iOS研究之工具

同理,将“fsmon”植入到iPhone中。

3.单击返回到刚刚植入“cda”的Mac终端窗口。同理,但这次的目标换成了“fsmon”。此时键入scp-P 4242~/Desktop/binaries/fsmonroot@127.0.0.1:并按return。输入密码并按return。

iOS研究之工具

4.如果是首次,应该运行的很顺利,但保险起见,需要再检查一下。单击终端选项卡,shell进入iPhone。键入ls-la并按return。现在,不出意外的话在文件列表中也可以看到“fsmon”。

iOS研究之工具

5.下一步要做的是将这些二进制文件复制到iPhone中不同的目录。若您步步紧跟,那么此时应该仍然在iPhone上的/var/root路径中,这两个二进制文件都应该在这里。在该shell中,键入cp./cda/usr/bin/并按return。此时看似什么都没有发生,但此时已经将“cda”文件复制到目录/usr/bin/下。同理对fsmon执行同样的操作,键入cp./fsmon/usr/bin/并按return。

iOS研究之工具

6.现在已经将它们复制到/usr/bin/目录中,可以去那里检查一下。为了更改目录,此处将使用“cd”命令,然后简单地键入要去的位置。键入cd/usr/bin/并按return后检查该目录,确保文件复制到了正确的位置。键入ls-la并按return,此时会在此处看到更长的文件列表,但务必确保看到“cda”和“fsmon”。如果同时看到了这两种文件,那么就比个耶。现在距离使用这些东西还有一步之遥!

iOS研究之工具

7.现在有了想要的二进制文件,但必须赋予它们在这台设备上执行的权限。键入chmod+x cda并按return,然后键入chmod+x fsmon并按return。按下return后不会有反应,只是对这两个二进制文件进行了设置,以便它们可以在备上运行。

iOS研究之工具
iOS研究之工具

关键时刻——二进制文件是否奏效?

我们将从“cda”开始,因为它将告诉我们需要在哪些目录上运行“fsmon”来监视活动。

1. 键入cda safari并按return。之所以选择Safari是因为几乎每个iDevice都有它,并且大概率会产生结果。此时会立即在屏幕上看到结果。我的设备为本地Safari应用程序显示了两个不同的结果,一个用于com.apple.SafariViewService,另一个用于com.apple.mobilesafari。这两个结果对于可能搜索的任何应用程序都非常典型,它通常显示Bundle、Data和Group(如果存在)的路径。这三条路径的概要如下:

· Bundle-此路径是应用程序文件所在的位置。代码是应用程序本身,而不是用户的数据。您可以在这里找到语言包、插件和其他东西,除非目标是对应用程序进行逆向工程,否则不需要在这里花费任何时间。将这些文件视为安装应用程序时下载的文件即可,所以它会出现在设备上,但您尚未打开它并使用,所以尚未生成任何用户数据。

· Data-此处存储着用户数据。使用“cda”所找到的每个应用程序都有一个数据路径。

· Group-这里也存在用户数据。但并非每个应用程序都使用../Shared/AppGroup/目录来存储用户数据。如果没有看到应用程序Group路径,请不要担心,如果看到了,也不能忽略它。一些应用程序在这里存储了很重要的数据!

iOS研究之工具

(选读)为了解决第三方应用程序——Google Voice此次将再次使用“cda”。您可能没有Google Voice,但如果您有其他第三方应用程序,请尽可能多的使用“cda”来搜索第三方应用程序!我想向您展示这个,这样您就可以看到不止一个“cda”的例子,因为它准确地告诉了我们需要在哪里进行研究!在下面的图片中,您可以看到我键入了cda google voice并按了return键,它显示了一个bundle、data和两个不同的group路径,用于存放google voice的数据。

iOS研究之工具

2.现在继续讨论一个使用“cda”适当利用“fsmon”来完成任务的典型例子!首先必须确保“fsmon”有效。这个二进制文件很容易使用,只需要启动它并告诉它希望它监视哪个目录即可。我从使用它的过程中所学到的一件事是:监控得越少,就越容易发现端倪。启动后,可以按control+C停止它。

3.为了确保它正常工作,请键入fsmon/并按return。这样操作的目的是在文件系统的根目录上运行文件系统监视器。(**如果出现错误,可以键入/usr/bin/fsmon/使其正常工作。)只要按return键启动“fsmon”,打开手机上的任何应用程序,如“设置”、“邮件”或其他不重要的应用程序。您应该会看到屏幕上亮起文件系统创建、修改和删除条目。您的输出结果肯定会和我的有所不同,这是意料之中的。按control+C停止它。希望这在您的手中能很好地发挥作用,现在可以开始使用它并制定使用它的策略了。

iOS研究之工具

下面将介绍一种使用这些二进制文件针对特定数据进行提取的方法,并从iPhone中将这些数据提取到桌面。

1.安装应用程序Viber Messenger:Chats & Calls,此处可以使用“cda”知道它存储数据的位置,然后使用“fsmon”尝试查看特定操作的结果。在iPhone上找到App Store并搜索Viber,然后下载安装。(如果您想了解更多,可以在运行“fsmon”的同时执行这些操作,看看文件系统上发生了什么!)

现在已经安装了Viber。但是…在打开这个软件之前,我想先看看它在做什么。

2.通过Shell进入iPhone,键入cda-viber并按return。此时可以看到Viber返回了一个Bundle的路径,它有一个Data路径,这是意料之内的事,但也有一个需要注意的Group路径。

iOS研究之工具

此时知道了Viber可能存储用户数据的位置,因此选择监视Data路径。

3.对于Viber安装,Data路径是

/private/var/mobile/Containers/Data/Application/FAE649F5-56EB-4859-A4FB-BD88616720DE。

为了在设置应用程序时监视该路径,请键入

fsmon/private/var/mobile/Containers/Data/application/FAE649F5-56EB-4859-A4FB-BD88616720DE并按return。启动并运行后,打开应用程序并进行设置。正如下图所示,当开始设置应用程序时,文件系统会不断加载,在这里所看到一切都在一点点发生。

iOS研究之工具

**如果您也想或需要监视Group路径,可以打开一个新的终端窗口,并在iPhone中打开另一个shell(sshroot@127.0.0.1-p 4242,return,输入密码,return)并在该组目录上运行“fsmon”**

此时您设置了应用程序,并执行了所需的操作,并由于“fsmon”出色的工作使得他将结果反馈到您的屏幕上。我希望您能看到他是如何帮助您进行研究,并在您工作时快速调用相关的文件和文件夹。您做了一个特定的操作,然后快速地查看那个文件,找到您想要的。让我们以Viber数据为目标,将其提取到桌面,以便快速进行调查。

从“cda-viber”的输出中,我需要获得Data和Group路径的内容。但我没有得到Bundle路径。下面展示的例子,您的路径会与我的不同。因此您必须复制您的Data和Group路径,并按照范例相似的步骤来实现相同的结果。

4.返回终端,注意这里点击Mac的shell,而不是iPhone的。我们将通过SSH使用“tar”在桌面上为Viber创建一个Data和Group目录的.tar文件。

在Mac终端shell中,键入ssh root@127.0.0.1-p 4242'tar-cvf-<paste_path_to_Data><paste_path_to-Group>'>~/Desktop/Viber1.tar并按return。在SSH过程中输入访问iPhone的密码(alpine或您更改的密码),然后按return。此时会在屏幕上看到一长串文件,并且您的桌面上应该有一个名为Viber1.tar的新文件。

iOS研究之工具

**我们使用这个.tar命令保存了数据的时间戳,如果您关心时间戳的完整性,请确保将提取的数据设定为只读,以避免打开文件时更新时间戳**

(为避免命令中缺少空格等问题建议使用复制粘贴操作)将键入的准确文本粘贴到终端窗口中,目的是将此数据复制到桌面:

bizzybarney@MacBook-Pro~%sshroot@127.0.0.1-p 4242'tar-cvf-/private/var/mobile/Containers/Data/Application/FAE649F5-56EB-4859-A4FB-BD88616720DE/private/var/mopile/Continers/Shared/AppGroup/1195ECFB-4F5B-4BC0-9E7F-490418D1651C'>/Desktop/Viber1.tar

现在,桌面上有所有属于Viber Data和Group路径的文件和文件夹。目前已经成功地提取了这些文件,而无需使用任何商业工具来提取大量无关的其他数据,并且可以在几秒钟内开始检查结果,而无需等待任何冗长的解析过程。此时可以选择返回Viber并执行更多创建新数据的操作,然后再次提取这些文件,只需将输出文件名更改为Viber2.tar或任何您选择的文件。如果您正在对一个应用程序进行完整解析,那么在多次提取数据后,每次都会了解到更多关于数据存储方式的信息,不必感到惊讶。

在下图中,可以看到Viber的Data和Group(../Shared/AppGroup/)文件和文件夹,可以快速打开该目录下的Preferences-com.Viber.plist并查看在设置过程中输入的用户电话号码!

iOS研究之工具

请在不同的应用程序上,针对其特定数据自由练习上述步骤。此外,别忘了iPhone的/private/var/mobile/Library/路径下的本地iOS文件——我们也可以监控这些目录,那里有很多惊喜!

恭喜您按照所有步骤成功到达这里!我知道这种设置很费力,如果您刚开始使用CLI,这会很困难。之前的我同你们一样,但经过大量的练习和失败,我现在能够用“cda”找到我想研究的数据,用“fsmon”查看文件系统,然后在几分钟内用“tar”打包出我想要的数据。

参考链接:

http://www.mac4n6.com/blog/2021/3/21/part-3-step-by-step-tooling-for-ios-research-via-bizzybarney

iOS研究之工具
iOS研究之工具

原文始发于微信公众号(数据安全与取证):iOS研究之工具

版权声明:admin 发表于 2022年11月25日 下午3:06。
转载请注明:iOS研究之工具 | CTF导航

相关文章

暂无评论

暂无评论...