前言
经常遇到问题的时候需要抓取wifi数据包,常用的做法有三种:
1、使用 专用网卡+omnipeek+windows软件抓包
2、使用 macbook pro的airtool软件抓包
3、在路由器上使用tcpdump
除了omnipeek 其他都不能实时操作。如何结合openwrt来达到远程实时抓包呢?
搭建openwrt的免密登录
- 添加mac系统的ssh pub key到openwrt中:
- 测试ssh免密登录
ssh user@192.168.1.1
- 测试ssh远程执行命令方式
路由器安装tcpdump
- 安装tcpdump软件包
opkg install tcpdump - 测试抓包
mac上执行命令
"tcpdump -i wlan0 -s 0 -w -"
- 其中tcpdump -i wlan0 -s 0 -w - 中
-i 是指定需要抓取的路由器的interface
-s 是指定包大小,参数为0表示最大
-w 是指定输出文件 当参数为-表示输出到当前stdout
- 其中 | wireshark -k -i -
| 表示管道 stdin从管道中来
-i 表示input 如果参数是- 表示使用当前的stdin
于是通过远程抓取然后使用管道就把数据能够实时的传输到mac上快速查看
总结
利用openwrt的linux系统、tcpdump的抓包、ssh的远程执行命令、.ssh的公私钥免密登录、linux的管道|、wireshark的命令行指定input参数完成远程抓包,成为Engineer百宝箱的一把重要武器。
工欲善其事必先利其器。openwrt是第一把武器,远程抓包这篇文章是第一个招式。
PS
路由器使用的是tplink-wdr4310,openwrt使用的官网编译出来的factory的bin