在渗透测试中总有APP的数据包是无法被抓取的,但frida与r0capture进行配合可以对那些无法抓取的数据包进行抓取

首先先了解一下frida跟r0capture 是什么东西

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

r0capture无视所有证书校验或绑定,不用考虑任何证书的事情;

通杀TCP/IP四层模型中的应用层中的全部协议;

通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等、及它们的SSL版本;

通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;

无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情

先附上两个工具的下载地址

frida:Releases · frida/frida · GitHub

r0capture:GitHub - r0ysue/r0capture: 安卓应用层抓包通杀脚本

接下来以我本地的电脑为例,教大家如何安装,模拟器为夜神模拟器;

首先要确保本地安装了frida的包

可通过frida --version 查看

如果没有安装的话,可以执行以下命令进行安装(前提是电脑安装了python环境,这里建议使用python3.8、python3.9),不建议一上来直接使用最新版本的python,可能会有很多库模块进行更新,导致frida无法正常使用。

安装命令如下
pip install frida
pip install frida-tools

这里模拟器是要装服务端我的是安卓,所以选的是安卓的,这里对应上我的电脑版本

下载好之后解压到模拟器的bin目录下,(其他目录也可以,因为frida-server服务端需要使用adb shell上传到安卓目录下),而夜神模拟器自带了adb环境

下载好之后解压到模拟器的bin目录下

接着到夜神模拟器的bin文件目录下 cmd打开命令提示器
执行adb.exe devices 查看模拟器是否有连接

(这里如若没有出现连接,可自行重新模拟器。)

接着通过命令,使用adb shell把下载好的frida-server 导入到模拟器/data/local/tmp目录中
adb.exe push frida-server-15.1.24-android-x86 /data/local/tmp/

拷贝进去后, 再执行adb.exe shell 进行连接到模拟器

修改我们上传进去frida文件的读写权限: chmod 777 frida文件名


启动 frida服务端
·
接着到本机的bin目录下在开启一个cmd 可通过
frida -ps -U
frida -ps -R
来进行检测是否建立了连接,正常情况来讲是可以看到模拟器的进程


frida-ps -R 这条命令如果不成功 ,说明没有进行端口转发操作。

可以输入命令
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
来进行端口转发

转发完成后,尝试执行frida-ps -R命令,成功显示说明端口转发成功,可以正常连接frida服务端

接着打开r0capture,具体的使用命令查看使用手册,这里就不多说了

在该文件目录下cmd

python r0capture.py -U -f app包名 -v -p 保存的pcap文件名
输入命令

抓取某APP的流量通讯信息

生成pcap包

放入wireshark即可看到数据包的内容。