【APP小程序测试】APP抓包Frida反代理绕过和证书校验绕过

发布时间 2023-12-11 15:11:37作者: 小C学安全

前期准备

  1. 逍遥模拟器
  2. Burp(抓包)
  3. 测试APP
  4. frida
  5. wireshark
  6. r0capture

反代理和证书校验绕过

解决app证书校验无法抓包问题

使用工具:Frida
Firda 是一款易用的跨平 Hook 工具, Java 层到 Native 层的 Hook 无所不能,是一种 动态 的插桩工具,可以插入代码到原生 App 的内存空间中,动态的去监视和修改行为,原生平台包括 Win、Mac、Linux、Android、iOS 全平台。

本地安装frida—tools版本

#执行命令
pip3 install frida==14.2.18
pip3 install frida-tools==9.2.5

frida版本要和Python版本以及对应的Adroid版本对应
Python过高会导致frida不可用

连接模拟器adb GUI>ADB Root>Open Shell


执行命令getprop ro.product.cpu.abi查看模拟器位数

下载对应的frida版本:frida-server-14.2.18-android-x86_64.xz
执行命令上传:adb.exe push 工具路径 Android路径(例如:/data/locla/frida-server)

启动frida-server:

ASUS_I005DA:/ # cd /data/local/
ASUS_I005DA:/data/local # ls
frida-server tmp traces
ASUS_I005DA:/data/local # chmod 777 frida-server
ASUS_I005DA:/data/local # ./frida-server
#回车无任何报错说明运行成功


输入:adb forward tcp:27042 tcp:27042 转发请求
成功连接到frida-server,成功获取到模拟器进程

获取到新开应用程序进程

解决证书问题

  • 使用工具r0capture
  • 仅限安卓平台,测试安卓7、8、9、10、11、12、13、14 可用 ;
  • 无视所有证书校验或绑定,不用考虑任何证书的事情;
  • 通杀TCP/IP四层模型中的应用层中的全部协议;
  • 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
  • 通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
  • 无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;
    June.18th 2023 update:测试Pixel4/安卓13/KernelSU/Frida16 功能工作正常 正常抓包 导出证书
切记仅限安卓平台7、8、9、10、11 可用 ,禁止使用模拟器。

Spawn 模式:
$ python3 r0capture.py -U -f com.coolapk.market -v

Attach 模式,抓包内容保存成pcap文件供后续分析:
$ python3 r0capture.py -U 酷安 -v -p iqiyi.pcap

建议使用Attach模式,从感兴趣的地方开始抓包,并且保存成pcap文件,供后续使用Wireshark进行分析。

老版本Frida使用包名,新版本Frida使用APP名。APP名必须是点开app后,frida-ps -U显示的那个app名字。

  • 收发包函数定位:Spawn和attach模式均默认开启;
    可以使用python r0capture.py -U -f cn.soulapp.android -v >> soul3.txt这样的命令将输出重定向至txt文件中稍后过滤内容
  • 客户端证书导出功能:默认开启;必须以Spawm模式运行;
    运行脚本之前必须手动给App加上存储卡读写权限;

并不是所有App都部署了服务器验证客户端的机制,只有配置了的才会在Apk中包含客户端证书

导出后的证书位于/sdcard/Download/包名xxx.p12路径,导出多次,每一份均可用,密码默认为:r0ysue,推荐使用keystore-explorer打开查看证书。

  • 新增host连接方式“-H”,用于Frida-server监听在非标准端口时的连接。有些App会检测Frida标准端口,因此frida-server开在非标准端口可以绕过检测。