问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
1
来源
1.
https://www.bilibili.com/read/cv36103159

1 前言
空口抓包(抓WiFi包)是无线测试/开发会涉及的操作。在Mac系统中的无线嗅探器(Sniffer)可以直接使用电脑自带的无线网卡进行空口抓包,在Linux系统中也可通过开启网卡监听模式(monitor)搭配抓包软件实现无线抓包。但在Windows系统中目前官方仍未提供成熟的空口抓包支持。

1.1 现有解决方案
目前Windows下空口抓包方案都是通过特定的网卡(支持监听模式)安装特定驱动,再搭配相应的抓包软件实现的。现有的3种抓包方案如下:

【方案一】使用Omnipeek抓包软件+特定网卡+特定驱动实现无线抓包。

  • 说明:Omnipeek是LiveAction旗下的无线抓包软件。LiveAction开发了一些基于MediaTek(以前称为 Ralink)、Marvell、 Atheros 芯片方案的专用无线驱动,实现了在Windows下的空口抓包。
  • 优缺点:目前用的最多的一种抓包方案,虽然Omnipeek不是免费的,但是在某宝上购买能用Omnipeek抓包的无线网卡,店家会发给你破解的软件和特定驱动。相关网卡有贵有便宜,但驱动需自己手动装,装驱动比较麻烦,装了这个特定的驱动后网卡就不能正常用来上网。而且只能使用Omnipeek进行抓包,这个软件界面看着比较繁杂。

【方案二】使用Microsoft network monitor抓包工具+特定网卡实现无线抓包。

  • 说明:NetMon是微软官方推出的免费抓包工具,能开启某些网卡的监听模式。
  • 优缺点:如果网卡支持,不需要安装特定驱动就能抓包,并且能搭配Wireshark进行抓包。但微软并未提供支持的网卡信息,网上能找到的资料也很少,这个工具已经停止更新很久了,能支持的网卡芯片都是比较老的(不支持WiFi6)。

【方案三】使用Commview for WiFi抓包软件+特定网卡实现无线抓包。

  • 说明:CommView for WiFi是TamoSoft公司的无线抓包软件。TamoSoft跟LiveAction一样,同样为一些无线网卡专门开发了适用于无线抓包的驱动。
  • 优缺点:这个软件会自动识别网卡并安装驱动,相比Omnipeek更智能,页面也更好看。而且支持使用一些电脑自带无线网卡(Intel网卡)进行抓包,就不需要再买外置网卡。但官方的不付费授权的的只能体验5分钟,软件的买断价非常贵(499刀)。

1.2 笔者解决方案
空口抓包需要开启网卡监听模式,而这个操作又需要网卡芯片与驱动支持。Windows空口抓包的难点在于Windows下的网卡原生驱动都是不支持开启网卡监听模式的,而Linux下的原生驱动大多支持开启网卡监听模式,如果能将Linux中的驱动“移植”到Windows系统中,那就能很好解决这个问题。
根据此构想,笔者实现了一种简易、低成本、适用性广的Windows下空口抓包方案。通过VMware虚拟机启用一个Kali虚拟机,在Kali下开启无线网卡的监听模式,并使用rpcapd暴露虚拟机种的网卡接口,最后在Windows下使用Wireshark的远程抓包功能即可实现空口抓包。
这个方案不需要再去安装任何无线驱动,因为使用的网卡在Kali是免驱的,能做到即插即用。并且笔者编写了一个C#程序用于无GUI启动虚拟机,能做到傻瓜式操作,整体使用非常简单。程序无需安装,开箱即用,只要电脑上安装了VMware,笔者的程序就可以使用。且由于是运行在虚拟机中,理论上支持Win7/Win10/Win11所有系统。
文末整理了该方案支持的网卡,理论上Linux下能空口抓包的网卡都可以用,有时间的话我会对市面上的网卡都测试一遍。目前是测试成功了一款WiFi6的USB无线网卡。

2 空口抓包操作
整体使用分三步:安装VMware虚拟机(如已安装直接跳过),启动WinSniffer程序并设置需要捕获的信道,使用Wireshark连接wlan0mon接口进行抓包。

2.1 安装VMware虚拟机

  • 安装VMware虚拟机,,这个没啥好说的,网上都资料很多,下载官方安装版,安装完找一个注册码激活即可。笔者用的软件包是安装完自动激活的,不需要手动填注册码。需要注意的是VMware版本推荐使用15.5或者以上,笔者尝试过低版本(12的版本)打不开Kali镜像。
  • 启动VMware虚拟机,点击菜单栏-编辑-虚拟网络编辑器,选择启用NAT模式的虚拟网卡(一般为VMnet8),将子网IP设置为192.168.10.0。因为虚拟机的IP我是设置了静态IP,地址为192.168.10.100,需要确保虚拟网卡与虚拟机在同一个网段才能连通。

2.2 启动WinSniffer程序

  • 把笔者的虚拟机镜像解压出来,直接点击WinSniffer.exe程序启动即可。他会在无GUI模式下开启Kali虚拟机。
  • 大概2-30秒这样,虚拟机会启动完并检测USB网卡有没有接入,如果接入了会开启网卡的监听模式。
  • 根据自己需要可以设置想要捕获的信道,这里会列出一些信道作为参考,还有一些没有列出来的信道(如149信道)都是可以抓的。

2.3 使用Wireshark抓包

  • 打开Wireshark(这个程序是免费的),点击捕获-选项,管理接口(Manage Interface...)-远程接口
  • 点击加号(+)添加远程接口,主机填192.168.10.100,端口2002,无认证,确定即可(设置过一次后面就不用设置了)。
  • 点击选择wlan0mon即可开始抓包。
    PS:这个程序界面是可以关闭的,关闭不影响抓包,重新打开再设置信道也可以。如果不需要抓包输入stop,程序就会把虚拟机关闭。

2.3.1 报文过滤操作
提供一些常见802.11报文在Wireshark中过滤的关键字。

Mac地址过滤

  • wlan.addr == mac address,specific client by mac address
  • wlan.ta == mac address,transmitter address
  • wlan.ra == mac address,receive address
  • wlan.sa == mac address,source address
  • wlan.da == mac address,destination address
  • wlan.bssid == ap mac address,radio mac address

管理帧(management frames)

  • wlan.fc.type_subtype == 0,association requests
  • wlan.fc.type_subtype == 1,association response
  • wlan.fc.type_subtype == 2,re-association request
  • wlan.fc.type_subtype == 3,re-association response
  • wlan.fc.type_subtype == 4,probe requests
  • wlan.fc.type_subtype == 5,probe responses
  • wlan.fc.type_subtype == 8,beacons
  • wlan.fc.type_subtype == 9,atims
  • wlan.fc.type_subtype == 10,disassosiations
  • wlan.fc.type_subtype == 11,authentications
  • wlan.fc.type_subtype == 12,deauthentications
  • wlan.fc.type_subtype == 13,actions

漫游三协议(802.11 k,v,r)

  • wlan.fixed.action_code ==23,802.11v dms request
  • wlan.fixed.action_code ==24,802.11v dms respose
  • wlan.rm.action_code ==4,802.11k neighbour request
  • wlan.rm.action_code ==5,802.11k neighbour response
  • (wlan.fc.type_subtype==0)&&(wlan.rsn.akms.type==3),802.11r auth request
  • (wlan.fc.type_subtype==1)&&(wlan.tag.number==55),802.11r auth response
  • (wlan.fc.type_subtype==2)&&(wlan.tag.number==55),802.11r re-association request
  • (wlan.fc.type_subtype==3)&&(wlan.tag.number==55),802.11r re-association response

3 抓包网卡收录
Github上有一个叫USB-WiFi项目,里面统计了一些支持在Linux下开启监听模式的USB无线网卡。
参考资料:https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Chipsets.md

根据此表格,以及USB-WiFi项目中提供的一些网卡资料,对市面上符合要求的国内外网卡进行统计收录。只要网卡在Linux中免驱且支持监听模式,用笔者的程序就能实现Windows下空口抓包。

🚀PS:如果下表中网友有我未测试的网卡(或不在表中但符合芯片要求的网卡),可以直接联系我,我将免费提供程序。

3.1 国内网卡(更新中)

3.2 国外网卡

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号