本文是介绍如何设置和使用某些最重要的IOS应用渗透测试工具的系列课程中的第一篇。

对于这个系列文章来说,我们会假设用户使用Electra进行越狱。我具体使用的是iOS11.1.2,但是本系列中的大多数工具都可以在任何版本的iOS11上使用。

实现手机越狱

虽然我们可以在非越狱设备上进行某些渗透测试,不过,只有越狱之后,才能使用所有可用的工具实现全方位的测试。其实,越狱过程非常简单——您可以从这里下载11.0-11.1.2版本的Electra,或者这里下载11.2-11.3.1版本的Electra。

该软件的安装说明可参阅这里。

使用SSH连接设备

在安装Electra时,会顺便安装OpenSSH,这意味着我们可以通过ssh连接至设备。实际上,在进行渗透测试的过程中,几乎到处都要用到这个功能。

确定我们的iPhone手机的IP地址——为此,请打开Settings -> Wi-Fi选项。然后,单击所连接的WiFi旁边的“i”图标,并记下这个IP地址。

打开一个新的终端窗口,然后键入下列命令:

ssh [email protected]

(其中X是我们找到的IP地址)

当提示输入密码时,键入“alpine”——这是默认密码,为了安全起见,最好立即修改该密码(更多详情,请参考这里)。

完成上述操作后,会看到如下内容:

My-iPhone:~ root#

大功告成了!

破解应用程序

一旦你越狱成功了,我们就可以进行渗透测试了。通常情况下,第一件事情就是破解目标应用程序,并考察其文件和二进制代码。在iOS11上,我们可以使用一个名为“bfinject”的工具来完成该任务。

Bfinject是一款.dylib注入工具,适用于11.0-11.1.2版本的iOS系统。实际上,该工具不仅提供了破解功能,同时,它还提供了cycript(将在稍后讨论)。

安装bfinject时,可以从此处下载相应的tarball安装包。然后,需要将其复制到我们的设备:

在手机的终端中(即通过ssh连接手机后),使用下列命令来创建一个文件夹:

$ mkdir bfinject

然后,将这个tarball传输到手机中的bfinject文件夹中。实际上,为了达到这个目的,可用的方法有很多——例如,可以使用scp,不过对我来说,更喜欢使用Cyberduck,该工具可以从这里下载。在使用Cyberduck软件时,请转到左上角的“Open Connection”,选择SSH协议,并使用与前面相同的IP/密码进行登录(您可以将端口保留为22)。

现在,在Cyberduck或终端中,切换到设备的bfinject文件夹,并从Mac为其上传tarball安装包。对于使用Cyberduck的读者来说,先单击“Action”按钮,然后单击“Upload”按钮即可。

最后,执行下列命令:

$ tar xvf bfinject.tar

在运行bfinject之前,我们需要从Cydia下载“Core Utilities”。为此,请打开Cydia,并搜索该软件。选择该软件后,转到“Modify”,然后选择“Install”即可。

现在,我们已经为破解应用程序做好了准备。至于选择哪个软件吗?大家可以根据自己的喜好,从应用程序商店下载即可。下载相应的软件之后,请打开该应用程序,并使其位于手机的前台,同时,还要确保手机已经与计算机相连。在root终端中,导航至bfinject文件夹,并运行下列命令:

$ bash bfinject -P <AppName> -L decrypt

这时候,将在终端中看类似下面这样的内容:

几秒钟后,会在手机上收到破解完成的消息。当该软件询问是否想要使用netcat时,请选择“No”。现在,要获取破解之后的.ipa文件,需要在手机上找到该应用程序的目录。在Cyberduck或终端中,该目录位于/private/var/mobile/Containers/Data/Application。

顺便说一句,在手机中上,要想进入var目录,需要从root目录下面运行“cd ..”命令,因为我们使用ssh连接手机后,首先会进入root目录。

在Application目录中,可以看到许多具有随机名称的文件夹。其中每个文件夹都对应于该设备上的一个应用。为了帮助快速找到与目标应用程序相对应的目录,可以通过Cyberduck的“Modified”按钮对其进行排序,而最近安装的应用程序应该排在最前面。之后,请切换至目标应用程序对应目录下的Documents目录,这样就可以找到decrypted-app.ipa文件了。然后,在Cyberuck中选择“Action”->“Download as”选项,从而完成下载。之后,可以对这个文件进行重命名,具体名称您随意,不过,一定要把扩展名改为“.zip”,而不是原来的“.ipa”,这样,我们就可以轻松查看其内容了。

这样,就破解并下载好了我们的第一个应用程序!

class-dump

接下来要使用的class-dump软件,也是一个非常有价值的工具:它不仅可以转储应用程序类的运行时头文件,还能帮助我们理解应用程序的结构,选择我们想要的目标位置。

为了在Mac上安装该软件,请打开一个新终端,并运行下列命令:

$ 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”文件,这样就能找到该应用程序的所有运行时头文件了。

我通常从搜索单词“password”、“authentication”、“user”或“credentials”开始,来寻找让人感兴趣的类、方法或属性。

好了,本系列的第一篇文章就到此结束了!在第2篇文章中,我们将为读者介绍如何安装、探索和篡改cycript。在第3篇文章中,我们将介绍FRIDA/Objection工具的用法;在第4篇文章中,我们将介绍如何使用Hopper和lldb工具来调试二进制代码。

本文翻译自:https://www.allysonomalley.com/2018/08/10/ios-pentesting-tools-part-1-app-decryption-and-class-dump/如若转载,请注明原文地址: http://www.4hou.com/technology/15829.html
源链接

Hacking more

...