抓包基础:WiFi配网流程概述、抓包环境搭建与Wireshark入门
各位好,欢迎来到这门实战课程。我是老周,干无线网络抓包这行快十年了。今天咱们先打好地基——把WiFi配网的整体流程、抓包环境怎么搭、Wireshark怎么上手,一次性理清楚。
说实话,我见过太多人一上来就开Wireshark乱抓一通,结果满屏的包看不懂,连配网走到哪一步都分不清。嗯,咱们不干那种事。先把地图摊开,再上路。
1.1 WiFi配网流程:从手机到设备的完整链路
WiFi配网,说白了就是让一个没有屏幕、没有键盘的智能设备(比如插座、灯泡、摄像头)连上你家路由器。它自己不会输密码,得靠手机或电脑“告诉”它。
目前主流的配网方式有四种,我列个表,你一看就明白:
| 配网方式 | 核心原理 | 典型应用 | 抓包难度 |
|---|---|---|---|
| Smart Config / 一键配网 | 手机用UDP广播包编码SSID和密码 | 乐鑫ESP8266/ESP32 | ★★★☆☆ |
| SoftAP配网 | 设备先开热点,手机连上去发WiFi信息 | 小米智能家居、部分安防摄像头 | ★★☆☆☆ |
| 蓝牙辅助配网 | 通过BLE传输WiFi凭证 | 苹果HomeKit、新国标设备 | ★★★★☆ |
| WPS配网 | 按键或PIN码触发WPS协议 | 老款路由器、打印机 | ★★☆☆☆ |
不管哪种方式,核心流程都逃不开下面这张图。我个人习惯先画流程再动手,这样抓包时心里有数。
你想想看,设备在配网阶段是“听”的状态,它抓取空口上的所有802.11帧。这时候我们抓包,就能完整还原手机和设备之间的“对话”。
核心要点:配网抓包的关键窗口期,就是手机开始广播到设备连上目标AP之间的几十秒。错过这个窗口,很多关键帧就丢了。
1.2 抓包环境搭建:硬件选型与软件配置
工欲善其事,必先利其器。抓WiFi包,硬件选不对,后面全是白费。我踩过不少坑,今天直接给你最优解。
1.2.1 硬件选择
抓802.11帧,普通电脑自带的无线网卡多半不行——它们只能抓发给自己的包。我们需要支持监控模式(Monitor Mode)的网卡。
| 硬件方案 | 推荐型号 | 优势 | 不足 |
|---|---|---|---|
| USB无线网卡 | TP-Link TL-WN722N v1/v3 Alfa AWUS036ACH |
便宜、便携、驱动成熟 | USB 2.0可能丢包 |
| 树莓派 + 外置网卡 | Raspberry Pi 4/5 + 任意Monitor网卡 | 可远程抓包、部署灵活 | 需要额外供电 |
| 专业抓包设备 | Yogitech、Frontline | 多通道、精准时间戳 | 价格昂贵(几千到上万) |
我个人习惯用Alfa AWUS036ACH,双频、支持802.11ac,抓5G频段毫无压力。记得有一次帮客户排查智能门锁配网失败,就是靠它抓到手机发的包被路由器挡了——普通网卡根本看不到那层数据。
避坑指南:买TL-WN722N一定要看版本号。v1用Atheros AR9271芯片,完美支持监控模式;v2/v3换了芯片,驱动支持很差。我曾经买错过,折腾了两天没抓到包,最后才发现是版本问题。
1.2.2 软件环境搭建
软件方面,我推荐以下组合,稳定且功能全面:
- 操作系统:Kali Linux 或 Ubuntu 22.04+(Windows下用WSL也可以,但USB转发稍麻烦)
- 抓包工具:Wireshark 4.x(主力)、tcpdump(命令行辅助)
- 无线工具:aircrack-ng套件(开启监控模式用)
- 驱动管理:根据网卡芯片安装对应驱动(Atheros/Ralink/Realtek)
装好之后,第一步是开启网卡的监控模式。命令很简单:
# 查看无线网卡接口名称
iwconfig
# 关闭NetworkManager对网卡的管理(避免干扰)
sudo systemctl stop NetworkManager
# 启用监控模式
sudo airmon-ng start wlan0
# 确认模式已切换(接口名通常变为 wlan0mon)
iwconfig wlan0mon
看到输出中 Mode:Monitor 就对了。这时候你的网卡已经能听到空口上所有的WiFi帧了。
注意:开启监控模式后,网卡无法正常连接WiFi上网。建议用双网卡方案——一张卡抓包,另一张卡保持网络连接,方便查资料和上传抓包文件。
1.3 Wireshark基础操作与过滤语法
环境搭好了,接下来就是Wireshark。很多新手一打开Wireshark就被满屏的包吓住了。别慌,咱们一步步来。
1.3.1 首次抓包操作
- 以root权限启动Wireshark:
sudo wireshark - 选择监控模式下的接口(比如
wlan0mon),点击开始 - 几秒钟后就能看到各种802.11帧——Beacon、Probe Request/Response、Data帧等
- 停止抓包:点击红色停止按钮,或按
Ctrl+E
嗯,这里要注意:第一次抓包时,你可能看到大量Beacon帧(信标帧),那是路由器在广播自己的存在。别嫌烦,这些帧能帮你确认网卡工作正常。
1.3.2 核心过滤语法
Wireshark的过滤语法分两种:抓包过滤器(Capture Filter,在开始前设置)和显示过滤器(Display Filter,抓包后筛选)。咱们主要用显示过滤器,灵活且不丢原始数据。
下面是我工作中最常用的一些过滤表达式,你直接拿去用:
| 过滤目的 | 显示过滤器表达式 | 说明 |
|---|---|---|
| 只看WiFi管理帧 | wlan.fc.type == 0 |
包含Beacon、Probe、Auth等 |
| 只看数据帧 | wlan.fc.type == 2 |
配网过程中的UDP数据就在这里 |
| 过滤特定BSSID | wlan.bssid == xx:xx:xx:xx:xx:xx |
只关注目标AP或设备 |
| 过滤特定源MAC | wlan.sa == xx:xx:xx:xx:xx:xx |
只看手机或设备发出的帧 |
| 配网UDP包(长度特征) | udp && frame.len > 100 && frame.len < 200 |
Smart Config常用包长范围 |
| Probe Request帧 | wlan.fc.type_subtype == 4 |
设备扫描WiFi时的请求 |
举个例子,我想看手机(MAC: 12:34:56:78:9a:bc)在配网时发出的所有数据帧:
wlan.sa == 12:34:56:78:9a:bc && wlan.fc.type == 2
这个组合过滤,能帮你快速定位到目标设备的通信内容。
我的习惯:抓包时先用 wlan.fc.type == 0 看管理帧,确认设备在扫描哪些WiFi;然后切换到 wlan.fc.type == 2 看数据帧,分析配网协议的具体内容。分步过滤,不容易乱。
1.3.3 常用操作技巧
- Follow TCP/UDP Stream:右键点击一个数据包 → Follow → UDP Stream,可以看完整的配网数据内容
- 时间列设置:View → Time Display Format → Seconds Since Beginning of Capture,方便看包之间的时间间隔
- 标记关键包:选中包后按
Ctrl+M标记,方便后续回顾 - 保存过滤后的包:File → Export Specified Packets,只保存你关心的帧
说实话,Wireshark的功能远不止这些。但作为第一课,你先把监控模式开起来、能抓到包、会用基础过滤,就已经迈出了最关键的一步。
本章小结:配网抓包的核心是“监听空口,还原流程”。硬件选对(支持Monitor模式的网卡),软件配好(Linux + Wireshark),过滤语法熟练(wlan.fc.type + MAC地址),后面章节的实战分析才能顺利进行。