不配证书,3步抓通安卓App全部流量
【免费下载链接】r0capture安卓应用层抓包通杀脚本项目地址: https://gitcode.com/gh_mirrors/r0/r0capture
装完App想看看它到底发了什么请求,结果证书校验全挡住了?r0capture是一款基于Frida的安卓应用层抓包脚本,直接Hook SSL读写函数,兼容安卓7到16,通杀Http、WebSocket、Protobuf等协议及其SSL版本,Okhttp3/Retrofit/Volley这些框架也都能抓到。
先搞清楚两件事
- 安卓7-16真机可用,模拟器架构复杂,建议别用
- WebView、小程序、Flutter自带SSL框架,目前抓不到
- 多进程子进程(:service、:push)暂未支持
- HTTP/2、HTTP/3在安卓上未普及,暂不支持
推荐搭配:frida17/安卓16,frida16.5.2/安卓14,frida15.2.2/安卓12。
3分钟看到第一包
第1步:克隆仓库并装依赖
git clone https://gitcode.com/gh_mirrors/r0/r0capture cd r0capture pip install loguru click预期:依赖装完无报错,r0capture.py出现在当前目录。
第2步:确认设备连接正常
frida-ps -U预期:列出目标设备上的App进程。注意老版本Frida用包名,新版本用App名(frida-ps -U显示的那个名字)。
第3步:启动抓包
python3 r0capture.py -U -f com.example.app -v预期:终端开始滚动SSL_read/SSL_write日志,hexdump里能看到App发出的HTTP请求明文。
它到底替你干了什么
核心就三件事:
它Hook了SSL_read和SSL_write(Android底层libssl.so里的读写函数)→ 所以你能在TLS加密层之下直接看到应用层明文数据。不管App用BoringSSL还是Conscrypt,数据过这两个函数时都会被截下来。
它同时Hook了java.net的socketRead0/socketWrite0→ 所以不走SSL的明文HTTP请求也能抓到。Okhttp、Retrofit、Volley最终都落到Java层Socket读写,绕不过去。
它拦截了KeyStore$PrivateKeyEntry的证书获取→ 所以能自动把App里的客户端证书导出成p12文件,用于复现服务端验证场景。
换个姿势抓
Spawn模式(工具帮你冷启动App再开始抓,相当于从第一行代码开始监听):
python3 r0capture.py -U -f com.coolapk.market -v适用时机:想从App启动那一刻开始记录,或需要触发客户端证书导出(必须Spawn)。
Attach模式(挂到已运行的App进程上):
python3 r0capture.py -U 酷安 -v -p capture.pcap适用时机:App已经跑起来了,你只想从某个特定操作开始抓,顺便存成pcap给Wireshark二次分析。
进阶:把抓到的包玩出花
工作流1:定位收发包函数 → 重定向保存 → 离线分析
- 把输出重定向到文件:
python3 r0capture.py -U -f cn.soulapp.android -v >> soul3.txt- 打开soul3.txt,搜索
stack关键字,每次SSL_read/SSL_write都带完整Java调用栈 - 调用栈里
com.android.okhttp.okio出现的位置就是网络请求发起点
工作流2:切换Frida非标准端口绕过检测
有些App启动时会扫描27042标准端口。把frida-server改到别的端口再连:
python3 r0capture.py -H 192.168.8.112:10002 com.sinovatech.unicom.ui-H后跟frida-server监听的IP:端口,App探测27042时就找不到Frida。
工作流3:导出客户端证书
- 手动给App开存储卡读写权限
- 以Spawn模式(
-f参数)运行 - 触发App网络请求后,证书自动落到
/sdcard/Download/包名xxx.p12,密码r0ysue - 用keystore-explorer打开查看
抓不到包?按顺序查这4项
Q1:终端完全没输出?先跑frida-ps -U确认能看到目标App进程。看不到就是frida-server没起来或版本不匹配,按推荐搭配换。
Q2:只能抓到一部分请求?先换Attach模式试一次,从你感兴趣的操作开始抓。还是缺的话,检查App是否走了WebView或Flutter,这部分暂不支持。
Q3:App闪退或被检测?把frida-server改到非标准端口,用-H IP:端口连接。有些App启动时扫描27042端口。
Q4:客户端证书没导出来?确认两点:一是手动给了App存储卡读写权限,二是该App确实部署了客户端证书验证(没部署的不会包含p12)。
抓不到的包直接提issue。想改Hook点,打开script.js看SSL_read拦截逻辑。
- Frida Hook脚本
- 主程序入口
【免费下载链接】r0capture安卓应用层抓包通杀脚本项目地址: https://gitcode.com/gh_mirrors/r0/r0capture
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考