1. 问题说明

在做 APP 渗透测试的时候遇到一个问题,就是在使用 BurpSuite 或者 Stream 在对 APP 进行抓包时显示证书无效。
突破 SSL Pinning 进行抓包 - 图1

2. 突破 SSL Pinning

2.1 SSL Pinning

SSL Pinning 又叫 SSL 证书绑定,客户端在收到服务端的证书之后,对该证书进行强校验,验证该证书是否为客户端承认的证书,如果不是,则直接断开连接。也就造成了之前我遇到挂代理后显示网络请求失败,但是遇到这种办法并不全都是因为这个原因。

2.2 解决办法

针对 IOS 的 App 绕过 SSL Pinning 这里使用 SSL Kill Switch 2

需要准备的有:

  • 一部越狱的 IOS 手机
  • Debian Packager 插件
  • Cydia Substrate 插件
  • PreferenceLoader 插件
  • SSL Kill Switch2 的 deb 包

先将下载的 deb 包导入越狱的 IOS 手机中。
突破 SSL Pinning 进行抓包 - 图2

在 cydia 中分别安装这 3 个软件包。
突破 SSL Pinning 进行抓包 - 图3
突破 SSL Pinning 进行抓包 - 图4
突破 SSL Pinning 进行抓包 - 图5

ssh 连接手机手依次执行命令进行安装。

  1. dpkg -i com.nablac0d3.sslkillswitch2_0.13.deb
  2. killall -HUP SpringBoard
  1. iPhone:~ root# ls
  2. Application Support Library Media com.nablac0d3.sslkillswitch2_0.13.deb
  3. iPhone:~ root# dpkg -i com.nablac0d3.sslkillswitch2_0.13.deb
  4. Selecting previously unselected package com.nablac0d3.sslkillswitch2.
  5. (Reading database ... 2959 files and directories currently installed.)
  6. Preparing to unpack com.nablac0d3.sslkillswitch2_0.13.deb ...
  7. Unpacking com.nablac0d3.sslkillswitch2 (0.13-1+debug) ...
  8. Setting up com.nablac0d3.sslkillswitch2 (0.13-1+debug) ...
  9. iPhone:~ root# killall -HUP SpringBoard

执行完命令后查看软件包,发现有个 SSL Kill Switch 2 的插件。
突破 SSL Pinning 进行抓包 - 图6

在引导重启后发现设置里有 SSL Kill Switch 2,如果没有的话可能是因为重启导致的手机未完全越狱,再次越狱后设置中就有了。
突破 SSL Pinning 进行抓包 - 图7

打开插件开关,重新打开相应的软件进行抓包,即可成功抓取到数据包了。

突破 SSL Pinning 进行抓包 - 图8