网络安全实战:无线渗透测试——WiFi 握手包抓取与破解实战
序言:在没有边界的战场上起舞
在网络安全的长达数年的对抗史中,有一条看不见的战线,它不依赖于光纤,不依赖于服务器,而是漂浮在空气中。这就是无线安全。
回想过去,当我们谈论内网渗透、域控攻防时,所有的一切都有一个前提:你已经进来了。你可能通过外网的一个 Web 漏洞,可能通过一封精心构造的钓鱼邮件,拿到了内网的一个立足点。但如果你面对的是一个物理隔离的企业,外网坚如磐石,内部员工高度安全意识,钓鱼无效,你该怎么办?
这时候,红队队员的目光就会投向半空中那些看不见的电磁波。无线网络,是企业防御体系中最后一块物理边界的延伸。在很多人眼里,无线只是一个方便的接入点;但在攻击者眼里,那是一扇没有上锁的窗户。传统的有线网络,你必须物理接触到网线或交换机;而无线网络,只要你有一根好的天线,你在停车场、在隔壁咖啡厅、甚至在街对面的长椅上,就能对目标内部网络发起致命一击。
今天,我们将以实战的视角,像老猎手讲述狩猎故事一样,深入剥开 WiFi 安全的外衣。我们将从 802.11 协议的底层逻辑出发,探讨如何抓取那致命的“四次握手包”,如何用算力暴力破解密码,以及现代企业无线安全如何防御这些空中威胁。
第一章:空气中的法则——802.11 协议与 EAPOL 的前世
在动手抓包之前,你必须理解 WiFi 是怎么工作的。不理解协议,用再好的工具也只是个脚本小子。
1.1 有线等效加密(WEP)的荒诞岁月
在 WiFi 的洪荒时代,大家用的是 WEP(Wired Equivalent Privacy)加密。它的设计极其简陋,使用 RC4 流密码算法,且初始化向量(IV)只有短短的 24 位。
在繁忙的网络中,IV 很快就会重复。只要重复,基于流密码的异或运算就会暴露出明文的异或结果。当年著名的咖啡厅 Tomato 事件,攻击者通过大量抓取加密流量,利用 PTW 攻击,几分钟就能还原出 WEP 密钥。
现在 WEP 已经成了历史笑柄,没有任何现代企业还在使用它。但它的失败,催生了我们现在面对的庞然大物。
1.2 WPA/WPA2-PSK 的核心:四次握手
为了修补 WEP 的烂摊子,IEEE 推出了 802.11i 标准,也就是我们熟知的 WPA 和 WPA2。
在企业环境中,通常使用 802.1X(EAP)认证,需要一个 RADIUS 服务器。但在绝大多数中小企业、家庭和个人环境中,使用的是 PSK(Pre-Shared Key,预共享密钥)模式。也就是我们常说的“输入一个密码连上 WiFi”。
WPA2-PSK 的核心安全机制,就建立在“四次握手”上。
当你拿着手机靠近路由器,输入密码点击连接时,手机和路由器之间会发生以下对话:
- 第一步:AP 发送 ANonce。路由器生成一个随机数发给手机。
- 第二步:客户端发送 SNonce 和 MIC。手机生成一个随机数,并结合 ANonce、SNonce、手机 MAC、路由器 MAC,以及那个你们输入的 WiFi 密码,通过复杂的 HMAC-SHA1 算法计算出一个哈希值,称为 MIC(Message Integrity Code)。手机把 SNonce 和 MIC 发给路由器。
- 第三步:AP 发送加密密钥和 MIC。路由器用自己手上的密码,按照同样的算法算一遍 MIC。如果算出来的 MIC 和手机发过来的一样,说明密码正确!路由器确认后,把用于后续通信的加密密钥发给手机,并附带一个 MIC。
- 第四步:客户端确认。手机确认收到,握手完成,开始上网。
1.3 攻击者眼中的“阿喀琉斯之踵”
你看出问题了吗?
在整个四次握手中,路由器和客户端证明了“我知道密码”,但它们并没有在空中明文传输密码。这看起来很安全。
但致命的地方在于:这四次握手包,是在空气中明文广播的! 任何一个在旁边拿着监听网卡的人,都能把 ANonce、SNonce、MAC 地址以及那个用于校验的 MIC 全部抄下来。
带回实验室后,攻击者可以拿一个字典,用字典里的词当密码,按照同样的 HMAC-SHA1 算法去算一遍 MIC。如果算出来的 MIC 和你抄下来的 MIC 一致,那么恭喜你,字典里的这个词,就是真正的 WiFi 密码。
这叫离线字典攻击。这就是为什么我们今天要抓握手的根本原因。
第二章:准备猎枪——硬件与监控模式的选择
想要抓空气中的包,普通的网卡是不行的。你需要一把“猎枪”——支持“监控模式”的无线网卡。
2.1 为什么需要监控模式?
默认情况下,网卡工作在“Managed(受控)模式”。在这个模式下,网卡底层固件会自动过滤掉所有不是发给自己 MAC 地址的数据包。它只关心“我的数据在哪里”,对周围的其他流量视而不见。
而“Monitor(监控)模式”会关闭这种过滤机制。网卡会把天线接收到的所有 802.11 帧全部原封不动地交给操作系统。在监控模式下,你可以听到周围所有路由器和客户端的窃窃私语。
2.2 芯片选型:红队的兵器谱
在无线渗透圈,网卡芯片选型是一门玄学。因为 Linux 内核驱动对各种芯片的支持程度天差地别。
- Atheros AR9271:上古神器。大名鼎鼎的 Alfa AWUS036NHA 就是这颗芯片。它对
airmon-ng和aireplay-ng的支持堪称完美,发包率稳定。缺点是只支持 2.4GHz,且是老掉牙的 USB 2.0。 - Ralink RT3070/RT5572:性价比不错,支持 2.4G 和 5G。兼容性尚可,但偶尔会有固件崩溃的问题。
- Realtek RTL8812AU/RTL8812BU:现代主流。支持 802.11ac,高增益,双频。目前绝大多数现代高功率网卡用的都是这颗芯片。但它的驱动在注入攻击时有时会抽风,需要特定版本的驱动编译。
- MediaTek MT7612U:稳定可靠,支持 5G AC,且对监听和注入支持都不错。目前很多专业团队在用。
对于实战,我通常推荐准备两张网卡:一张传统的 AR9271 用来打 2.4G 的老目标,一张大功率的 RTL8812AU 用来打 5G 信号。
2.3 开启猎杀时刻:Airmon-ng 的魔法
将网卡插入你的 Kali Linux 或 Parrot OS。接下来,我们要让它进入监控状态。
# 查看无线网卡状态
iwconfig
# 假设网卡名为 wlan0
# 杀掉可能干扰监听的进程
airmon-ng check kill
# 开启监控模式,生成一个叫 wlan0mon 的虚拟接口
airmon-ng start wlan0
执行完毕后,iwconfig 会显示 wlan0mon 的工作模式是 Monitor。此时,你的网卡已经变成了一个无形的耳朵,准备倾听空中的秘密。
第三章:狩猎开始——扫描与目标锁定
空气中充斥着无数的信号。我们要找到目标,并分析它的加密类型。
3.1 盲人摸象:airodump-ng 的雷达图
airodump-ng wlan0mon
按下回车后,屏幕上会出现一个不断刷新的列表。上面一半是 AP(路由器),下面一半是 Client(客户端)。
读懂 AP 列表:
- BSSID:路由器的 MAC 地址。这是你后续攻击的精准坐标。
- PWR:信号强度。数值越接近 0 越好(如 -40 比 -80 好得多)。如果 PWR 是 -1,说明信号太弱抓不到包。
- Beacons:信标帧数量。路由器一直在广播自己的存在。
- CH:信道。极其重要!监听必须和目标在同一个信道。
- ENC / CIPHER / AUTH:加密类型。我们要找的是
WPA2和CCMP和PSK。如果是WPA3,传统的握手抓取将失效(后面会讲)。 - ESSID:WiFi 名字。如果是隐藏的,这里显示为
<length: 0>。
读懂 Client 列表:
这是抓包的关键!光有路由器发四次握手是不够的,必须得有客户端去连它,才会产生握手包。下面列表会显示连接到各个 AP 的客户端 MAC 地址。
3.2 锁定目标,耐心守候
假设我们找到了目标:ESSID 叫 TargetCorp_Office,BSSID 是 AA:BB:CC:DD:EE:FF,信道是 6。现在有员工正在连接它。
我们需要把 airodump-ng 固定在信道 6,只抓这个 BSSID 的包,并且把抓到的数据写到文件里。
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w target_handshake wlan0mon
-c 6:锁定信道 6。--bssid:只监听这个路由器。-w target_handshake:把抓到的包保存为target_handshake开头的 cap 文件。
此时,airodump-ng 会停在界面上,静静地等待。右上角如果出现WPA handshake: AA:BB:CC:DD:EE:FF,说明运气爆棚,刚好有傻帽客户端在连路由器,握手包抓到了!
但现实是残酷的。很多时候,员工早就连上了,网络里只有正常的业务流量,根本不会发生新的四次握手。你可能会等上 3 个小时,右上角依然空空如也。
这时候,你需要主动出击。
第四章:逼迫重逢——解除认证攻击
既然你不握手,那我就把你踢下线,逼你重新握手。这就是著名的 Deauth Attack(解除认证攻击)。
4.1 原理:粗暴的断线指令
802.11 协议中,有一种管理帧叫 Deauthentication Frame(解除认证帧)。它的作用是告诉客户端:“你断开吧”或“你滚吧”。
早期的 WiFi 协议设计者非常天真,他们认为这种管理帧是维持网络正常运转所必需的,因此管理帧是不加密的!
这意味着什么?只要你在空气中大喊一声:“我是路由器 AA:BB:CC:DD:EE:FF,客户端 11:22:33:44:55:66,你给我断开!” 客户端就会乖乖断开。攻击者不需要知道密码,就可以伪造路由器的身份把客户端踢下线。
客户端被踢下线后,由于人类的本性,手机会自动尝试重新连接这个 WiFi。就在它重新连接的那一瞬间,四次握手发生了,而你的 airodump-ng 正在旁边静静地看着它。
4.2 实战利器:aireplay-ng
保持 airodump-ng 的抓包窗口不要关。新开一个终端,执行解除认证攻击:
# 0 是解除认证,10 是发 10 个包
# -a 是路由器 MAC,-c 是客户端 MAC
aireplay-ng -0 10 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon
如果你不知道客户端 MAC,也可以直接广播踢所有人(但动静太大,不推荐):
aireplay-ng -0 10 -a AA:BB:CC:DD:EE:FF wlan0mon
按下回车。你会看到终端输出 Sending DeAuth...。如果一切顺利,切换回 airodump-ng 的窗口,你会看到右上角瞬间跳出那行令人激动的字符:WPA handshake: AA:BB:CC:DD:EE:FF。
这就是红队最爽的一刻。拿到了握手包,意味着这场空中博弈已经结束了 80%,剩下的就是回家用算力慢慢品尝。
4.3 现代防御的反击:802.11w (PMF)
解除认证攻击如此无敌,难道防守方就坐以待毙吗?
为了应对这种滥用,Wi-Fi Alliance 推出了 802.11w 标准,即 PMF(Protected Management Frames,受保护的管理帧)。开启了 PMF 后,路由器和客户端之间的解除认证帧也会被加密和校验,攻击者无法伪造。
但悲哀的是,至今为止,大量老旧的 IoT 设备和低端的家用路由器依然不支持 PMF,而为了兼容性,企业网管往往也不会强制开启 PMF。这就给了红队巨大的可乘之机。
第五章:离线炼丹——密码破解的算力狂舞
带着抓到的 .cap 文件回家,接下来是纯粹的算力碰撞。但在此之前,需要做两件事:清洗数据,选对武器。
5.1 清洗数据:剔除噪音
airodump-ng 抓到的包里包含了成千上万的信标帧、普通数据帧。真正有用的只有那四个 EAPOL 包。
如果直接把几百 MB 的原始包丢进 Hashcat,软件解析会很慢。
我们需要用 wpaclean 清洗一下:
wpaclean cleaned.cap target_handshake-01.cap
5.2 转换格式:迎接 Hashcat
早期的 aircrack-ng 是基于 CPU 破解的。但在 2026 年的今天,用 CPU 破解 WPA2 简直是浪费时间。现代红队必须使用 GPU(显卡)并行计算。
而 GPU 破解的王者是 Hashcat。Hashcat 不认识 .cap 格式,它需要特定的 .hc22000 格式。
# 将 cap 转换为 hashcat 格式
hcxpcapngtool -o hash.hc22000 cleaned.cap
转换后的文件里,包含了一长串包含了 MAC 地址、Nonce 和 MIC 的字符串,这就是喂给 Hashcat 的最终弹药。
5.3 破解策略:字典与规则的交响曲
破解本质上是在猜密码。但怎么猜,是一门艺术。
基础字典攻击:
准备一份好字典是关键。著名的 rockyou.txt 有 1400 万条密码,对于国内的 8 位纯数字密码(生日)命中率极高。
hashcat -m 22000 hash.hc22000 rockyou.txt
规则攻击:
企业的密码往往有规律,比如 公司名@2023。仅仅用字典里的原词是撞不中的。Hashcat 的规则引擎可以在字典的基础上进行变形。
比如使用 best64.rule:
hashcat -m 22000 hash.hc22000 rockyou.txt -r best64.rule
它会自动把字典里的 password 变成 Password1, password!, p@ssword 等常见变体。
掩码攻击:
如果你通过社工知道目标公司的密码策略是“大写字母开头 + 8 位数字”。那就不要跑字典了,直接上掩码,几分钟就能跑完:
hashcat -m 22000 hash.hc22000 -a 3 ?u?d?d?d?d?d?d?d?d
算力预估:
在 8 张 RTX 4090 组成的“炼丹炉”下,WPA2 的 Hashcat 跑字典速度约为每秒 100 万次。
- 8 位纯数字密码(1 亿组合):不到 2 分钟。
- 8 位小写字母+数字(2 万亿组合):约 30 分钟。
- 10 位以上复杂密码:算到天荒地老。
这就是为什么企业 WiFi 密码必须在 12 位以上且无规律的原因。
第六章:进阶与绕过——PMKID 攻击与无客户端破解
四次握手依赖客户端在线。如果目标是个深更半夜没人的办公室,你死活等不到客户端怎么办?2018 年,一种新的攻击方式横空出世,彻底改变了游戏规则。
6.1 PMKID:路由器的致命自白
研究员 Jens Steube 在研究 PMKID(Pairwise Master Key Identifier)时发现了一个惊天漏洞。
当客户端连接路由器时,某些路由器(特别是那些启用了“漫游”功能的企业级 AP)会主动发送一个包含 PMKID 的第一个 EAPOL 帧。
这个 PMKID 是路由器用 WiFi 密码和 MAC 地址算出来的一个哈希值。
这意味着什么? 你不需要等客户端来连接!你只要主动向路由器发个请求,路由器就会像个傻瓜一样把 PMKID 扔给你。你拿着 PMKID 回家破解就行了。这叫“无客户端攻击”。
6.2 实战操作:hcxdumptool
传统的 aireplay 做不了这件事,你需要新的工具 hcxdumptool:
# 开启监听并主动向路由器索要 PMKID
hcxdumptool -i wlan0mon -o pmkid_dump.pcapng --enable_hcx
它会主动去骚扰周围的所有 AP,只要哪个 AP 返回了 PMKID,就会记录下来。通常一分钟就能搞定。
然后转换:
hcxpcapngtool -o pmkid.hc22000 pmkid_dump.pcapng
丢进 Hashcat 用同样的模式跑。这种攻击极其隐蔽,且不需要客户端存在,是目前无线红队的首选手段。但可惜的是,目前大多数廉价路由器不支持漫游,不会返回 PMKID。
第七章:企业级威胁——802.1X 与 EAP 攻击
对于大型企业,他们不会用简单的 WPA2-PSK,而是用 802.1X 架构。员工用账号密码连 WiFi,后台有 RADIUS 服务器认证。
这种架构下,抓握手包是无用的,因为每个员工的密码不同。红队如何破局?
7.1 邪恶双子星:Evil Twin 攻击
既然抓不到你的包,那我就变成你。
攻击者在目标附近架设一个自己的 AP,名字(ESSID)和目标完全一样,且信号更强。客户端的天线是“谁信号强连谁”,于是它断开了真 AP,连到了攻击者的 AP 上。
当客户端连上后,攻击者的 AP 会弹出一个伪造的网页:“系统升级,请重新输入域账号密码”。不明就里的员工输入后,攻击者完成凭据收集,然后让客户端连接失败。
这种攻击极其有效。著名的无线工具 eaphammer 或 wifiphisher 就是专门做这个的。
7.2 凭据捕获:EAP 的中间人
针对 802.1X,攻击者还可以降级攻击。强制客户端使用脆弱的 EAP-MD5 或 PEAP 协议。通过中间人转发,捕获客户端发来的哈希或 MS-CHAPv2 响应,带回本地破解。
只要拿到了员工域账号密码,无线就成了内网的跳板。
第八章:蓝队的空中雷达——无线防御与检测
面对从天而降的攻击,蓝队绝不能只盯着有线网络。现代企业必须建立“空中的雷达”。
1. 无线 IDS/IPS (WIDS/WIPS)**
部署专门的无线传感器,持续监听空气中的 802.11 帧。重点检测:
- 大量 Deauth 帧:这是解除认证攻击的典型特征。一旦发现某 MAC 地址在短时间内向大量客户端发送断开帧,立刻告警并阻断。
- 未授权的 AP:如果发现一个新的 AP 使用了和公司同样的 ESSID,且 MAC 地址不在白名单库,立刻告警。这是 Evil Twin 攻击。
- 信号强度异常:如果在 CEO 办公室角落发现一个极其微弱但持续发包的 AP,可能是红队植入的树莓派。
2. 强健的加密与认证**
- 强制开启 802.11w (PMF),封死 Deauth 攻击的路。
- 对于高安全区域,使用 WPA3-SAE,彻底告别离线字典攻击的可能。
- 启用企业级 802.1X 动态密钥,避免全员共用一个密码。
3. 客户端加固**
员工是最薄弱的环节。在终端部署组策略,禁止连接除公司指定的几个 SSID 之外的任何无线网络。并在系统级别阻止“自动连接”功能,防止 Evil Twin 诱骗。
第九章:结语——当空气中不再有秘密
无线安全是一个极其特殊的领域。在这里,物理隔离变得不再绝对,电磁波成为了超越以太网的隐秘通道。
从破解 WEP 的荒诞,到四次握手的离线碰撞,再到 PMKID 的无客户端突袭,最后到企业级 Evil Twin 凭据收集。红队的攻击手段始终在演进,而防守方也在不断加固协议。
更多推荐
所有评论(0)