跳过内容

MASTG-TECH-0064: 绕过证书绑定

一些应用程序会实现 SSL 证书绑定,这会阻止应用程序接受你拦截的证书作为有效证书。这意味着你将无法监视应用程序和服务器之间的流量。

对于大多数应用程序,证书绑定可以在几秒钟内绕过,但前提是该应用程序使用这些工具涵盖的 API 函数。如果应用程序使用自定义框架或库实现 SSL 证书绑定,则必须手动修补和停用 SSL 证书绑定,这可能很耗时。

本节介绍绕过 SSL 证书绑定的各种方法,并提供有关当现有工具不起作用时应采取的措施的指导。

适用于越狱和非越狱设备的方法

如果你有一个安装了 frida-server 的越狱设备,你可以通过运行以下 objection 命令来绕过 SSL 证书绑定(如果你使用的是非越狱设备,请参阅 自动将 Frida Gadget 注入 IPA

ios sslpinning disable

这是一个输出示例

另请参阅Objection 关于禁用 iOS 的 SSL 证书绑定的帮助,以获取更多信息并检查 pinning.ts 文件以了解绕过的工作原理。

仅适用于越狱设备的方法

如果你有一个越狱设备,你可以尝试以下可以自动禁用 SSL 证书绑定的工具之一

  • SSL Kill Switch 2”是禁用证书绑定的一种方法。 它可以通过 Cydia 商店安装。 它将挂钩到所有高级 API 调用并绕过证书绑定。
  • Burp Suite 应用程序也可用于绕过证书绑定。

当自动化绕过失败时

技术和系统会随着时间的推移而改变,一些绕过技术最终可能无法工作。 因此,测试人员的工作之一是进行一些研究,因为并非每个工具都能足够快地跟上操作系统版本。

一些应用程序可能会实现自定义 SSL 证书绑定方法,因此测试人员还可以开发新的绕过脚本,利用现有脚本作为基础或灵感,并使用类似的技术,但针对应用程序的自定义 API。 在这里,你可以检查这三个此类脚本的优秀示例

其他技术

如果你无权访问源代码,你可以尝试二进制修补

  • 如果使用 OpenSSL 证书绑定,你可以尝试二进制修补。
  • 有时,证书是应用程序包中的一个文件。 将证书替换为 Burp 的证书可能就足够了,但要注意证书的 SHA 总和。 如果它被硬编码到二进制文件中,你也必须替换它!
  • 如果你可以访问源代码,你可以尝试禁用证书绑定并重新编译应用程序,查找 NSURLSessionCFStreamAFNetworking 的 API 调用,以及包含诸如“pinning”、“X.509”、“Certificate”等单词的方法/字符串。