怎么抓取IOS应用程序里面的https?
这个涉及到2个问题
1.电脑怎么抓到IOS手机流量?
2.HTTPS怎么解密?
部分app可以使用代理抓包的方式,但是正式点的app用代理抓包是抓不到的,例如pin检测,证书双向校验等。最近研究网络抓包和app安全和爬虫,遇到了这个,操作比较简单,亲测能抓到我想要的HTTPS包,并且自动解密了。
准备 iOS 设备
先下载sniffmaster,传送门下载
- 连接设备:通过 USB 将 iOS 设备连接到电脑,设备需解锁并处于亮屏状态。
- 信任电脑:如果设备是第一次连接到当前电脑,手机会提示信任此设备,点击"信任此设备"。
- 安装 iOS 驱动:如果使用的是 Windows 系统,首次使用嗅探大师时,可能会提示安装驱动程序,按照提示点击确定并逐步完成安装。驱动安装完成后,请重启嗅探大师。
- 安装描述文件:对于未曾使用嗅探大师抓包过的设备,软件会提示安装描述文件,请根据提示步骤在手机上安装配置文件。
- 开启开发者模式:对于 iOS 17.4 及以后的设备,嗅探大师会提示在 iOS 设置中开启开发者模式,按照步骤操作即可。iOS 17.0-17.4 系统存在某些 bug,嗅探大师目前不支持这些版本的设备。版本低于iOS 16的设备,如 iOS 15,尚未经过测试,未知是否支持。
进入 HTTPS 暴力抓包模式
在设备列表中选择要抓包的 iOS 设备,左下角会显示准备启动设备的高级管理服务。等待左下角的"高级管理服务"变为绿色,然后选择功能区域中的 HTTPS暴力抓包。暴力抓包是 iOS 专用的抓包功能,如果选择本机(即当前电脑)进行抓包,则暴力抓包和数据流抓包功能不可用。
如果出现错误,可能是左下角的"高级管理服务"启动失败,您可以点击 启动高级管理 按钮,根据提示开启高级管理功能。
暴力抓包HTTPS
操作过程感觉没什么好写的,因为太傻瓜式操作了。
点击开始按钮开始暴力抓包,抓包开始后,点击该按钮可以停止抓包。
点击开始后可以看到ios设备上的全部https请求了,当然可能遇到部分https请求看不到body,只有头和请求地址,但是这对很多抓包工作来说已经是很大的帮助了。如果要查看具体某个app的详细的https请求的body部分,需要对ios app进行重新签名,使用开发证书签名。
抓到的数据不完整?
对于未使用开发证书签名的 App,暴力抓包只能展示请求头和请求地址,例如系统应用和从 App Store 下载的应用。如果需要查看某个应用的请求体(body)和响应体(response body),需要对该应用的 IPA 文件使用 iOS 开发证书重新签名。如果没有开发者账号和证书,可以使用 AppUploader
创建免费的证书,签名可使用 codesign
等工具。如果从 App Store 下载的 IPA 默认是加密的,需要进行脱壳处理,您可以在网上搜索脱壳版本的 IPA 或 IPA 脱壳教程进行操作。