使用 WireShark 实时监控 android 设备网络通信

0x00 使用环境

PC
系统:Ubuntu 16.04
使用软件:WireShark
手机
系统:android 模拟器(android 工程机)
软件:busybox

其他工具: adb,nc 命令

0x01 实现思路

要实现实时监控两种思路:一个是使用代理在代理过程中获取数据内容,一个是用 tcpdump 抓包将数据发往 PC 端。本文介绍的是第二种方式:在手机中使用 tcpdump 命令抓取数据,将数据转发出去,PC 端接收转发到的数据,将数据传给 WireShark。

0x02 实现过程

按照上面的思路分为一下四个过程:
1. 手机端抓包
使用 tcpdump 获取网络包
2. 手机端转发数据
使用 nc 将数据发往指定端口
3. 将 android 中数据发往 PC
使用 adb 命令转发数据
3. PC 接收数据
使用 nc 获取数据
4. PC 分析数据
使用 WireShark 分析数据

手机

# 使用 tcpdump 抓包,并将结果输出到终端,再通过管道和 nc 监听 12345 端口,等待连接
tcpdump -n -s 0 -w - | busybox nc -l -p 12345

PC

# 使用 adb 转发 socket 连接
adb forward tcp:12345 tcp:12345
# nc 连接 PC 12345 端口,通过上面的 adb forward 命令即连接上手机的 12345 端口
nc 127.0.0.1 12345 | wireshark -k -S -i -

你可能感兴趣的:(android)