iOS渗透测试指南:架构解析与工具实战
iOS渗透测试指南:架构解析与工具实战
iOS渗透测试是网络安全领域的重要组成部分,涉及对iOS应用的安全性进行评估和测试。本文将详细介绍iOS系统的架构、渗透测试方法以及使用相关工具的具体步骤,帮助读者更好地理解和掌握iOS应用的安全测试技术。
iOS架构
Core OS(核心操作系统层):提供各种低级功能,不同的服务基于这些功能构建。其中包括Accelerate Framework、目录服务、系统配置、OpenCL 等。
Core Services(核心服务层):对核心操作系统层中提供的服务进行抽象。这些服务一般包括Address Book、Social、Security、Webkit等。
Media(媒体层):提供设备可以使用的各种媒体服务,即它基本上启用了所有的视听技术。它提供了Core Image、Core Audio、Core Text等多种功能。
Cocoa Touch(应用层):也被称为Application Layer。它是架构中的最顶层,并公开了用于对iPhone设备进行编程的各种API。
Info.plist:info.plist文件是操作系统描述应用程序使用的各种属性的列表。在执行安全评估时经常检查此文件,因为它可能包含有趣的信息或帮助我们发现一些错误配置。使用dumpDecrypter进行脱壳(iPhone必须越狱)。
Keychain:钥匙串被称为加密容器,应用程序可以在其中存储敏感信息,只有授权的应用程序才能从中检索数据。
测试方法
在iOS应用程序上执行渗透测试时涉及多个组件。一个组成部分是使用手动技术和工具(如MobSF)执行静态分析。另一个组件涉及运行时利用和挂钩不同的方法和对象以绕过某些场景并获得对敏感信息的访问权限。最后,测试从应用程序生成的动态API调用,例如登录API调用等。
我们将首先对iOS应用程序执行静态分析,我们首先需要为其提取IPA,使用MobSF执行静态分析。
提取IPA
我们使用DumpDecrypter进行脱壳,然后使用Filze进行下载。
http://repo.yttxcs.com (Cydia插件源地址)
下载ipa,然后改名zip格式解压
可以查看json和js文件,用于数据加密的破解
可以使用ida或者Hopper对原文件反编译进行测试
Hopper可以搜索字符串,可以两个一起用
使用MobSF运行静态分析
提取IPA文件后,下一步是使用MobSF执行静态分析。我将使用MobSF docker选项,但您可以使用安装以及提供的任何其他安装选项。
https://github.com/MobSF/Mobile-Security-FrameworkMobSF(MobSF)
https://mobsf.github.io/docs/ (使用文档)
执行静态分析的步骤:
- 运行MobSF Web界面
- 上传IPA文件并运行静态分析
- 静态分析完成后,查找错误配置
我们主要注意View info.plist和View Strings,里面可能会泄露一些敏感信息。
View Strings把二进制文件反编译后把字符串提取出来了,我们可以复制出来进行搜索信息
也可以直接查看工具识别的url和ip
使用mitmproxy2swagger对APP&小程序进行测试
通常我们在测试app和小程序的时候,会因为api的接口太多而漏掉一些重要的信息,我们可以使用mitmproxy2swagger工具把接口做成swagger,这样测试方便许多。
https://github.com/alufers/mitmproxy2swagger(mitmproxy2swagger)
先使用mitmproxy抓包保存数据
>_ mitmweb -p 9999
Downloads mitmproxy2swagger -i flows -o api.yaml -p https://api4.bybutter.com
把生成的api.yaml文件中的ignore:正则删除,在执行一次上面的那个命令
打开https://editor-next.swagger.io/网站,把文件内容粘贴进去就可以很方便的测试api了
ps:我们可以用burp抓包加两个上游代理,一个xray和mitmproxy,burp不好测试api,先用burp手工简单测试,测试好了看xray结果,最后使用mitmproxy2swagger做成swagger的web手工测试。(只是个人想法,需要自己测试。)