APP 抓包配置实战(Android / iOS)

移动 APP 抓包全流程:Android/iOS 代理与证书信任、SSL Pinning 绕过、代理检测绕过,工具(Burp/Charles/mitmproxy/frida/objection)逐个说明。

写在前面:合法学习边界

抓包只用于授权目标。APP 流量含用户数据,非授权抓取可能违反法律与平台规则。

一、APP 抓包难点

APP 比 Web 更难抓包,难点集中:

1
2
3
4
5
1. HTTPS 加密 → 需装 CA 证书
2. 安卓 7+ 用户证书不被系统信任
3. iOS 需要手动信任证书
4. APP 做证书固定(SSL Pinning)
5. APP 检测代理(反抓包)

二、工具选择

1
2
3
4
抓包:Burp Suite(功能全)/ Charles(可视化好)/ mitmproxy(命令行+脚本)
绕过 Pinning:frida + objection / Xposed + JustTrustMe
环境:模拟器(雷电/MuMu/Genymotion)或真机
辅助:adb、Magisk、Cydia(iOS 越狱)

三、Android 抓包

第 1 步:Burp 开代理(127.0.0.1:8080)

第 2 步:设备连代理

1
2
3
WiFi 手动代理 → 电脑局域网 IP:8080
模拟器用 adb 也可:
adb shell settings put global http_proxy 192.168.x.x:8080

第 3 步:装 CA 证书

1
2
3
4
5
浏览器访问 http://burp/ → 下载 cacert.der → 改名 .cer 安装
安卓 7+ 系统应用不信任用户证书:
  方法1:安卓 7 以内模拟器
  方法2:root 后把证书转系统证书(openssl 转 pem → 放 /system/etc/security/cacerts)
  方法3:Magisk 模块 / JustTrustMe

第 4 步:验证

1
# 装好后,Burp 里能解密 APP 的 HTTPS 请求

四、iOS 抓包

第 1 步:连代理

1
WiFi 手动代理 → 电脑 IP:8080

第 2 步:安装并信任证书

1
2
3
Safari 访问 http://burp/ → 下载描述文件 → 安装
设置 → 通用 → 关于本机 → 证书信任设置 → 开启对 Burp 的完全信任
(iOS 10.3+ 必须手动信任,否则无效)

第 3 步:验证

五、绕过 SSL Pinning

装了证书仍抓不到 → APP 证书固定。常见绕过:

frida + objection(Android/iOS 通用)

1
2
3
4
5
6
pip install frida-tools objection
# 设备连接后
frida-ps -U
objection -g com.example.app explore
android sslpinning disable     # Android
ios sslpinning disable         # iOS

Xposed + JustTrustMe

1
2
安卓:Xposed 装 JustTrustMe 模块,全局禁用校验
iOS:越狱 + SSL Kill Switch 2 / 或 frida

六、绕过代理检测(反抓包)

有些 APP 检测系统代理,发现代理就拒绝联网。绕过:

1
2
3
方法1:不用系统代理,用 iptables 透明代理转发到 Burp
方法2:Proxifier / ProxyDroid 把 APP 流量强制代理
方法3:抓包工具走 VPN 模式(Charles 支持)

七、常见坑

1
2
3
4
5
安卓证书装了没效果 → 系统证书问题,用 JustTrustMe/系统证书
iOS 信任了还不行 → Pinning,用 frida/SSL Kill Switch
只有 CONNECT 无内容 → 证书没信任
APP 闪退/拒绝连接 → 代理检测,换透明代理
双 factor/风控 → 抓包动作别太频繁

影响与风险

APP 抓包被滥用会导致:

1
2
3
用户数据与接口泄露
支付/业务逻辑被篡改
隐私合规风险

测试能力本身中性,必须限定授权范围。

八、检测与防御(蓝队)

1
2
3
4
敏感接口证书固定
检测代理/模拟器/root(风控)
服务端鉴权与频控
抓包审计与告警

修复

1
2
3
4
敏感接口证书固定
检测代理/模拟器/root(风控)
服务端鉴权与频控
抓包流量审计告警

九、小结

APP 抓包 = 代理 + 证书信任 + 绕过 Pinning。Android 卡在“系统证书”,iOS 卡在“手动信任”,后面都卡在“Pinning”。把这套流程和 frida/objection 用熟,基本能覆盖绝大多数 APP 的 HTTPS 流量。