跳转到内容

SSL Pinning 怎么绕过?解除证书绑定后正常抓包解密

SSL Pinning 绕过在老鹰抓包里叫「解除证书绑定(去 Pin)」:在代理抓包会话内选中目标 App,暂停它的证书校验,让它信任代理证书,从而恢复联网并被解密。支持本机程序、iOS App、Android App 三类目标;iOS 需要用开发证书重签名的 App,Android 需要设备已 root。去 Pin 只解决「信不信任代理证书」,解密本身仍由代理完成。

证书绑定的 App 为什么一开代理就断网?

Section titled “证书绑定的 App 为什么一开代理就断网?”

做了 SSL Pinning(证书绑定)的 App 只认自己内置的证书或公钥,不接受代理签发的证书,所以一走代理抓包就连不上网。这种机制的原理可参考 OWASP 的 Certificate and Public Key Pinning,Android 上常见的配置方式见 Network Security Config。

选中该 App、暂停它的证书绑定后,它就能正常访问网络,其 HTTPS 也就能走代理解密了。

重要:去 Pin ≠ 取明文。 它只是让 App「愿意信任代理证书」,本身不解密内容,解密仍由代理完成。如果你要的是「直接从程序内部取明文」,那是另一件事,见 本机应用层抓包。

三类目标,分别在对应标签页操作:

  • 本机程序:列出本机进程,可多选 / 按名称或 PID 过滤。
  • iOS App:选设备后列出 App(需开发证书重签名的 App),也可手填 bundle id。完整的手机抓包流程见 iOS 抓包。
  • Android App:选设备(需已 root)后列出 App,也可手填包名 / 进程名 / PID。设备接入方式见 安卓抓包。
  • 自动处理子进程(本机):有些应用由子进程收发网络请求,一并处理,避免漏抓。
  • 重启目标:先重启 App 再处理,能覆盖它启动初期的请求。

解除证书绑定:本机 / iOS / Android 三类目标分页,按进程名或 PID 过滤多选,配合「自动处理子进程」「重启目标」两个开关

  • 覆盖:绝大多数主流应用的证书绑定方式,包括各类常见的原生加密组件,以及 Android 上常见的绑定框架。
  • 处理结果实时反馈:成功会告诉你处理了几个目标 / 进程;若某 App 用了不常见的网络组件、暂不支持,会明确提示而不是让你干等。
  • 少数不适用:用 Go、Rust 编写的程序,或桌面 Java 程序,通常不适用去 Pin。若它们读取系统证书,直接把证书装进系统 / 其信任库即可,无需去 Pin。
  • 被抓的 App 做了证书绑定、一开代理就联不上网时,在代理会话内选中它去 Pin。
  • 想抓 App 启动初期的请求:勾「重启目标」。
  • 多进程桌面应用:保持「自动处理子进程」。

去 Pin 之后还需要安装抓包证书吗?

Section titled “去 Pin 之后还需要安装抓包证书吗?”

需要。去 Pin 只是让 App 接受代理证书,代理解密仍依赖目标上已信任的抓包证书,安装方法见抓包证书安装。

手机上的 App 去 Pin 有什么前提?

Section titled “手机上的 App 去 Pin 有什么前提?”

Android 要求设备已 root;iOS 要求目标 App 已用开发证书重签名。满足条件后选设备即可列出 App,也可手填包名或 bundle id。

为什么去 Pin 后还是抓不到 App 刚启动时的请求?

Section titled “为什么去 Pin 后还是抓不到 App 刚启动时的请求?”

处理发生在 App 已运行之后,启动初期的请求可能已经发出。勾选「重启目标」,先重启 App 再处理即可覆盖这部分请求。

如果 App 用了不常见、暂不支持的网络组件,老鹰抓包会明确提示,而不是让你一直等待结果。


返回 代理抓包 · 相关:证书管理与安装 · 本机应用层抓包