比Omnipeek更简单通用的Windows空口抓包/无线分析方案

651 阅读4分钟

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方法:

  1. 打开Wireshark,点击捕获-选项
  2. 管理接口-远程接口
  3. 添加远程接口,主机填192.168.10.100,端口2002
  4. 选择wlan0mon开始抓包

Sniff Master方法:

  1. 打开Sniff Master专业版
  2. 选择"远程捕获"选项
  3. 输入虚拟机IP和端口(192.168.10.100:2002)
  4. 开始捕获,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专业版对这些网卡都有良好的支持。