1. 问题说明
在做 APP 渗透测试的时候遇到一个问题,就是在使用 BurpSuite 或者 Stream 在对 APP 进行抓包时显示证书无效。
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 手机中。
在 cydia 中分别安装这 3 个软件包。
ssh 连接手机手依次执行命令进行安装。
dpkg -i com.nablac0d3.sslkillswitch2_0.13.deb
killall -HUP SpringBoard
iPhone:~ root# ls
Application Support Library Media com.nablac0d3.sslkillswitch2_0.13.deb
iPhone:~ root# dpkg -i com.nablac0d3.sslkillswitch2_0.13.deb
Selecting previously unselected package com.nablac0d3.sslkillswitch2.
(Reading database ... 2959 files and directories currently installed.)
Preparing to unpack com.nablac0d3.sslkillswitch2_0.13.deb ...
Unpacking com.nablac0d3.sslkillswitch2 (0.13-1+debug) ...
Setting up com.nablac0d3.sslkillswitch2 (0.13-1+debug) ...
iPhone:~ root# killall -HUP SpringBoard
执行完命令后查看软件包,发现有个 SSL Kill Switch 2 的插件。
在引导重启后发现设置里有 SSL Kill Switch 2,如果没有的话可能是因为重启导致的手机未完全越狱,再次越狱后设置中就有了。
打开插件开关,重新打开相应的软件进行抓包,即可成功抓取到数据包了。