前期准备
- 逍遥模拟器
- Burp(抓包)
- 测试APP
- frida
- wireshark
- 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开在非标准端口可以绕过检测。