对iOS应用程序进行渗透测试而无需越狱

这是一篇文章,总结了我在伦敦AppSec EU 2018上演讲的一个实际部分。

从理论上讲,在不越狱的情况下对iOS应用进行渗透测试的一般概念包括5点:

  1. 下载应用程序包
  2. 搭建环境
  3. 注入自定义dylib和修改可执行文件
  4. 重新包装并签署包裹
  5. 以调试模式在设备上安装应用

每个应用程序包都使用iOS设备的加密密钥加密。 该机制称为Apple FairPlay(https://en.wikipedia.org/wiki/FairPlay)。 因此,如果您没有应用程序包,则将无法使用此方法-您仍然需要越狱的iDevice。 这不是针对赏金计划参与者的解决方案。 幸运的是,在“最忙碌的世界”中,客户端通常会交付应用程序包😉。

*您当然可以从https://www.iphonecake.com/等网站下载IPA文件,但不建议这样做-应用可能感染了恶意软件,并且通常已经过时。

在我们的示例中,我们将使用漏洞赏金计划中可用的Etsy应用程序。

首先,您需要注册为开发人员。 在此示例中,我们将使用免费的开发人员帐户,因此不需要$ 99的付费开发人员帐户。 然后,您必须注意两件事:签名证书和Embedded.mobileprovision文件。

处理它的最简单方法是创建一个空的XCode项目。

按下一步进入项目设置。

插入您的iOS设备,在XCode(在顶部栏中)中将其选中,然后选中“自动管理签名”复选框。 XCode将为您完成所有工作。 然后,按“生成并运行”按钮,然后等待应用程序安装。

如果您使用免费的开发者帐户,则还必须在iDevice的“设置”中信任该应用程序。

我的演讲中详细描述了3点和4点。 如果您想深入了解这些内容,请查看OWASP的记录。

最简单的方法是打开终端并输入:

安全查找身份-p代码签名-v

这将为您显示所有有效的代码签名。 然后,您需要复制ID并使用以下参数运行异议:

异议patchipa-源./etsy.ipa-codesign-signature SIGNATUREHERE

该过程应如下图所示:

安装修补的ipa的最便捷方法是留在同一终端中并键入:

解压缩etsy-frida-codesigned.ipa

然后使用ios-deploy工具:

ios-deploy-捆绑./Payload/Etsy.app -W -d

下面是描述过程的记录:

由于现在已经准备好环境,因此需要将您喜欢的工具连接到Frida的dylib。

在演示中,我使用了百香果-(ChiChou和oleavr)的荣誉。

伙计们! 现在,您可以在未越狱的iDevice上执行渗透测试! 💪🏻


本文介绍有关iOS应用程序安全测试期间的技术挑战。 如果您对更一般的移动应用程序安全性要求和最佳实践感兴趣, 请查看我们的指南


您还应该符合iOS安全套件 —一个Swift库,可简化iOS应用程序中防篡改机制的实现。