一、抓包基础:无线抓包到底是个啥?
各位同学好,我是老周。干无线通信这行十几年了,抓包这件事几乎天天都在做。今天咱们就聊聊无线抓包的基础——说白了,就是把空中飞来飞去的无线电波给“截住”,然后解析成我们能看懂的数据包。
你可能会问:为啥要抓包?嗯,我举个例子。有一次我在调试一个智能家居网关,设备明明连上了Wi-Fi,但就是收不到指令。折腾了半天,最后抓包一看——好家伙,网关在发ARP请求,路由器根本不回。原来是路由器的DHCP池满了,新设备拿不到IP。这种问题,不看包你永远猜不到。
1.1 无线抓包的概念
无线抓包,本质上就是监听无线信道上的数据帧。和有线抓包不同,无线环境里信号是广播的——只要你的网卡处在某个AP的覆盖范围内,理论上就能收到它发出的帧。
但这里有个坑:普通网卡默认只收发给自己的帧。想抓别人的包,得把网卡设成混杂模式(Promiscuous Mode),甚至监控模式(Monitor Mode)。监控模式下,网卡不关联任何AP,只管收空中的所有802.11帧——管理帧、控制帧、数据帧,一个不落。
⚠️ 注意: 监控模式不是所有网卡都支持。我踩过这个坑——买了个USB网卡,芯片是RTL8188EU,死活进不了监控模式。后来换了Atheros AR9271的芯片才搞定。所以选抓包硬件时,先查芯片型号支不支持monitor mode。
1.2 应用场景:什么时候需要抓包?
我总结下来,无线抓包主要有三大场景。你想想看,是不是都遇到过?
| 场景 | 典型问题 | 抓包能发现什么 |
|---|---|---|
| 调试 | 设备连不上网、吞吐量低、频繁断连 | 重传率过高、认证失败、信道干扰 |
| 安全审计 | 怀疑有非法AP、Deauth攻击、密码破解 | 伪造的Beacon帧、大量Deauth包、PMKID泄露 |
| 性能分析 | 视频卡顿、游戏延迟高、下载速度慢 | 信道利用率、冲突、TCP窗口问题 |
我个人习惯,遇到无线问题先抓三分钟包。很多时候,问题就藏在那些重复出现的帧里。
调试场景
调试是最常见的。比如你写了一个IoT设备的Wi-Fi驱动,上电后它连不上路由器。抓包一看——设备发了Association Request,AP回了Association Response,但状态码是17(拒绝)。这说明AP的关联表满了,或者设备不支持AP要求的加密方式。这种问题,看日志是看不出来的。
安全审计
安全审计这块,我印象最深的是有一次帮客户排查“Wi-Fi时不时掉线”的问题。抓包抓了半小时,发现有个MAC地址在疯狂发Deauth包——每秒几百个。这就是典型的Deauth攻击。后来定位到是楼下商铺的老板搞了个信号干扰器。嗯,报警处理了。
性能分析
性能分析更依赖抓包。你感觉网络慢,但慢在哪?是AP处理不过来,还是信道干扰太大?抓包看几个指标:重传率(Retry)、信道占用时间(Channel Utilization)、帧间隔(IFS)。重传率超过10%基本就有问题了。
1.3 常用抓包工具介绍
工具不在多,顺手就行。我常用的就三个:Wireshark、tcpdump、OmniPeek。各有各的适用场景。
1.3.1 Wireshark
Wireshark是图形化工具里的王者。支持上千种协议解析,过滤功能极其强大。我个人习惯在Windows或macOS上用Wireshark做离线分析——把抓好的pcap文件导进去,慢慢看。
Wireshark的过滤语法是必学的。比如:
wlan.fc.type_subtype == 0x08 // 只看Beacon帧
wlan.fc.retry == 1 // 只看重传帧
wlan.addr == 00:11:22:33:44:55 // 只看某个MAC地址的帧
💡 小技巧: 在Wireshark里右键一个帧,选“Follow → TCP Stream”,可以直接看到TCP会话的完整内容。调试HTTP或MQTT协议时特别有用。
1.3.2 tcpdump
tcpdump是命令行工具,适合在嵌入式设备或服务器上直接抓包。资源占用小,可以后台运行。我在调试Linux嵌入式设备时,经常SSH进去跑tcpdump:
tcpdump -i wlan0 -w /tmp/capture.pcap
tcpdump -i wlan0 -e -n -vvv // 实时查看,显示链路层信息
tcpdump的缺点是不太直观,过滤语法比Wireshark复杂。但胜在轻量——有些嵌入式设备内存才64MB,跑Wireshark是不可能的,tcpdump完全没问题。
1.3.3 OmniPeek
OmniPeek是商业工具,价格不便宜,但功能确实强。它最大的优势是实时解码和专家分析——抓包的同时就能告诉你“这里有异常”。比如它会自动标记出重传率高的节点、检测到Deauth攻击、分析信道利用率。
我曾经在做一个大型场馆的Wi-Fi覆盖项目时,用OmniPeek配合多块网卡同时抓多个信道的数据。它的“信道扫描”功能可以轮询所有信道,帮你找到干扰源。不过说实话,日常调试我还是用Wireshark多——毕竟免费,社区也活跃。
工具对比
| 工具 | 平台 | 价格 | 适合场景 |
|---|---|---|---|
| Wireshark | Win/Mac/Linux | 免费 | 离线分析、协议解析、教学 |
| tcpdump | Linux/嵌入式 | 免费 | 远程抓包、资源受限设备 |
| OmniPeek | Windows | 商业付费 | 大规模部署、实时专家分析 |
1.4 无线抓包知识体系
下面这张图是我自己整理的无线抓包知识框架。你把它记在心里,后面每章都会用到。
这张图把无线抓包分成了三个维度:概念、场景、工具。你从任何一个维度切入都能学会,但真正用的时候得三个维度结合起来。比如你知道了监控模式(概念),遇到设备连不上网(场景),用Wireshark抓包(工具)一看——哦,是认证帧丢了。这就是实战。
📌 本章要点:
- 无线抓包的核心是监听空中802.11帧,需要监控模式支持
- 三大应用场景:调试、安全审计、性能分析
- Wireshark适合离线分析,tcpdump适合嵌入式,OmniPeek适合大规模部署
- 抓包前先确认网卡芯片是否支持监控模式——这个坑我替你们踩过了