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 网卡来问我为什么抓不到包——答案很简单,硬件不支持就是不支持,软件再怎么折腾也没用。
3.2 监听模式(Monitor Mode)原理
监听模式到底是什么?我换个说法你就懂了。
普通模式下,网卡像个「听话的士兵」——只接收发给自己的数据包,其他的一律丢弃。监听模式呢?网卡变成了「全频段收音机」——不管是不是发给自己的,只要在信号范围内,所有 802.11 帧全部收进来。
这里面有个关键区别:普通模式只处理数据帧,而监听模式能抓到管理帧(Beacon、Probe Request/Response)、控制帧(RTS/CTS、ACK),以及所有数据帧。做无线安全分析,管理帧和控制帧才是最有价值的信息。
为什么会这样?因为网卡的固件在监听模式下关闭了 MAC 层的地址过滤功能。我打个比方:普通模式像只收自己快递的收件人,监听模式像把整栋楼的快递都拆开看一遍。嗯,后者当然更有「情报价值」。
我在一次企业无线审计项目中遇到过这种情况:客户说他们的 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 才搞定。
3.3.2 Windows 下开启监听模式
Windows 就比较麻烦了。原生驱动基本不支持,需要借助第三方工具。
我常用的方案有两种:
- 使用 Zadig 替换驱动——把网卡的 Windows 原生驱动换成 WinUSB 或 libusb-win32 驱动,然后配合 Wireshark 的 Npcap 使用。
- 使用 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,配合第三方驱动使用。
3.4 知识体系总览
下面这张图把本章的核心逻辑串起来了。我画图时习惯把「硬件选择」作为起点,因为这是最容易出错的地方。
这张图从左到右、从上到下,就是本章的完整逻辑:先选对硬件,再理解原理,最后在不同平台上落地。我个人建议初学者从 Linux 入手,因为最省心。Windows 和 macOS 虽然也能用,但总有一些小毛病需要额外处理。