在进行Android渗透测试时,常常会遇到HTTPS证书校验,其中包括客户端校验服务端证书和服务端校验客户端证书。以下是绕过这些校验的方法:
环境:
- Nexus 5
- Windows 10
- Burp Suite
- Jeb3
情况分类:
情况1: 客户端和服务端都不存在证书校验。
情况2: 客户端存在校验服务端证书,服务端不存在证书校验(单向校验)。
情况3: 客户端和服务端都存在证书校验(双向校验)。
情况1:
获取APK文件,使用Jeb3反编译APK文件。
在反编译后的代码中搜索checkClientTrusted
或checkServerTrusted
字符串。
检查反编译的代码,确认客户端和服务端均不存在证书校验。
设置代理,伪造证书,成功抓取数据包。
情况2:
获取APK文件,使用Jeb3反编译APK文件。
在反编译后的代码中搜索checkClientTrusted
字符串。
修改checkServerTrusted
方法的代码,将校验部分删除,使其变成情况1。
重新编译APK文件,安装并运行,设置代理,成功抓取数据包。
或
- 使用JustTrustMe.apk绕过SSL证书检查,如果无法绕过,可能还存在其他校验。
- 下载JustTrustMe源代码,编译并增加对其他校验函数的Hook,重新编译APK。
- 安装修改后的APK,设置代理,成功抓取数据包。
或
- 使用Frida进行绕过,运行Frida服务器脚本。
- 使用Frida脚本对APK进行Hook,绕过SSL证书检查。
- 设置代理,成功抓取数据包。
情况3:
- 尝试使用JustTrustMe.apk进行绕过,如果无法绕过,可能还存在其他校验。
- 下载JustTrustMe源代码,编译并增加对其他校验函数的Hook,重新编译APK。
- 安装修改后的APK,设置代理,成功抓取数据包。
或
- 使用Frida进行绕过,运行Frida服务器脚本。
- 使用Frida脚本对APK进行Hook,绕过SSL证书检查。
- 设置代理,成功抓取数据包。
或
- 查找APK中存放的私钥。
- 如果APK有壳,进行脱壳。
- 如果私钥存放在APK中,使用Jeb反编译APK,查找私钥。
- 使用私钥对证书进行签名。
- 伪造服务端信任证书,使用Burp Suite进行操作。
- 设置代理,成功绕过服务器校验,抓取数据包。
思考:
以上绕过方法展示了Android渗透测试中绕过HTTPS证书校验的多种途径。这种绕过可能会涉及到代码修改、Hook技术、证书伪造等手段。在测试过程中,应根据具体情况选择适用的方法,同时保持对安全性和道德的考虑。
© 版权声明
THE END
暂无评论内容