3、无线网卡与监听模式

说到无线抓包,第一个绕不开的硬件就是无线网卡。很多人以为随便买个 USB 网卡就能开工,结果一开软件发现啥也抓不到。嗯,这里面的门道其实不少。我最早入坑时也踩过这个坑,买了个几十块的普通网卡,折腾了两天愣是没抓到任何管理帧。后来才明白——不是所有网卡都能进监听模式。

3.1 无线网卡的类型

市面上的无线网卡,从抓包的角度看,大致分三类。我习惯用一张表来对比,这样最直观:

类型 芯片组代表 监听模式支持 抓包能力 价格区间
普通消费级 Realtek RTL8812AU 部分支持 弱,只能抓关联帧 30-100 元
专业抓包级 Atheros AR9271 / AR9580 完整支持 强,支持所有帧类型 100-300 元
工业/渗透级 Alfa AWUS036ACH / RTL8814AU 完整支持 + 高功率 极强,支持 2.4/5GHz 双频 200-600 元

说白了,普通笔记本内置的 Intel 网卡,大部分都不支持监听模式。你想想看,Intel 从 2015 年之后出的无线模块,驱动层就把 monitor mode 给锁死了。我遇到过不止一个学员,拿着 MacBook Pro 自带的 Broadcom 网卡来问我为什么抓不到包——答案很简单,硬件不支持就是不支持,软件再怎么折腾也没用。

我的建议:入门阶段直接买一块 Atheros AR9271 芯片的 USB 网卡,淘宝上几十块就能搞定。Linux 下免驱,Windows 下装个 Zadig 驱动就能用。别在笔记本内置网卡上浪费时间。

3.2 监听模式(Monitor Mode)原理

监听模式到底是什么?我换个说法你就懂了。

普通模式下,网卡像个「听话的士兵」——只接收发给自己的数据包,其他的一律丢弃。监听模式呢?网卡变成了「全频段收音机」——不管是不是发给自己的,只要在信号范围内,所有 802.11 帧全部收进来。

这里面有个关键区别:普通模式只处理数据帧,而监听模式能抓到管理帧(Beacon、Probe Request/Response)、控制帧(RTS/CTS、ACK),以及所有数据帧。做无线安全分析,管理帧和控制帧才是最有价值的信息。

为什么会这样?因为网卡的固件在监听模式下关闭了 MAC 层的地址过滤功能。我打个比方:普通模式像只收自己快递的收件人,监听模式像把整栋楼的快递都拆开看一遍。嗯,后者当然更有「情报价值」。

核心原理:监听模式 = 网卡进入 RFMON(Radio Frequency Monitor)状态,关闭 MAC 地址过滤,接收所有 802.11 帧,并将帧头信息完整保留传递给上层软件。

我在一次企业无线审计项目中遇到过这种情况:客户说他们的 WIPS(无线入侵检测系统)总是漏报。我过去一看,网卡用的是普通模式,根本收不到 Deauth 攻击帧。换成监听模式后,问题立刻暴露——攻击者每秒钟发送 200 个 Deauth 包,之前全被网卡过滤掉了。

3.3 各平台开启监听模式的方法

不同操作系统,开启监听模式的方式完全不同。我按平台分别讲。

3.3.1 Linux 下开启监听模式

Linux 是最友好的平台,没有之一。我 90% 的抓包工作都在 Linux 上完成。

先确认网卡接口名:

iwconfig
# 输出示例:wlan0  IEEE 802.11  ESSID:off/any

然后关闭网络管理,开启监听模式:

sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up

验证是否成功:

iwconfig wlan0
# 输出中应看到:Mode:Monitor

如果遇到「Operation not supported」错误,说明网卡芯片不支持监听模式。我曾经在 Ubuntu 上用 RTL8821CE 网卡试过,死活开不了,最后换了块 AR9271 才搞定。

注意:开启监听模式后,网卡无法正常连接 Wi-Fi 上网。你需要另一块网卡或者有线网络来保持互联网连接。我习惯笔记本用有线,USB 网卡专门做抓包。

3.3.2 Windows 下开启监听模式

Windows 就比较麻烦了。原生驱动基本不支持,需要借助第三方工具。

我常用的方案有两种:

  1. 使用 Zadig 替换驱动——把网卡的 Windows 原生驱动换成 WinUSB 或 libusb-win32 驱动,然后配合 Wireshark 的 Npcap 使用。
  2. 使用 CommView for WiFi——这个商业软件自带驱动,安装后自动把网卡切换到监听模式。

具体步骤(以 Zadig + Wireshark 为例):

1. 下载 Zadig 工具
2. 插入 USB 网卡,在 Zadig 中选择该设备
3. 安装 WinUSB 驱动
4. 打开 Wireshark,选择该网卡接口
5. 如果看到「Monitor Mode」选项,勾选即可

Windows 下有个坑:每次插拔网卡都要重新装驱动。我建议专门准备一块 USB 网卡,插上就别拔了。

3.3.3 macOS 下开启监听模式

macOS 的情况比较特殊。内置的 AirPort 网卡可以通过命令行进入监听模式,但功能有限。

原生方法(适用于内置网卡):

# 先获取接口名
ifconfig
# 通常是 en0 或 en1

# 开启监听模式
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
# 6 表示信道,不指定则扫描所有信道

但说实话,macOS 原生的监听模式很弱——只能抓 2.4GHz,而且不支持 5GHz。我做过对比测试,同样的环境下,macOS 抓到的包数量只有 Linux 下的 30% 左右。

如果你非要在 macOS 上做专业抓包,我的建议是:买个支持 macOS 的 USB 网卡(比如 Alfa AWUS036ACH),然后用 Homebrew 安装 Wireshark,配合第三方驱动使用。

避坑指南:我曾经在 macOS Big Sur 上折腾了整整一天,想用内置网卡抓 5GHz 的包,最后发现苹果从 Catalina 开始就砍掉了 5GHz 监听支持。别走我的老路。

3.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。我画图时习惯把「硬件选择」作为起点,因为这是最容易出错的地方。

无线网卡与监听模式 · 知识体系 ① 硬件选择 消费级网卡 专业抓包级 工业/渗透级 ② 监听模式原理(RFMON) 关闭 MAC 地址过滤 → 接收所有 802.11 帧(管理帧/控制帧/数据帧) Linux iw / airmon-ng Windows Zadig / CommView macOS airport / USB网卡 ③ 验证:iwconfig / Wireshark 接口列表 / tcpdump -D

这张图从左到右、从上到下,就是本章的完整逻辑:先选对硬件,再理解原理,最后在不同平台上落地。我个人建议初学者从 Linux 入手,因为最省心。Windows 和 macOS 虽然也能用,但总有一些小毛病需要额外处理。

一句话总结:监听模式是无线抓包的「入场券」。网卡选不对,后面全是白费。花几十块买块 AR9271,装个 Kali Linux 虚拟机,这是我能给你的最实在的入门建议。