1. RTL8821CU模块 使用 Wireshark 抓取80211帧
本人研究了半天,发现windows平台上似乎并不支持抓取80211的数据帧,需要专门的网卡来实现。因此决定在虚拟机上安装ubuntu来抓取80211的数据帧。在实现过程中主要参考了一下两篇文章
https://zhuanlan.zhihu.com/p/40242258
https://blog.csdn.net/weixin_41856150/article/details/102327913
1.1 驱动安装
公司的平台主要采用rtl8821cu模块,因此首先需要为ubuntu安装rtl8821cu驱动。可以在gihub上搜索rtl8821cu驱动下载,也可以上gitee.com上搜索下载。下载完成以后解包并进入相应的文件夹。
修改Makefile
找到以下配置,并安装要求进行修改
CONFIG_RTL8821C = y #在WIFI IC中选择,如果你不是8821cu模块,应选择其他选项
CONFIG_PLATFORM_I386_PC = y # 选择对应的软件平台,我选择I386
CONFIG_WIFI_MONITOR = y # 在Features中打开监视器支持,否则无法抓取80211数据帧
编译
在改路径下以下cmd命令,在对应的文件目录下会生成8821cu.ko驱动
make modules
插入驱动
使用以下命令插入驱动
modprobe cfg80211
modprobe mac80211
insmod 8821cu.ko
插入无线网卡
插入无线网卡,将usb设备切换到ubuntu虚拟机(可以点击vm虚拟机右下方的usb设备进行切换),就可以在虚拟机上看到相应的无线网卡以及wifi输出。
1.2 wireshark
直接用以下命令安装即可。
sudo apt install wireshark
使用以下命令便可以打开wireshark
wireshark
但此时因为没有设置无线网卡为监视器模式,无法监听80211数据帧
1.3 切换网卡为监视器模式
查看监视器模式是否支持
之前我们在配置文件中已经打开8821cu驱动对monitor的支持,现在我们需要确认相应的Makefile配置是否生效。(估计无法在windows系统使用80211抓包可能是自带驱动把相应的配置打开)
使用以下命令 iw phy
可以看到相应的网卡驱动 支持 monitor 模式,并且设备名为 phy0
用 ifconfig 命令查看无线网卡
我的无线网卡比较奇怪,名字为 wlx30eb1f1ca833 ,参照本教程的话需要把名字替换
使用 sudo ifconfig wlx30eb1f1ca833 down 关闭相应网卡
使用 sudo iw dev wlx30eb1f1ca833 set type monitor 将相应网卡设置为monitor模式
使用 sudo ifconfig wlx30eb1f1ca833 up 打开相应的网卡
如果必要,可以用 sudo iw dev wlx30eb1f1ca833 set channel 6 设置监听信道为6
再用 wireshark 打开wireshark,选择相应的无线网卡进行监听即可。
以下就是监听到的80211数据帧