调试无线功能,比如无线网卡无法连接这类问题,抓取无线报文显得十分重要,通过分析无线报文交互过程,可以快速定位问题。
windows下常使用omnipeek进行抓包,这个时候需要一张无线网卡和相应的抓包驱动。
无线网卡收到无线报文后会转化成有线报文,windows下使默认驱动只能抓取转换后的有线报文,所以需要安装相应的抓包驱动。
linux系统和mac系统下默认驱动是可以抓取无线报文的。
本文使用macbook+ wireshark进行无线抓包,主要介绍介绍软件的安装与配置
1、下载wireshark for mac然后安装。
注意使用CleanMyMac清理系统不要将启动项org.wireshark.ChmodBPF.plist清理掉。当打开wireshak,这个启动项会自动修改/dev/bpf*设备的权限,不修改是无法抓包的。
/Library/LaunchDaemons/org.wireshark.ChmodBPF.plist. A launch daemon that adjusts permissions on the system's packet capture devices (/dev/bpf*) when the system starts up.
2、airport命令
airport是mac系统自带的无线配置工具,比如通过airport命令可以切换信道
为了使用方便,先建立airport软链接,如下:
$ ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport
ln: /usr/sbin/airport: Operation not permitted
切换到管理员账户,可能还是会提示没有权限,这是由于mac ei capitan系统新增了系统完整性保护机制。
为了能建立软连接,可以先关闭系统保护,之后再打开:
重新启动系统 -> 按住Command+R键-> 菜单“实用工具“,”终端“
输入csrutil diable 执行成功后,重启系统即可。(csrutil enable为开启系统完整性保护功能)
建立软连接后,在终端输入任意位置输入airport,然后回车,会显示airport的使用说明,至此说明软链接建立好了。
3、设置无线网卡的信道
要抓取无线报文,首先要切换信道,下图是使用wifi explorer扫描到的部分无线:
可以看到无线ChinaNet-Nffd的带宽是40M,主信道为9,副信道为13 (9,+1 +1代表副信道在主信道右侧),同理11,-1代表主信道是11,副信道是7
以无线ChinaNet-Nffd为例,打算抓取电脑连接无线时的报文,首先需要执行如下两条命令:
# airport -z //断开所有连接
# airport -c9+ //切换网卡信道
4、设置wireshark,开始抓包
如下,是抓取到的无线beacon报文
附录:
下图是一些常用的过滤条件