前言
本文是针对APP校验证书,用frida配合r0capture进行APP抓包。
优点:1.能够无视证书抓取数据包
2.能够抓取多重协议数据包
缺点:本方式只能抓取,但是无法修改。
(由于我在实践中找多个博客一起对比翻阅中,发现大多数博客对此记录的内容比较多难以快速了解核心,所以我会在关键步骤简介整理)
APP抓包困难
安卓APP通常会校验证书,有时候还会校验代理跟模拟器,同时,他还可能会使用各种非http/s的协议进行通信。
这样我们很难直接开启代理用burp进行抓包,而不抓包就会遗漏很多有用的资产信息。
针对这样的困境我们使用frida和r0capture的配合实现抓包。
环境
win11系统
夜神模拟器
frida(一种底层的hook工具,能监控改变APP的执行)
r0capture(一个APP证书通杀脚本,基本上安卓通杀)
wireshark
环境安装
frida安装
python
首先你要电脑上安装了python环境
使用pip工具
pip install frida
pip install frida-tools
如果下载不成功可以加上 -i 【国内源】
因为现在我发现基本上不用国内源下库是下载不成了。。。
frida安装进虚拟机
github下载地址:Releases · frida/frida · GitHub
注意:你要看你pip下载的本地frida的版本,然后下载相应的版本
pip list
然后找到下的frida看你的版本。
这里我这时候的最新版本是16.2.1
所以我要下载16.2.1的版本(这个tools啥版本都行)
(讲解,arm代表真机,不带是模拟器,这里我用的夜神模拟器,所以要用第三个,因为夜神是x86不是64的)
注意要找这几个(很多16.2.1必须一模一样仔细找)(我安装了其他的一直不成功好一顿费力!)
之后把解压出来的文件放到夜神模拟器的文件中。
之后在本文件夹打开cmd命令行
依次输入如下(配置并执行)
adb push 【这个文件名】 /data/local/frida (把这个文件安装到虚拟机的这个目录下)
adb shell (打开虚拟机终端)
cd /data/local (切换到这个目录)
chmod 777 frida (给他可以执行的权限)
./frida (执行本文件)【但是执行了还不能用需要映射一下】
(这个终端不可以关闭,关闭了就相当于给关闭frida了)
(下次用就直接启动执行就行了,但是每次都要绑定端口)
新开一个终端
adb forward tcp:27042 tcp:27042 (绑定虚拟机的端口到主机)
检测是否可以执行
frida-ps -U
frida-ps -R
(不用进模拟器终端,在外面执行)
都没有出错就是没有问题。
r0capture
github:https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fr0ysue%2Fr0capture
下载下来之后用的时候直接命令行中执行他就行了
注意:他运行时可能会提示你没有找到python的某个模块,你直接赋值那个模块名,然后
pip install 【名字】
安装完就可以直接执行了
毕竟他没有打包exe嘛,有些库是需要咱们自己电脑上有的
寻找包名
我们每个APP都是有一个一串英文组成的包名。
打开模拟器的/data/data文件夹,里面都是包名。
但是我们分辨不了哪个是哪个。
可以用apk资源提取器查看
我用的是这个,别的安装包提取器也行
从中获取包名(案例软件的包名)
抓包过程
经过了上面frida安装的操作后应该是已经开启了frida。
我们在r0capture的文件夹中开启命令行
直接运行这个脚本
在命令行执行
r0capture.py -U [目标包名或者进程号] -v -p 名字.pcap
抓包这个软件,并且结束的时候生成一个pcap文件(可以直接用wireshark打开)
我们用包名的话,他会直接自动打开这个APP进行抓包,但是他可能会找不到我们输入的包名。
所以我们有时候需要ps查看进程,然后找到进程号输入进程号抓包。
但是需要我们提前打开APP。
我这个APP的包名无法使用
这里我的进程号是3777
我输入这个
我们使用APP他会自动抓取包。储存在miaomiao文件中
ctrl+c取消抓包
他会生成一个pcap文件
用wireshark打开
可以看到他啥协议的包都是可以抓取的。
结语
整这个玩意真是伤透脑筋了,各种坑跟bug。我基本也是避开各种坑给大家整理下来了。
这个坑了我好几天的玩意,希望我的整理能让大家快速的整理好。