导语:这是iOS渗透测试工具的第一部分,我会教你如何设置和使用一些最重要的iOS应用程序渗透测试工具。

这是iOS渗透测试工具的第一部分,我会教你如何设置和使用一些最重要的iOS应用程序渗透测试工具。

注意,在开讲之前,我会将假设用户正在使用Electra越狱工具,我自己使用的是iOS 11.1.2,但本系列中的大多数工具都适用于任何版本的iOS 11。由于我没有iOS 11.3.1设备,只知道bfinject尚未针对11.3.1进行更新。

手机越狱

虽然你可以在未越狱的设备上进行渗透测试,但你需要越狱才能使用所有可用的工具进行全面的测试。由于越狱过程非常简单,我就不详细说了,你可以点此下载11.0-11.1.2版本的Electra,点此下载11.2 – 11.3.1版本的Electra。安装说明可在此处找到。

通过SSH进入你的设备

Electra会附带着OpenSSH一起安装,这意味着你可以立即将ssh插入你的设备。在测试时,几乎所有的设备都需要通过以下3个步骤进行:

1.找到你的iPhone的IP地址,然后设置- > Wi-Fi,点击你连接的WiFi旁边的“i”图标,记下IP地址;

2.打开一个新的终端窗口,然后输入以下代码(其中X是你找到的IP地址);

ssh [email protected]

3.当提示输入密码时,输入‘alpine’,这是默认密码,出于安全原因,你应立即更改此密码,具体原因请参考此处

当你完成以上这些步骤后,你应该就可以看到以下这样的提示信息。

My-iPhone:~ root#

App Decryption

一旦越狱成功,你就可以开始进行渗透测试了。通常,第一步是打开你选择的目标应用程序,并检查其文件和二进制文件。在iOS 11上,你将使用名为“bfinject”的工具执行此操作。

Bfinject是适用于iOS 11.0 – 11.1.2的.dylib注入工具,它包括解密功能和cycript功能。

要安装bfinject,请先点此下载tarball。然后,你需要将其复制到你的设备上,具体分以下4个步骤:

1.通过ssh进入你的手机终端后,通过输入以下内容创建文件夹:

$ mkdir bfinject

2.然后,你需要将tarball复制到你的设备上,并将其放入创建的bfinject文件夹中。你可以通过很多方法实现这一点,比如你可以使用scp,但我更喜欢使用Cyberduck。如果你正在使用CyberDuck,请转到左上角的“打开连接”,选择SSH协议,然后使用与之前相同的IP /密码登录(你可以将端口保留为22)。

3.现在,在Cyberduck或终端中,进入设备的bfinject文件夹,然后从Mac上传tarball。要在Cyberduck中执行此操作,请单击“操作”,然后单击“上传”。

4.最后,输入以下内容。

$ tar xvf bfinject.tar

在运行bfinject之前,你需要从Cydia下载“Core Utilities”。打开Cydia并搜索它,选中后,转到“修改”,然后选择“安装”。

现在你就可以开始准备破解你的第一个应用程序了,这个应用程序可以是从app store下载的大多数应用程序(你有测试的权限!)。确保应用程序已打开并位于手机的运行前端,且将你的手机已插入计算机。进入终端的root中,导航至bfinject文件夹并运行以下内容。

$ bash bfinject -P <AppName> -L decrypt

你将在终端中看到类似以下的内容:

6.png

几秒钟后,你应该会在手机上收到解密完成的消息。它会询问你是否要使用netcat,你可以回复“不”。现在,要获取解密的.ipa文件,你就需要在手机上找到应用程序的目录。在Cyberduck或终端中,你的导航路径是这样的:/private/var/mobile/Containers/Data/Application

注意:因为你手机中的目录可能有点混乱,要进入'var'目录,你需要从'root'中'cd ..'开始找,它是你在ssh登录之后的初始位置。

在应用程序目录中,你将看到一堆含有随机名称的文件夹,每个文件夹对应于你设备上的一个应用。为了帮助你快速找出与目标应用程序相对应的文件夹,你可以通过“修改”对Cyberduck进行排序,最近安装的应用程序应该是排在第一个。找到该文件夹后,你就可以进入该文件夹,在其文档目录中,你将找到decrypted-app.ipa,然后在Cyberuck中,点击‘Action’->’Download as’下载。你可以随意对下载的文件重命名,但请确保将扩展名更改为“.zip”而不是“.ipa”,以便你可以轻松检查其中的内容。

现在你已经正式解密并下载了你的第一个应用程序!

class-dump

我将要给你介绍的是class-dump工具,class-dump,顾名思义,就是用来dump目标对象的class信息的工具。它利用Objective-C语言的runtime特性,将存储在Mach-O文件中的头文件信息提取出来,并生成对应的.h文件。class-dump可以帮助我们理解应用程序的结构,并选择我们想要的目标位置。

如果要在Mac上安装class-dump,请打开一个新终端并运行以下内容。

$ brew install class-dump

然后,找到应用程序的可执行文件。在你把 .ipa/.zip文件解压缩并复制到计算机后,你将通过/Payload/AppName.app/AppName路径,在文件夹中找到它。

现在,你可以运行以下内容了。

./class-dump <AppName>.app/AppName > Dumped

如果出现错误,你可以尝试安装class-dump生成的不同类,比如这个这个。 根据版本的不同,如果仍然出现错误,请尝试将<AppName>.app/AppName更改为<AppName>或<AppName.app>。

现在,在你最喜欢的文本编辑器中打开'Dumped'文件,你应该看到所有应用程序运行时的标头。

9.png

我通常会首先通过搜索 ‘password’, ‘authentication’, ‘user’或 ‘credentials’ 等关键词,以识别任何有特殊意义的类、方法或属性。

在第2部分中,我将介绍安装、探索和篡改cycript的过程。 第3部分,我将介绍Frida / Objection。第4部分,我将介绍使用Hopper和lldb进行调试或二进制修复。

源链接

Hacking more

...