最新消息:本站技术交流 QQ 群:28124927

[iOS Hacker] 突破 SSL 双向认证实现抓包

iOS/MacOSX/移动安全 exchen 18695浏览 0评论

Charles 可以使用安装根证书的方式抓取 HTTPS 数据包,但是如果 SSL 双向认证的话就没办法抓包了,打开 App Store 会向苹果服务器发送 HTTPS 数据包,大部分都做了双向认证,如下图所示:

借助插件 SSL Kill Switch 2 可以突破 SSL 双向认证,下载地址:https://github.com/nabla-c0d3/ssl-kill-switch2

首先使用 Cydia 安装 Debian Packager、Cydia Substrate、PreferenceLoader,然后下载 ssl-kill-switch2 安装包,将安装包上传到 /var/mobile 目录,执行命令安装:

安装完成之后重启,命令如下:

然后打开设置,往下拉会发现多了一个SSL Kill Switch 2,打开开关,然后再打开 App Store,会发现 Charles 能够成功解析数据包,如下图所示:

SSL Kill Switch 2 工作的原理是 Hook 安全传输相关的函数 SSLHandshake、SSLSetSessionOption、SSLCreateContext,核心代码如下:

如果不需要使用插件,卸载命令如下:

转载请注明:exchen's blog » [iOS Hacker] 突破 SSL 双向认证实现抓包

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (8)

  1. 这是单向验证好吧
    路人甲5年前 (2019-07-24)回复
    • 那你觉得什么才叫双向认证?
      exchen5年前 (2019-07-25)回复
      • 这就是单向的,只是破解了客户端对服务端的验证。双向验证是客户端对服务端验证和服务端对客户端验证。这个并没有解决服务端对客户端的验证。
        缥缈一云5年前 (2019-08-19)回复
        • Charles 安装根证书不就可以了吗?
          exchen5年前 (2019-09-08)回复
          • 你说的是“双向验证”是依靠系统去做证书链的验证,也可以自己验证服务器证书。
            大佬5年前 (2019-09-25)
          • 是的,能抓包就行了。
            exchen5年前 (2019-11-11)
  2. 这是单向验证好吧
    test5年前 (2019-09-23)回复
    • 安装 Charles 根证书解决了服务器验证,然后再安装 SSL Kill Switch 2 解决客户端验证,抓包的目的就达到了。
      exchen5年前 (2019-11-11)回复