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 -