Android使用PCAPdroid + Wireshark抓包实时分析

183 阅读4分钟

1 Android 平台抓包工具

[!tip] Wireshark on android

  1. Step-by-Step: Installing Wireshark on Android

工具:

工具地址Root备注
PCAPdroidgithub.com/emanuele-f/…❌NoPCAPdroid 模拟 VPN,以便无需 root 即可捕获网络流量
Wiresharkwww.wireshark.org/#download结合 PCAPdroid 的 UDP/TCP 导出模式 实时监控 1
tcpdumpwww.androidtcpdump.com/android-tcp…✔Yes

2 PCAPdroid

📌 用户指南: emanuele-f.github.io/PCAPdroid/

🎨 PCAPdroid : PCAPdroid是一款无需root权限即可运行的开源网络捕获与监控工具,其常见应用场景包括:

  1. 分析设备中已安装应用(含用户应用与系统应用)建立的连接
  2. 将设备流量转储为PCAP文件并远程传输以供进一步分析(例如导入Wireshark
  3. 解密特定应用的HTTPS/TLS流量
  4. PCAPdroid通过调用Android系统VpnService接口捕获所有应用生成的流量。该工具实际并未创建外部VPN,所有流量均由应用本地处理。

功能:

  1. 记录并检查用户和系统应用建立的连接
  2. 提取SNI、DNS查询、HTTP网址及远程IP地址
  3. 借助内置解码器检查HTTP请求与响应
  4. 以十六进制转储/文本形式检查完整连接负载
  5. 解密HTTPS/TLS流量并导出SSL密钥日志文件
  6. 将流量转储至PCAP文件、通过浏览器下载,或实时流式传输至远程接收器(如Wireshark)进行分析
  7. 创建规则过滤正常流量,轻松识别异常情况
  8. 通过离线数据库查询识别远程服务器的国家及ASN
  9. 在已root设备上,支持在其他VPN应用运行时同步捕获流量

2.1 Android 设备上使用

📌步骤:

  1. "设置" 中开启 TLS解密, Mitm设置向导 会引导安装 ca 证书
    1. 下载安装 PCAPdroid-mitm 地址:github.com/emanuele-f/…
    2. 手机设置 安全-加密与凭据-安装证书-CA证书 安装 ca 证书
  2. 设置-捕获 下开启 PCAPdroid扩展
  3. PCAPdroid 主页,流量转储 模式 选择 无转储, 可在 连接 tab 页,查看实时捕获的流量,看到 绿色🔓 表示已解密

2.2 结合 Wireshark 的实时捕获

🔔 建议 流量转储 模式 使用 TCP导出器(pcap-over-ip), 从 v1.8.6 版本开始支持,这是 实时捕获 的推荐模式

  1. 分别下载pcapdroid.luapcapdroid_udpdump.lua

  2. 放置到 Wireshark 安装目录的 plugins 目录下,重启 Wireshark

  3. 检查 Wireshark 帮助-关于 Wireshark-插件 列表中是否有加载 pcapdroid.luapcapdroid_udpdump.lua 的条目,如果有,说明加载成功 image.png

  4. Wireshark的 编辑-首选项-外观-列 中,点击 "+" ,添加一个 column,以便在捕获条目显示来自哪个App,但让也可以不用,如果appname是中文,当前版本会乱码

    title   类型       Custom Express
    App     Custom    pcapdroid.appname
    

    pcapdroid_appname.png

💥注意:

  1. 如果你使用 udpdump, 遇到wireshark无法显示实时捕获时,检查 防火墙, 安装 udpdump 的默认防火墙 入站规则 UDP 协议可能不允许连接,改为 允许连接,指定使用端口 5555也可以,因为默认所有端口,不过建议使用 TCP导出器(pcap-over-ip)

📌 PCAPdroid 配置:

  1. 收集器IP地址:要运行 wireshark 实时分析的 PC 端IP地址

  2. 收集器端口:如果使用 udpdump, 在wireshark ,点击 捕获-UDP Listener remote capture:udpdump 前的 "设置图标",可以看到 udpdump 的监听端口为 5555

    pcapdroid_tcp_udp_exporter.png

    wireshark_udpdump.png

2.2.1 Windows系统上的实时分析

📌 基于 ncat:

  1. 下载安装 nmap : nmap.org/download.ht… , ncatnmap下的一个程序
  2. ncat 可作为一个server使用, ncat -l 5555 表示在本地端口 5555启动一个 TCP 监听服务,所有的标准输入、输出都会在此端口输出
# 在 5555 端口启动一个 TCP 服务,并把输出重定向给 wireshark
ncat -lvp 5555 | "D:\Program Files\Wireshark\Wireshark.exe" -k -i -
  1. PCAPdroid 流量转储 选择 TCP导出器
  2. 点击开始

📌 基于 curl:

  1. 下载安装 curl
  2. PCAPdroid 流量转储 选择 HTTP服务器
  3. 点击开始,显示一个 http服务地址: http://192.168.26.222:8080
curl -NLs http://192.168.26.222:8080 | "D:\Program Files\Wireshark\Wireshark.exe" -k -i -

2.2.2 Linux系统上使用实时分析

📌 流量转储在 HTTP服务 模式下:

curl -NLs http://192.168.26.222:8080 | wireshark -k -i -

3 tcpdump

🤡 需在 Rooted 的设备上执行:

adb push tcpdump /data/local/tcpdump
adb shell ls -l /data/local/tcpdump

cd /data/local/
chmod +x tcpdump

# 确认执行权限
ls -l tcpdump

# -i 可指定网络接口,可通过 ifconfig 查看,一般:wlan0 代表WiFi网口
tcpdump -p -s 0 -w /sdcard/001.pcap

adb pull /sdcard/001.pcap C:\Users\admin\Desktop\

🚀 把pcap文件在 Wireshark 中打开分析


Footnotes

  1. emanuele-f.github.io/PCAPdroid/d…