2. 抓包环境搭建:Wireshark安装与配置、无线网卡选择(Monitor模式)、Windows/macOS/Linux下的抓包环境准备
搭建一个靠谱的抓包环境,是无线分析的第一步。这一步要是没走稳,后面所有分析都是空中楼阁。我见过太多新手拿着普通网卡折腾半天,结果啥也抓不到——说白了,硬件就不对。
这一章,咱们把环境搭建这件事彻底讲透。从网卡选择到系统配置,从驱动安装到Wireshark调优,一步不落。
2.1 无线网卡的选择:为什么普通网卡不行?
普通家用无线网卡,说白了就是「听话」的设备。它只会接收发给自己的数据帧,其他帧直接丢掉。你想让它监听整个信道?没门。
抓包需要的是 Monitor模式(监控模式)。这个模式下,网卡会变成「聋子」——它不挑食,所有经过的无线帧都收。不管是别人的握手包、信标帧,还是探测请求,统统照单全收。
核心概念:Monitor模式 vs Managed模式
- Managed模式:普通上网模式,只收发给自己的帧
- Monitor模式:监听模式,收所有帧,不参与连接
我刚开始做无线安全时,就吃过这个亏。拿笔记本自带的Intel网卡折腾了两天,Wireshark里啥也看不到。后来换了块外接USB网卡,一插上就抓到包了。嗯,这个坑我替你们踩过了。
2.1.1 推荐网卡芯片
不是所有网卡都支持Monitor模式。下面这几款芯片,是我这些年实测下来最稳的:
| 芯片型号 | 支持频段 | 最大速率 | 驱动稳定性 | 推荐理由 |
|---|---|---|---|---|
| Atheros AR9271 | 2.4GHz | 150Mbps | ★★★★★ | Linux免驱,兼容性最好 |
| Ralink RT3070 | 2.4GHz | 150Mbps | ★★★★☆ | 老牌芯片,资料多 |
| Realtek RTL8812AU | 2.4/5GHz | 600Mbps | ★★★☆☆ | 支持双频,驱动稍麻烦 |
| MediaTek MT7610U | 2.4/5GHz | 433Mbps | ★★★☆☆ | 性价比高,5GHz可用 |
我的建议:新手首选Atheros AR9271芯片的网卡。淘宝上几十块钱,插上就能用。等你玩熟了,再考虑双频的RTL8812AU。
2.2 Wireshark安装与基础配置
Wireshark是目前最主流的抓包工具,没有之一。它背后用的是libpcap(Linux/macOS)或Npcap(Windows)来抓取原始数据包。
2.2.1 Windows下的安装
Windows下安装Wireshark,有个关键步骤很多人会忽略——Npcap的安装选项。
- 从官网下载Wireshark安装包(建议选64位版本)
- 安装过程中会提示安装Npcap,一定要勾选「WinPcap API兼容模式」
- 安装完成后,重启电脑
注意:安装Npcap时,记得勾选「Support raw 802.11 traffic」。如果不勾,你抓到的无线包会被网卡驱动「翻译」成以太网帧,丢失大量原始信息。
我曾经帮一个同事排查问题,他抓到的包全是「假」的——802.11帧头被驱动剥离了,只剩IP层。折腾了半天才发现是Npcap没勾那个选项。嗯,这种低级错误,犯一次就够了。
2.2.2 macOS下的安装
macOS稍微麻烦一点。因为苹果对无线网卡的限制比较多,内置的Airport卡虽然能进Monitor模式,但需要手动操作。
安装步骤:
- 用Homebrew安装:
brew install --cask wireshark - 安装ChmodBPF:安装器里勾选「Install ChmodBPF」,否则普通用户没权限抓包
- 重启后,在终端运行
sudo ifconfig en0 monitor开启监控模式(en0是你的无线网卡接口名)
避坑指南:macOS从Catalina开始,对系统目录的权限控制更严了。如果Wireshark提示「You don't have permission to capture on that device」,去系统偏好设置→安全性与隐私→隐私→网络,把Wireshark勾上。
2.2.3 Linux下的安装
Linux是无线抓包的天堂。几乎所有工具都是原生支持的,驱动问题最少。
安装命令:
# Debian/Ubuntu
sudo apt update
sudo apt install wireshark
# 安装时选择「Yes」允许非root用户抓包
# 然后把当前用户加入wireshark组
sudo usermod -aG wireshark $USER
# 重启后生效
开启Monitor模式:
# 查看无线网卡接口名
iwconfig
# 关闭网卡
sudo ip link set wlan0 down
# 设置监控模式
sudo iw dev wlan0 set type monitor
# 启动网卡
sudo ip link set wlan0 up
# 验证
iwconfig wlan0
# 输出应该显示 Mode:Monitor
2.3 抓包环境的核心逻辑
为了让你更直观地理解整个环境搭建的流程,我画了一张图:
2.4 各系统的详细配置步骤
2.4.1 Windows完整配置
Windows下最让人头疼的是驱动。很多USB网卡在Windows上不支持Monitor模式,或者驱动不开放这个功能。
我的经验是:用 Panda Wireless PAU05 或 Alfa AWUS036ACH,这两款在Windows下驱动最省心。
配置步骤:
- 插上网卡,安装官方驱动
- 打开设备管理器,找到网卡→属性→高级
- 找到 802.11 Monitor Mode 或 Wireless Mode,设为Enabled
- 打开Wireshark,选择对应的网卡接口开始抓包
注意:Windows下开启Monitor模式后,网卡就不能同时上网了。这是硬件限制,没办法。所以建议准备两块网卡——一块抓包,一块上网查资料。
2.4.2 macOS完整配置
macOS的无线网卡驱动是苹果自己写的,功能受限。内置的Airport卡虽然能进Monitor模式,但只能抓2.4GHz的包,5GHz抓不了。
如果你需要抓5GHz,建议外接一个支持macOS的USB网卡。我试过 TP-Link TL-WN722N v2/v3(需要换驱动),效果还行。
macOS下开启Monitor模式的完整命令:
# 查看无线网卡接口
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
# 假设接口是en0
# 断开当前WiFi连接
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z
# 开启Monitor模式
sudo ifconfig en0 monitor
# 验证
ifconfig en0
# 输出应该包含 "monitor" 字样
2.4.3 Linux完整配置
Linux是最省心的。几乎所有主流无线网卡都能进Monitor模式,而且驱动都是开源的。
我推荐用 Kali Linux 或 Ubuntu 做抓包系统。Kali预装了所有无线工具,Ubuntu则更稳定。
一键脚本(保存为 monitor.sh):
#!/bin/bash
# 无线网卡Monitor模式一键开启脚本
# 用法:sudo ./monitor.sh wlan0
INTERFACE=$1
if [ -z "$INTERFACE" ]; then
echo "请指定网卡接口,例如:sudo ./monitor.sh wlan0"
exit 1
fi
# 关闭NetworkManager对网卡的管理
sudo systemctl stop NetworkManager
# 关闭网卡
sudo ip link set $INTERFACE down
# 杀掉可能占用网卡的进程
sudo airmon-ng check kill
# 设置Monitor模式
sudo iw dev $INTERFACE set type monitor
# 启动网卡
sudo ip link set $INTERFACE up
# 验证
iwconfig $INTERFACE
echo "Monitor模式已开启,接口:$INTERFACE"
2.5 Wireshark基础配置调优
装好Wireshark后,别急着抓包。先做几个配置,能让你后面分析时省不少事。
2.5.1 关键配置项
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| Capture → Options → Buffer size | 256 MB | 缓冲区太小容易丢包 |
| Capture → Options → Enable promiscuous mode | 勾选 | 混杂模式,收所有帧 |
| Capture → Options → Monitor mode | 勾选 | 无线监控模式(如果网卡支持) |
| Edit → Preferences → Appearance → Layout | Packet List + Packet Details + Packet Bytes | 三栏布局最实用 |
| Edit → Preferences → Protocols → IEEE 802.11 | 勾选「Decode 802.11 + LLC」 | 正确解析无线帧头 |
2.5.2 常用显示过滤器
抓包时数据量很大,学会用过滤器能让你快速定位目标。这几个是我最常用的:
# 只看信标帧
wlan.fc.type_subtype == 0x08
# 只看探测请求
wlan.fc.type_subtype == 0x04
# 只看握手包(EAPOL)
eapol
# 只看某个BSSID的包
wlan.bssid == xx:xx:xx:xx:xx:xx
# 只看某个信道的包
radiotap.channel.freq == 2412
# 只看数据帧
wlan.fc.type == 2
小技巧:在Wireshark里输入过滤器时,按Tab键会自动补全。这个功能很多人不知道,但真的很好用。
2.6 常见问题与避坑
这些年帮人排查环境问题,总结下来就这几类:
- 抓不到包:八成是网卡没进Monitor模式。用
iwconfig或Wireshark界面确认一下。 - 抓到包但全是以太网帧:驱动把802.11帧头剥离了。换驱动或换网卡。
- Wireshark闪退:缓冲区设太大或驱动冲突。先调小缓冲区试试。
- macOS下权限不足:安装ChmodBPF,或者用
sudo wireshark启动(不推荐长期用root)。
我曾经遇到过一个奇葩问题——在Windows上用Alfa网卡,抓包时Wireshark能识别网卡,但一按开始就报错。折腾了两小时,最后发现是USB延长线质量太差,供电不足。换了个带屏蔽的USB线,问题解决。嗯,有时候问题不在软件,在硬件。
2.7 本章小结
环境搭建这件事,说难不难,说简单也不简单。核心就三点:
- 网卡要对——支持Monitor模式是硬门槛
- 驱动要装对——Windows下Npcap的选项别漏
- 模式要开对——Monitor模式没开,一切白搭