对iOS应用程序进行渗透测试而无需越狱
这是一篇文章,总结了我在伦敦AppSec EU 2018上演讲的一个实际部分。
从理论上讲,在不越狱的情况下对iOS应用进行渗透测试的一般概念包括5点:
- 下载应用程序包
- 搭建环境
- 注入自定义dylib和修改可执行文件
- 重新包装并签署包裹
- 以调试模式在设备上安装应用
每个应用程序包都使用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应用程序中防篡改机制的实现。
- 如何在不使用AudioSessionSetProperty的情况下路由到kAudioSessionProperty_OverrideCategoryEnableBluetoothInput
- NSXMLParser解析器:parseErrorOccurred:未在iOS 7上调用
- 有没有什么办法使用NSPredicate来过滤CoreData中点之间的距离计算对象
- iOS在prepareSegue之前执行button的动作
- UITextField获取焦点,然后由于在textFieldShouldReturn中返回YES而立即失去焦点
- 删除iOS 5 ARC中的NSNotificationCenter观察者
- 我们如何在一个应用程序中使用HTTP和HTTPS两种ATS(应用程序传输安全性)?
- AFNetworking:setRedirectResponseBlock在我的类NSURLResponse总是返回空值
- 检测圆上的触点,Cocos2d