iOS 系统设置 Burp Suite 抓取流量报文
含 SSL Pinning 绕过及常见问题排查 · 适用 iOS 14 至 18
iOS 系统支持手动安装和信任自定义 CA 证书,可以通过 Burp Suite 抓取 HTTPS 流量。本教程覆盖从环境配置、证书安装到 SSL Pinning 绕过方法说明。
一、Burp Suite 电脑端配置
-
打开 Burp Suite,进入 Proxy → Proxy settings → Proxy listeners,点击 Add 添加监听器。
-
Bind to port 填写 8080(或其他未被占用的端口),Bind to address 选择 Specific address。
查询本机 IP:按 Win+R → 输入 cmd → 输入 ipconfig,在返回结果中找到"IPv4 地址"。
-
在 Specific address 下拉框中选择该 IP 地址。
-
切换到 Request handling 标签页,确保以下选项:
Support invisible proxying 已勾选
- 其余保持默认
-
点击 OK 保存,确认新添加的 Listener 前面已打勾启用。
-
TLS pass through 设置:进入 Proxy settings → TLS pass through,确认目标主机未被规则拦截(默认无需修改)。
⚠ 注意:确保 Windows 防火墙已放行 8080 端口的入站连接,否则手机无法访问。
二、iPhone 代理配置
-
确保手机与电脑连接同一 WiFi。
-
iPhone 打开 设置 → 无线局域网,点击当前连接的 WiFi 右侧的蓝色 (i) 图标。
-
滑到"HTTP 代理"区域,选择 手动。
-
服务器填写电脑的 IP 地址(即前面 ipconfig 查到的那一个),端口填写 8080。
-
右上角点击 存储。
⚠ 重要:如果开启了 iCloud 专用代理(Private Relay),请先关闭它——设置 → 点击顶部 Apple ID → iCloud → 专用代理 → 关闭。否则流量无法通过 Burp。
三、代理连通性验证
-
在 iPhone Safari 浏览器中访问任意 HTTP 网站(如 https://xxxxxx.com),观察 Burp 的 HTTP history 是否有记录。
-
如果 Burp 有记录,说明代理已生效,继续下一步安装证书。
-
如果 Burp 没有任何记录,请检查:
- a) WiFi 是否为同一网络?
- b) 防火墙是否放行 8080 端口?
- c) Burp Listener Running 是否勾选?
- d) 是否关闭了 iCloud 专用代理?
四、安装 Burp CA 证书
-
确认代理已生效后,在 iPhone Safari 浏览器地址栏输入 http://burp 并访问。
-
页面右上角点击 CA Certificate 按钮,下载 Burp 的 CA 证书。
💡 提示:此方法可省去传统方式通过邮件安装证书的繁琐步骤。
安装证书描述文件
-
弹出"已下载描述文件"对话框,点击 允许。
-
进入 设置 → 通用 → VPN 与设备管理(iOS 15 及以下:设置 → 通用 → 描述文件),找到刚下载的 Burp CA 证书,点击进入。
-
点击右上角 安装,按提示完成安装(可能需要输入锁屏密码确认)。
⚠ iOS 版本差异:部分 iOS 16+ 版本中证书安装路径可能不同——也可尝试在"设置"首页搜索栏搜索"描述文件"或"证书"快速定位。
⚠ iOS 17+ 用户:如果安装过程中提示需要"开发者模式",请进入 设置 → 隐私与安全性 → 开发者模式 开启。
五、信任 CA 证书(关键步骤)
-
进入 设置 → 通用 → 关于本机 → 滑到底部找到 证书信任设置。
-
找到 PortSwigger CA 这一项,将其右侧的开关打开(变绿)。
- 系统会弹出警告对话框,点击 继续。
⚠ 极重要:此步骤为必做项。如果只是安装了证书但没有启用信任,HTTPS 抓包将完全失败,所有加密通信会显示为 Connection Reset 或 Network Error。
六、SSL 证书绑定绕过
上述步骤完成后,大部分 HTTPS 网页和部分 App 的通信已可被抓取。但现代 iOS App 普遍采用 SSL Pinning(证书绑定) 技术,即使系统信任了 Burp CA 证书,App 仍会拒绝连接。
方案一:Frida 注入绕过(推荐)
- 确保 iPhone 已越狱,Cydia 中安装 OpenSSH。
- 在电脑端安装 Frida:
pip install frida-tools
- 在 iPhone 上通过 Cydia 安装 Frida 对应版本(Frida for iOS)。
- 安装 objection:
pip install objection
- 启动目标 App 后,在电脑端执行:
objection -g <Bundle ID> explore
ios sslpinning disable
方案二:Shadowrocket / Quantumult X 中间人
对于未越狱设备,可使用 Shadowrocket 或 Quantumult X 等网络工具开启 HTTPS 解密功能,配合 MitM 证书实现中间人抓包。
方案三:SSL Kill Switch 2(仅限旧版 iOS)
对于 iOS 12 及更早版本(越狱环境),可通过 Cydia 安装 SSL Kill Switch 2 插件一键禁用全局 SSL Pinning。但新版本 iOS 已不再适用此方案。
💡 提示:不同 App 的 SSL Pinning 实现方式不同,单方案可能无法覆盖所有 App,建议备选多个方案。
七、常见问题排查
| 问题现象 |
可能原因 |
解决方法 |
| 手机访问任何网站都无反应 |
代理未生效或防火墙拦截 |
检查 WiFi 是否为同一网络;检查防火墙放行 8080 端口;检查 Burp Listener 是否勾选 Running |
| HTTP 可抓但 HTTPS 全部失败 |
CA 证书未安装或未信任 |
进入"证书信任设置"确认 PortSwigger CA 开关已打开 |
| 部分 App 提示"网络错误" |
App 启用了 SSL Pinning |
参照第六章使用 Frida/objection 绕过 SSL Pinning (我还在继续研究,如有不足之处还请各位大佬指点技术) |
| 证书安装后仍提示"不受信任" |
未启用信任或 iOS 版本兼容问题 |
重新检查"证书信任设置";iOS 17+ 尝试开启开发者模式 |
| 连接成功但部分请求丢失 |
iCloud 专用代理或 HTTP/2 协议影响 |
关闭 iCloud 专用代理;检查 Burp TLS pass through 规则 |
| 手机切换蜂窝后又用 WiFi,抓包失效 |
代理配置未持久化或网络权限重置 |
重新确认 WiFi 代理设置;必要时还原网络设置后重配 |
免责声明
本教程仅供安全测试、技术研究和日常学习使用。使用者应当确保:
- 所有操作均在自有设备或已获得明确书面授权的设备上进行,不得用于任何未经授权的网络访问或数据截取。
- 在非授权设备上安装 CA 证书、绕过 SSL 证书绑定或截取他人网络通信,可能违反《网络安全法》《数据安全法》《个人信息保护法》等相关法律法规。
- 本教程中涉及的工具(Burp Suite、Frida、objection 等)均为开源或商业安全测试工具,其合法使用范围由各工具的用户协议界定,使用者应自行查阅并遵守。
- 教程中提及的越狱(Jailbreak)操作可能导致设备失去官方保修资格、引发系统稳定性问题或安全风险,使用者应自行评估并承担后果。
- iOS 系统版本持续更新,部分操作步骤可能因系统迭代而失效或变更,请以实际设备表现为准。
任何因使用本教程内容而导致的直接或间接损失、法律纠纷或设备损坏,作者及发布方不承担任何责任。
|