栏目导航

产品介绍 市场形势 企业新闻 文化建设 励志典范
产品介绍

当前位置:主页 > 产品介绍 >

Android渗透测试HTTPS证书校验绕过

发布日期:2022-05-10 04:35   来源:未知   阅读:

  日常Android渗透过程中,会经常遇见https证书校验(http就不存在证书校验了,直接抓包便可),不能抓取数据包。APP是HTTPS的服务提供方自己开发的客户端,开发者可以先将自己服务器的证书打包内置到自己的APP中,或者将证书签名内置到APP中,当客户端在请求服务器建立连接期间收到服务器证书后,先使用内置的证书信息校验一下服务器证书是否合法,如果不合法,直接断开。

  存在证书校验,不能成功进行抓取数据包。客户端校验服务端证书,这个过程由于客户端操作,存在不可控因素,可通过客户端进行绕过https校验。

  Frida进行绕过,Frida安装教程自行百度,可以下载这里脚本。其中application.py脚本,我修改了一下:

  首先我们尝试使用 JustTrustMe.apk进行绕过,如果发现绕过不了,可能客户端还存在其他校验,这里发现一个还使用了,如下

  下载JustTrustMe的源代码,进行编译,增加对这两个函数的hook,绕过拦截请求。重新编译绕过的JustTrustMe1.apk

  勾选,重启设备 (真机需要重启设备xposed才能生效,模拟器软重启便可生效),再次请求登录数据包,客户端返回:

  因此,客户端私钥一般都是存放在apk本身内,在apk里找到私钥,便可利用私钥对证书进行签名。

  1、拿到apk,如果存在壳,先进行脱壳,不存在,则直接查看apk的目录,在assets目录下发现了用于双向认证的证书库文件,

  发现证书调用KeyStore.getInstance方法进行签名,KeyStore.load的方法进行加载私钥,这里如果apk有壳(加固),可以通过hook这两个函数拿到签名方法与私钥。