抓包精灵上传服务器_手机端https抓包解决证书校验

前言

一般来说,我们抓https包使用fiddler或charles,然后手机安装证书就可以抓包了,但是有时候我们抓某些app时候,一连上代理,却提示不能上网,明明可以上网,为啥app提示无网络,原因可能就是开启了https双向认证,客户端一般使用SSL Pinning防止中间人拦截攻击。客户端在实现https请求时对于证书的校验上,如果仅仅校验是否有证书但是未严格校验证书的有效性时,就可以通过手机客户端安装抓包工具的证书来绕过签名校验,但是如果客户端做了严格的证书校验,如果不是受信任证书则无法正常进行https通信,遇到这种情况我们该如何抓取https流量来进行业务分析呢?

Android平台

这里Android平台我们使用Xposed的开源模块-JustTrustMe

github链接地址为:https://github.com/Fuzion24/JustTrustMe

通过adb来安装adb install ./JustTrustMe.apk 打钩重启即可。

6f131dc032f09f1e5b6aa0ac17c3f14b.png

iOS平台

iOS上就需要将手机进行越狱了,可以使用目前市面上比较流行的盘古越狱工具或者electra工具https://coolstar.org/electra/,但是目前已经支持iOS11之前的版本,所以做移动安全研究或者渗透测试的,准备一台老版本的测试机还是很有必要的。   iOS平台我们使用开源模块ssl-kill-switch2 原工程地址https://github.com/nabla-c0d3/ssl-kill-switch2 增加支持iOS11系统工程地址https://github.com/mwpcheung/ssl-kill-switch2 原理:

构造一个中间人,骗服务器,也骗客户端。但iOS系统很多客户端都会校验服务器证书;

ssl kill 正是patch 掉了校验过程。因而我们能很方便的抓包。关键代码如下:

37c9854b0ae6b5eea63df77442ca9915.png

由于iOS11系统上TCPIOConnection 调用链发生了变化。原来的代码无法正常工作。通过对他们分析,发现/usr/lib/libnetwork.dylib 模块导出的nw_tls_create_peer_trust 函数为必经之路。对他进行hook 后,iOS11 抓包正常。关键代码如下 :

41149b342f418380fe92cef782be90f5.png

安装方法:

1.cydia商店里依次安装Debian Packager、Cydia Substrate、PreferenceLoader、OpenSSH

2.下载ssl-kill-switch2的预编译包到本地(在GitHub(https://github.com/mwpcheung/ssl-kill-switch2)下载)

3.通过scp把包(com.nablac0d3.sslkillswitch2_0.12.deb)上传至iPhone(ssh默认密码:alpine)scp ./com.nablac0d3.SSLKillSwitch2_0.11.deb root@192.168.xx.xx:/opt

4.安装dpkg -i com.nablac0d3.sslkillswitch2_0.12.deb

5.安装完重启killall -HUP SpringBoard

6.重启后进入[设置],往下拉可以发现多了一个SSL Kill Switch 2

8782f0ed2b6ccef28886974b38c65285.png

364adfc49d111cf0b9ace2200ee1d55a.png

测试:

5f9a4361278288e065ebc76939fb662d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值