越狱ios禁止SSL Pinning抓App Store的包

最近遇到一个问题:测试一个逻辑问题,没办法抓到App Store的包,后来了解到因为App Store使用的是SSL Pinning(证书锁定),所以没办法通过抓包工具直接抓到包。因此要想抓到包,必须通过安装相应tweaks来禁止SSL Pinning。

所需硬件:
越狱的iphone(我的机器是ios9.1完美越狱)
购买连接:https://2.taobao.com/item.htm?id=549428139187
所需软件:
最新版ssl-kill-switch2
下载地址:https://github.com/nabla-c0d3/ssl-kill-switch2/releases

Step.1

越狱后在cydia上安装OpenSSH

1785321418

然后将下载好的 com.nablac0d3.SSLKillSwitch2_0.11.deb 传到越狱的机器上

scp ./com.nablac0d3.SSLKillSwitch2_0.11.deb root@192.168.1.128:/var/root/

ssh默认密码:alpine

Step.2

安装SSLKillSwitch

dpkg -i com.nablac0d3.SSLKillSwitch2_0.11.deb 

再执行

killall -HUP SpringBoard

重新启动跳板

手机会立即重启,重启后进入[设置],往下拉可以发现多了一个SSL Kill Switch 2

点进去勾选按钮,禁止证书确认。
重启下App Store,这时候就能抓到大部分App Store的包以及使用了SSL Pinning的App的包了。

Step.3

讲道理到了这一步应该就ok了,但测试发现虽然禁了SSL Pinning,但对于App Store的登录和应用下载等操作的请求依然走不通。这时候找到这样一篇文章:

https://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/

大概原因就是App Store的下载登录等操作是在itunesstored这个进程下的,这个itunesstored进程作为守护进程在设备启动序列中启动顺序优先于MobileSubstrate和MobileLoader,因为SSL Kill Switch作为MobileSubstrate tweaks 是没有办法注入到进程itunesstored。
因此想要抓登录和下载等操作的包,必须先杀掉itunesstored进程,itunesstored作为守护进程会自启,自启时SSL Kill Switch就注入了itunesstored进程,就可以抓包了。

iPad-Mini:~ root# ps -ef | grep itunesstored
501   170     1   0   0:00.00 ??         0:01.95 /System/Library/PrivateFrameworks/iTunesStore.framework/Support/itunesstored
  0   432   404   0   0:00.00 ttys000    0:00.01 grep itunesstored
iPad-Mini:~ root# kill -s KILL 170

杀死进程后,重启App Store就可以抓登录和下载等操作的包了。

这里结束后,我遇到个奇怪的事情,就是按照上述步骤操作完后,会间歇性的抓不了登录和下载等操作的包,但是重启后就完全正常了。所以如果遇到间歇性异常事件,可以试试重启一下手机。