app逆向抓包技巧:关于混淆后app无法绕过sslpinning的解决方案

本篇博客旨在记录学习过程,不可用于商用等其它途径

SSL单向认证检测绕过可以看这篇博客的讲解
app逆向抓包技巧:noProxy、vpn与sslpinning检测绕过

尝试从逆向一个app的过程去讲解流程

梳理过程

在抓包某个app时,出现如图红框标识的异常提示,这说明有这个app有sslpinning校验

在尝试了Xpose+JustTrustMeXpose+SSLUNPINNing以及Frida系列检测绕过脚本都没法成功绕过检测,这里咱先不去hook 底层抓包。

我所用的hook脚本基本都是各位大佬们的杰作,已经把sslpinning检测类处理了一个遍,但是都没法解决就很奇怪了。

这时想起在使用Hooker项目提供的just_trust_me.js进行hook时有如下报错,这才初步了解了混淆类

使用kadx打开app看看发现它是有使用Okhttp3发包的

使用frida的objection框架打印一下app全部的类中是否包含Okhttp3,发现确实没有

由此得出结论:这个app使用了混淆,且连类名也混淆了,而我是用的无论是Xpose模块还是Frida脚本,它们都是通过原始类名进行匹配,所以无法实现绕过

第一尝试

Hooker项目提供的just_trust_me_okhttp_hook_finder.js针对混淆情况进行了处理,能支持自识别类名。

通过研究代码能大致确定类型包含d,但是处理后并没有成功绕过检测,而全局匹配会导致超时或者app崩溃,这条路暂时没有好的解决头绪。

第二次尝试

使用OkHttpLogger-Frida提供的方案试试看

按它要求配置好环境后执行frida -U -l okhttp_poker.js -f com.example.demo --no-pause

注意:进去后先点击app触发一下请求,然后使用find()检测看看

说明确实有Okhttp3混淆,这时使用hold()前需要把Find Result~下打印出来的这些参数替换掉okhttp_poker.js脚本下的相关内容,保存后会自动刷新,再使用hold()

不过不错了,看着是寻找的okhttp3关键类及函数不太对,这条路暂时也没有好的解决头绪。

第三次尝试

参考博客关于JustTrustMe对混淆后的App无效的解决方案提供的解决方案够成功绕过。(注:博客讲解使用的apk也是这篇文章提供的

大概整理一下,这篇文章最终实现的思路是:

  1. hook那些日常开发中很少用到的类,但okhttp在验证证书之前又必须用到的类,然后通过这个类的调用堆栈,去识别okhttp的相关类。
  2. 根据okhttp的类特征进行对比,比如某个类有几个构造函数,构造函数有几个参数,构造函数的参数类型分别是哪些,类成员有几个,类成员类型有哪些,每个对应的类型有多少个

看代码知道作者选择hook com.android.org.conscrypt.OpenSSLSocketFactoryImpl类,而这个类的createSocket的调用堆栈中的RealConnection类可以找到CertificatePinner类和OkHostnameVerifier类的。这两个类正是Okhttp3检测实现的地方,只要处理这它们就能实现绕过

作者提供的是Xpose模块,必须要提前安装Xpose

相关推荐
CYRUS STUDIO2 个月前
frida脚本,自动化寻址JNI方法
android·运维·自动化·逆向·移动安全·jni·frida
大灰狼19133 个月前
【怎样基于Okhttp3来实现各种各样的远程调用,表单、JSON、文件、文件流等待】
java·springboot·网络流·okhttp3·文件流传输
白乐天_n3 个月前
FRIDA-JSAPI:Java使用
java·jsapi·frida
染指11103 个月前
3.安卓逆向-java语言控制流和数据类型
java·开发语言·安卓逆向·app逆向·保姆级攻略
九月镇灵将5 个月前
app逆向抓包技巧:SSL Pinning检测绕过
app逆向·ssl pinning·frida-objection
韩曙亮6 个月前
【错误记录】Android 应用漏洞修复处理 ( 动态反调试漏洞 | 调用 Debug.isDebuggerConnected 函数查询是否被动态调试 )
android·动态调试·攻击·漏洞·hook·frida·xposed
hcgeng6 个月前
Mac OS 安装frida
macos·frida
学编程的菜恐龙6 个月前
手机和模拟器的 Frida 环境配置
frida·夜神模拟器
stoneWang_L8 个月前
Frida入门笔记
安全·逆向·frida