Android下实现抓包的原理基本大多是通过MITM代理的方式实现的。
PC端工具
- Fiddler
1.配置Fiddler允许监听https
Tools->Fiddler Options
decrypt https traffic
ignore server certificate errors
Export Root Certificater to Desktop
2.配置Fiddler允许远程连接
Tools->Fiddler Options->connections
->allow remote computers to connect,默认监听端口为8888
重启Fiddler
3.Android配置代理ip和port
Charles
官网Burpsuite
Wireshark
新版Wireshark支持调用tcpdump,支持抓取Android数据包并实施显示
tcpdump需要root权限,Wireshark启动会先运行tcpdump -h 检查输出
Android WiFi项目就不显示了。可以用一个shell脚本替代它
#!/system/bin/sh
su -c "/system/xbin/pcap/tcpdump $@"
Android端工具
- Tcpdump
tcpdump - p -vv -s 0 -w /sdcard/capture.pcap
Tcpdump下载
Github
基于Busybox脚本
首先后台运行
adb shell < adb_tcpdump.sh &
#su
tcpdump -s 0 -w - | nc -l -p 11333
adb shell < adb_wireshark.sh
adb shell < adb_tcpdump.sh &
sleep 1
adb forward tcp:11333 tcp:11333
sleep 1
mkfifo /tmp/sharkfin
wireshark -k -i /tmp/sharkfin &
nc 127.0.0.1 11333 > /tmp/sharkfin
在执行sh adb_wireshark.sh
shark for root
Wi.cap
BotBrew
BotBrew下载Wi.cap
com.evbadroid.wicapPacket Capture
不需要root,采用VPNService,无法捕获到第二层信息
Packet Capture下载tPacketCapture
tPacketCapture下载HTTP Injector
HTTP Injector下载AndroidHttpCapture网络诊断工具
Github开发者助手
开发者助手下载
自行开发
- VPNService API
参考
如何在 Android 手机上实现抓包
如何抓Android系统上的数据包
如何使用Burp和Magisk在Android 7.0监测HTTPS流量