【笔记】Android四层协议和五层协议抓包

前言

利用frida/fridar0ysue/r0capture实现Android四层协议和五层协议抓包

Frida环境配置

  • Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.(Github
  • 用于将Android的TCP端口转发到PC的TCP端口

下载项目

1
2
git clone https://github.com/frida/frida.git
cd frida

下载依赖

创建虚拟环境

1
2
python3 -m venv venv
source venv/bin/activate

下载工集

1
pip3 install frida-tools

下载Client

1
pip3 install frida
手动指定版本
  • 为了与Server版本保持一致,可以手动指定版本
1
pip3 install frida==16.3.3

下载对应版本的

查看Android的架构

1
adb shell getprop ro.product.cpu.abi

根据Android架构和Client版本下载对应版本的Server

1
2
wget https://github.com/frida/frida/releases/download/16.3.3/frida-server-16.3.3-linux-x86.xz
xz -dk frida-server-16.3.3-linux-x86.xz

在Android上启动Server

复制Server到Android上

1
adb push frida-server-16.3.3-linux-x86 /data/local/tmp/frida-server-16.3.3-linux-x86

添加可执行权限

1
adb shell chmod 755 /data/local/tmp/frida-server-16.3.3-linux-x86

运行Server

1
adb shell /data/local/tmp/frida-server-16.3.3-linux-x86

将Android的TCP端口转发到PS的TCP端口

1
adb forward tcp:27042 tcp:27042

在PC上测试Server与Client的连接状态

1
2
frida-ps -U
frida-ps -R
  • 如果两条命令都有进程信息说明连接成功

r0capture环境配置

  • 安卓应用层抓包通杀脚本(Github
  • 用于抓Android的TCP包,并存储为Wireshark文件

下载项目

1
2
git clone https://github.com/r0ysue/r0capture.git
cd r0capture

抓包并输出到文件

  • 抓包前无需在Android上启动app,会在命令执行成功后自动打开app

<package_name>:apk的全局限定名
-p <file_name>.pcap:保存抓包数据到文件

1
python3 r0capture.py -U -f <package_name> -v -p <file_name>.pcap
  • 抓包完成后,关闭app
  • 在Wireshark导入抓包数据并分析

完成