iOS应用程序安全性第1部分-为iOS平台设置测试环境

欢迎来到我的文章“ iOS应用程序安全性测试系列”

在本系列中,我将提供有关iOS应用程序安全性测试的信息,从为iOS平台设置测试环境开始,一直到测试数据存储,密码学,身份验证,网络通信和逆向工程。

在本部分中,我们将介绍设置测试环境 ,在本系列的后续部分中,我们将更深入地研究在iOS应用程序上执行渗透测试和漏洞评估所需的工具和技术。

观众与期望

面向的受众是各种各样的,从iOS开发人员到安全专业人员,不一而足–本系列中推荐的实践被设计为具有高度技术性,并且假定读者具有对安全编码,iOS安全体系结构和平台概述的基本了解。

越狱iOS设备

如果您认真考虑iOS的安全性,那么必须拥有一个越狱设备。 我会向大家介绍越狱过程,但我认为Wikipedia涵盖了我的那一部分。

越狱方法因iOS版本而异。 最好的选择是检查您的iOS版本是否可以使用公共越狱。 提防经常在Internet上散布的假冒工具和间谍软件,这些软件和间谍软件通常藏在域名后面,例如越狱组/作者。

假设您有一台运行iOS 9.0的设备,对于此版本,至少在64位设备上,您会发现越狱(Pangu 1.3.0)。 如果您有另一个版本没有越狱功能,那么如果您将其降级/升级到可以越狱的目标iOS版本(通过IPSW下载和iTunes),您仍然可以越狱。 但是,如果Apple不再对所需的iOS版本进行签名,则可能无法实现。

iOS越狱场景发展如此之快,以至于很难提供最新的说明。 但是,在撰写本文时,我可以为您指出一些可靠的资源:

  • iPhone Wiki
  • 雷德蒙派
  • Reddit越狱

免责声明您最终可能会阻塞您的iOS设备!

设置Tradecraft工具

现在您已经完成了越狱设备的工作,下一步是安装工具。 但是,首要的事情是在设备上安装OpenSSH。 这将使您能够登录越狱设备并执行其他各种任务,我们将在本文后面看到。 转到Cydia,点击底部的搜索选项卡,然后搜索OpenSSH。

点击OpenSSH,然后在下一个视图中点击安装。 在下一个视图上点击“确认”以确认此操作。

最受欢迎的存储库之一是BigBoss推荐的工具包,其中包含一系列黑客工具。 要安装BigBoss推荐工具,只需在Cydia中搜索并点击安装即可。

Cydia允许您管理存储库。 在登录设备之前,我们应该安装其他一些命令行工具。

  • Adv-cmds:高级命令行。 包括finger,last,lsvfs,md和ps。
  • IPA安装程序控制台:用于从命令行安装IPA应用程序包的工具。 程序包名称为com.autopear.installipa。
  • 类转储:一种命令行工具,用于检查Mach-O文件中存储的Objective-C运行时信息。
  • Substrate:一个平台,可以更轻松地为iOS开发第三方加载项。
  • cycript:cycript是一个内联,优化的JavaScript到JavaScript编译器和即时模式控制台环境,可以将其注入正在运行的进程中。
  • AppList:允许开发人员查询已安装应用程序的列表,并基于该信息提供首选项窗格。
  • PreferenceLoader:是基于MobileSubstrate的实用程序,允许开发人员将条目添加到“设置”应用程序,类似于AppStore应用程序使用的SettingsBundles。
  • AppSync Unified:允许您同步和安装未签名的iOS应用程序。

如果您的Cydia安装未使用此存储库进行预配置,则可以通过导航到“源”->“编辑”,然后单击左上方的“添加”并输入以下URL来添加它:http:// apt.thebigboss.org/repofiles/cydia/

您可能还需要添加HackYouriPhone存储库以获取AppSync包:http://repo.hackyouriphone.org

您的工作站应至少安装以下设备:

SSH客户端和拦截代理-在本系列中,我将使用BURP Suite。

我们将在整个系列中引用的其他有用工具包括:

  • 内省
  • 弗里达
  • 美洲开发银行

静态分析

静态分析iOS应用程序的首选方法是访问工作正常的构建环境(通常,这意味着获取XCode项目文件)。 在理想情况下,您可以编译和调试应用程序,以快速验证在源代码中发现的任何潜在问题。

在不访问原始源代码的情况下对iOS应用执行黑盒分析需要一些逆向工程技能。 首先,没有适用于iOS应用的反编译器,因此要进行深入检查,您需要能够读取汇编代码。 在本文中,我们不会对此进行过多的介绍,但会在“ iOS上的逆向工程和篡改”一文中重新讨论该主题。

对于静态分析指令,我们将假定源代码可用。

自动化的静态分析工具

提供了几种用于分析iOS应用的自动化工具,其中大多数是商业工具。 至于免费和开源工具,MobSF和Needle具有一些内置的分析功能。

不要回避使用自动扫描程序来支持您的分析-它们有助于摘取悬而未决的成果,并让您专注于业务逻辑等更有趣的部分。 但是请记住,静态分析仪可能会产生误报和误报,因此请务必仔细检查结果。

登录越狱设备

选项;
•通过IP连接到Wi-Fi和SSH;
•通过USB Mul:plexer(例如usbmuxd)连接(我正在使用-Linux和python方法,如下图所示)

Usbmuxd是一个套接字守护程序,通过USB监视iPhone连接。 您可以使用它来将侦听localhost套接字从移动设备映射到主机上的TCP端口。 这使您可以方便地在没有任何网络设置的情况下SSH进入iOS设备。 当它检测到以正常模式运行的iPhone时,它将连接到它,然后开始中继通过/ var / run / usbmuxd接收到的请求。

用户root的默认密码是alpine。 我建议您在安装Open SSH后立即更改密码。

完成此操作后,执行apt-get更新以获取最新的软件包列表。

也进行apt-get升级并不是一个坏主意,这将获取机器上已经存在的软件包的新版本,并且不会使用通过apt-get包含的信息获得最新版本更新。

复制应用程序数据文件

属于某个应用程序的文件存储在该应用程序的数据目录中。 要确定正确的路径,请使用IPA Installer Console进入设备并检索软件包信息:

现在,您可以简单地归档数据目录,并使用以下命令scp -P 5000 root @ localhost:/ tmp使用scp从设备中将其提取。

接下来要做的是安装一个应用程序。 安装工具的最简单方法是从GitHub存储库下载二进制文件:并使用SCP进行推送。

进一步阅读

就iOS安全性而言,没有很多资源,但是这里有一些很好的资源。

  • Pentesteracademy提供了有关iOS安全性的非常详细的课程。
  • DVIA —该死的易受攻击的iOS应用程序,用于学习
  • Owasp-Mstg OWASP移动安全性测试指南。
  • Charlie Miller,Dionysus Blazakis,Dino Dai Zovi,Stefan Esser,Vincenzo Iozzo,Ralf-Philipp Weinmann(2012) iOS黑客手册 。 威利。 可在以下网址获得:http://www.wiley.com/WileyCDA/WileyTitle/productCd-1118204123.html
  • David Thiel(2016) iOS应用程序安全性,黑客和开发者权威指南 。 没有淀粉压榨机。 可在以下网址获得:https://www.nostarch.com/iossecurity
  • 乔纳森·莱文(Jonathan Levin,2013年), Mac OS X和iOS内部 ,Wiley。 可在以下网址获得:http://newosxbook.com/index.php

结论

在本文中,我们学习了如何在越狱设备上为iOS平台设置测试环境 。 在下一篇文章中,我们将研究如何使用class-dump-z,Frida Optool,Class-Dump,Keychain_Dumper等工具调查应用程序。