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

在进行Android渗透测试时,常常会遇到HTTPS证书校验,其中包括客户端校验服务端证书和服务端校验客户端证书。以下是绕过这些校验的方法:

图片[1]-Android渗透测试: 绕过HTTPS证书校验-山海云端论坛

环境:

  • Nexus 5
  • Windows 10
  • Burp Suite
  • Jeb3

情况分类:

情况1: 客户端和服务端都不存在证书校验。

情况2: 客户端存在校验服务端证书,服务端不存在证书校验(单向校验)。

情况3: 客户端和服务端都存在证书校验(双向校验)。

情况1:

获取APK文件,使用Jeb3反编译APK文件。

在反编译后的代码中搜索checkClientTrustedcheckServerTrusted字符串。

图片[2]-Android渗透测试: 绕过HTTPS证书校验-山海云端论坛

检查反编译的代码,确认客户端和服务端均不存在证书校验。

设置代理,伪造证书,成功抓取数据包。

情况2:

获取APK文件,使用Jeb3反编译APK文件。

在反编译后的代码中搜索checkClientTrusted字符串。

图片[3]-Android渗透测试: 绕过HTTPS证书校验-山海云端论坛

修改checkServerTrusted方法的代码,将校验部分删除,使其变成情况1。

重新编译APK文件,安装并运行,设置代理,成功抓取数据包。

  1. 使用JustTrustMe.apk绕过SSL证书检查,如果无法绕过,可能还存在其他校验。
  2. 下载JustTrustMe源代码,编译并增加对其他校验函数的Hook,重新编译APK。
  3. 安装修改后的APK,设置代理,成功抓取数据包。

  1. 使用Frida进行绕过,运行Frida服务器脚本。
  2. 使用Frida脚本对APK进行Hook,绕过SSL证书检查。
  3. 设置代理,成功抓取数据包。

情况3:

  1. 尝试使用JustTrustMe.apk进行绕过,如果无法绕过,可能还存在其他校验。
  2. 下载JustTrustMe源代码,编译并增加对其他校验函数的Hook,重新编译APK。
  3. 安装修改后的APK,设置代理,成功抓取数据包。

  1. 使用Frida进行绕过,运行Frida服务器脚本。
  2. 使用Frida脚本对APK进行Hook,绕过SSL证书检查。
  3. 设置代理,成功抓取数据包。

  1. 查找APK中存放的私钥。
  2. 如果APK有壳,进行脱壳。
  3. 如果私钥存放在APK中,使用Jeb反编译APK,查找私钥。
  4. 使用私钥对证书进行签名。
  5. 伪造服务端信任证书,使用Burp Suite进行操作。
  6. 设置代理,成功绕过服务器校验,抓取数据包。

思考:

以上绕过方法展示了Android渗透测试中绕过HTTPS证书校验的多种途径。这种绕过可能会涉及到代码修改、Hook技术、证书伪造等手段。在测试过程中,应根据具体情况选择适用的方法,同时保持对安全性和道德的考虑。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容