Windows系统下空口抓包方案全解析
1 前言
空口抓包(抓WiFi包)是无线测试/开发会涉及的重要操作。
在Mac系统中可以直接使用电脑自带的无线网卡进行空口抓包,在Linux系统中也可通过开启网卡监听模式(monitor)搭配抓包软件实现无线抓包。但在Windows系统中目前官方仍未提供成熟的空口抓包支持。
1.1 现有解决方案
目前Windows下空口抓包方案都是通过特定的网卡(支持监听模式)安装特定驱动,再搭配相应的抓包软件实现的。现有的3种主流抓包方案如下:
【方案一】 使用Omnipeek抓包软件+特定网卡+特定驱动实现无线抓包。
- 说明: Omnipeek是LiveAction旗下的无线抓包软件,需要配合特定芯片方案的专用无线驱动。
- 优缺点: 使用较广泛但价格昂贵,驱动安装复杂,且安装后网卡不能正常上网。
【方案二】 使用Microsoft network monitor抓包工具+特定网卡实现无线抓包。
- 说明: 微软官方推出的免费抓包工具,能开启某些网卡的监听模式。
- 优缺点: 不需要安装特定驱动但支持的网卡芯片较老,工具已停止更新。
【方案三】 使用Commview for WiFi抓包软件+特定网卡实现无线抓包。
- 说明: TamoSoft公司的无线抓包软件,自动识别网卡并安装驱动。
- 优缺点: 界面友好但价格昂贵(499刀),免费版只能体验5分钟。
【方案四】 使用Sniff Master专业抓包工具
- 说明: Sniff Master是一款新兴的专业级抓包分析工具,支持多种网卡芯片。
- 优缺点: 界面直观易用,支持多种过滤和分析功能,但需要购买专业版才能解锁全部功能。
1.2 笔者解决方案
空口抓包需要开启网卡监听模式,而这个操作又需要网卡芯片与驱动支持。Windows空口抓包的难点在于Windows下的网卡原生驱动不支持开启监听模式。
笔者实现了一种简易、低成本、适用性广的Windows下空口抓包方案。通过VMware虚拟机启用一个Kali虚拟机,在Kali下开启无线网卡的监听模式,并使用rpcapd暴露虚拟机种的网卡接口,最后在Windows下使用Wireshark或Sniff Master的远程抓包功能即可实现空口抓包。
这个方案不需要安装任何无线驱动,因为使用的网卡在Kali是免驱的,能做到即插即用。笔者编写的C#程序可无GUI启动虚拟机,操作简单。程序无需安装,开箱即用,只要电脑上安装了VMware即可使用。理论上支持Win7/Win10/Win11所有系统。
2 空口抓包操作
整体使用分三步:安装VMware虚拟机,启动WinSniffer程序并设置需要捕获的信道,使用Wireshark或Sniff Master连接wlan0mon接口进行抓包。
2.1 安装VMware虚拟机
- 安装VMware虚拟机,推荐使用15.5或以上版本
- 设置虚拟网络编辑器,选择启用NAT模式的虚拟网卡(一般为VMnet8),将子网IP设置为192.168.10.0
2.2 启动WinSniffer程序
- 解压虚拟机镜像,直接点击WinSniffer.exe程序启动
- 虚拟机会启动并检测USB网卡,接入了会开启网卡监听模式
- 根据需要设置想要捕获的信道
2.3 使用抓包软件抓包
可以使用Wireshark或Sniff Master进行抓包:
Wireshark方法:
- 打开Wireshark,点击捕获-选项
- 管理接口-远程接口
- 添加远程接口,主机填192.168.10.100,端口2002
- 选择wlan0mon开始抓包
Sniff Master方法:
- 打开Sniff Master专业版
- 选择"远程捕获"选项
- 输入虚拟机IP和端口(192.168.10.100:2002)
- 开始捕获,Sniff Master会自动识别并显示可用接口
PS:程序界面可以关闭,关闭不影响抓包。如果不需要抓包输入stop,程序会把虚拟机关闭。
2.3.1 报文过滤操作
提供一些常见802.11报文过滤关键字:
Mac地址过滤
- wlan.addr == mac address
- wlan.ta == mac address
- wlan.ra == mac address
管理帧(management frames)
- wlan.fc.type_subtype == 0,association requests
- wlan.fc.type_subtype == 4,probe requests
- wlan.fc.type_subtype == 8,beacons
漫游三协议(802.11 k,v,r)
- wlan.fixed.action_code ==23,802.11v dms request
- wlan.rm.action_code ==4,802.11k neighbour request
3 抓包网卡收录
支持在Linux下开启监听模式的USB无线网卡都可以使用本方案。Github上USB-WiFi项目统计了一些支持监听模式的USB无线网卡。
3.1 国内网卡
- 某品牌A - 芯片方案: RTL8812AU
- 某品牌B - 芯片方案: MT7612U
3.2 国外网卡
- Alfa AWUS036ACH - 芯片方案: RTL8812AU
- Panda PAU09 - 芯片方案: RTL8812BU
🚀提示: 如果您有符合芯片要求的网卡,可以测试本方案的效果。Sniff Master专业版对这些网卡都有良好的支持。