ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用aircrack-ng破解WPA2:抓取握手包与离线字典攻击实战

用aircrack-ng破解WPA2:抓取握手包与离线字典攻击实战 简介西南科技大学无线网络安全技术实验四报告聚焦使用aircrack-ng工具完成WPA/WPA2密码破解的完整流程。面向无线网络安全课程学习者报告基于Kali Linux和手机热点环境完整记录了从开启无线网卡监听模式、利用airodump-ng扫描目标AP与客户端、使用aireplay-ng实施deauth攻击抓取握手包到通过aircrack-ng加载字典文件成功破解密码的各个阶段关键命令与参数说明清晰并配有实验结果截图便于读者对照复现并深入理解WPA握手包捕获与暴力破解原理。包含1份doc文档约1.37MB目前已有812人学习。除操作流程外报告还包含讨论与分析梳理了Aircrack-ng的破解原理总结了家用WiFi安全加固的具体建议如避免弱密码、绑定MAC地址、管理密码分类并记录了实验中容易遇到的抓包文件路径等典型问题与解决思路适合完成课程实验、备考或自学无线安全攻防的读者借鉴。1. 先说清楚aircrack-ng 破解 WPA实验课到底在练什么不少高校的无线网络安全实验里都有一道绕不开的必修题用 aircrack-ng 对一个 WPA/WPA2-PSK 接入点做口令破解西南科技大学的无线网络安全实验也不例外。第一次做这个实验的人容易把它等同于「破解 Wi-Fi 密码」其实课程练的是两件事第一能不能完整抓到客户端和 AP 之间的四次握手报文第二能不能理解 WPA2-PSK 的认证机制在离线字典攻击面前到底有多脆弱。整个过程不需要高端硬件一台装了 Kali Linux 的虚拟机加一块支持监听模式的 USB 网卡就能在实验环境里完整复现。本文按「原理准备 → 抓包 → 离线破解 → 排错 → 进阶验证」的顺序把每一步命令、参数和失败原因写透照着操作就能跑通。2. WPA 握手的原理与实验准备为什么抓包比解包更关键2.1 WPA/WPA2-PSK 的身份认证流程四次握手里藏着什么WPA2-PSK 在终端和 AP 建立连接时并不会直接传输口令。AP 侧用自己的预共享密钥也就是你配置的 Wi-Fi 口令与 SSID 一起做 PBKDF2 派生生成一个 256 位的 PMK。之后四次握手会交换两个随机数AP 生成的 ANonce 和客户端生成的 SNonce。双方各自用 PMK 加上这两个随机数、双方 MAC 地址推导出 PTK最后在 EAPOL 帧里放一段 MIC 校验值证明对方确实持有同一把 PMK。对做实验的人来说这套流程最关键的结论是只要完整截获四次握手里的 ANonce、SNonce 和 MIC就可以在本地对候选口令做同样的推导再比对 MIC 是否一致。这意味着 WPA2 破解在本质上是离线字典攻击——抓包必须在现场跑字典可以在任何地方慢慢算。这也是实验和真实场景最大的区别实验环境里 AP 和客户端都是自己搭的信号、位置、重连时机都可控真实环境里抓包靠运气破解靠算力。先理解握手内容后面每条命令在做什么才不会变成黑匣子操作。2.2 实验环境清单网卡芯片、虚拟机直通与工具族分工做这个实验前建议先按下面的清单把环境凑齐每一项都有明确的选型理由。环境项推荐选型注意USB 无线网卡Atheros AR9271、Ralink RT3070 芯片的网卡看芯片型号而不是品牌这两类在 Kali 下对监听模式支持最省心操作系统Kali Linux 虚拟机自带 aircrack-ng 全套工具省去编译安装AP 设备家用路由器或手机开热点实验时建议关闭 802.11w 管理帧保护否则 deauth 触发会失败工具套件aircrack-ng、可选 WiFite手工敲命令跑通一遍再考虑自动化脚本aircrack-ng 不是单个工具而是一套工具族airmon-ng 负责切换网卡监听模式airodump-ng 负责扫描和抓包aireplay-ng 负责发送注入帧触发握手aircrack-ng 负责最终的字典破解。四条核心命令各管一段实验时最好逐个使用别一上来就套 WiFite 这类自动化封装脚本。它虽然能省去手敲命令的功夫但会把握手过程、协议字段这些关键细节藏起来出了问题反而更难排查。如果实验目标 AP 支持 PMKID 探测也可以用 hcxdumptool 抓 PMKID——这是另一种不需要等客户端重连的破解路径。但课堂实验一般还是以抓四次握手为主PMKID 放到后面进阶再看。2.3 把网卡切成监听模式airmon-ng 与 NetworkManager 的冲突监听模式是后续所有抓包动作的前提。普通网卡默认工作在 managed 模式只能收发与自身连接相关的帧切到 monitor 模式后网卡才能捕获空气中所有无线帧。# 确认网卡已被识别记下接口名 iw dev # 停用 NetworkManager 等会干扰监听的服务 sudo airmon-ng check kill # 把 wlan0 切换为监听模式生成 wlan0mon sudo airmon-ng start wlan0 # 查看监听接口是否就绪 iw dev wlan0mon infoairmon-ng check kill这一步不能省。NetworkManager 会周期性扫描信道导致网卡频繁跳频抓包时大量丢帧。执行后接口名通常从 wlan0 变成 wlan0mon后续 airodump-ng、aireplay-ng 的命令都针对这个监听接口。如果机器上有多块无线网卡建议先用iw dev确认哪块是 USB 外接的别误把内置网卡切了导致宿主机断网。3. 用 airodump-ng 锁定目标并抓取 WPA 握手包3.1 先全信道扫描再锁定目标信道抓包的第一步不是直接指定信道而是先做一次全信道扫描搞清楚实验 AP 在哪个信道、信号强度如何、有没有客户端在线。# 全信道扫描周围所有 AP sudo airodump-ng wlan0mon扫描界面里会列出附近所有 AP 的 BSSID、信道、加密方式和信号强度下方区域则列出与各 AP 关联的客户端 MAC。找到实验 AP 后记下它的 BSSID 和信道号。这里的教训是不要图省事直接在全信道模式下等握手包。网卡在全信道模式下要不断跳频2.4GHz 和 5GHz 之间来回切换时很容易漏掉 EAPOL 帧而握手过程往往只持续一两秒。锁定信道后重新启动抓包# 锁定信道并指定保存文件名等待握手出现 sudo airodump-ng -w cap/wpa --bssid 00:11:22:33:44:55 -c 6 wlan0mon-w指定抓包文件前缀实际会生成 cap/wpa-01.cap 这样的文件文件名后的序号是自动加的。-c指定信道--bssid指定目标 AP这样 airodump-ng 只关注这个 AP 的帧减少无关干扰。如果 AP 开启了 5GHz 频段注意把信道号改成实际的 5G 信道比如 36、149 等。3.2 主动触发握手aireplay-ng 的 deauth 攻击有客户端在线但一直没有握手包出现是因为握手只发生在客户端重新关联 AP 的时候。实验里最常见的手段是主动发送 deauth 帧把客户端踢下线让它自动重连重连过程就会产生四次握手。# 发送 5 个 deauth 帧踢掉指定客户端 sudo aireplay-ng -0 5 -a 00:11:22:33:44:55 -c 00:AA:BB:CC:DD:EE wlan0mon-0表示发送 deauth 攻击后面的数字是发送个数。-a是目标 AP 的 BSSID-c是客户端 MAC 地址。发送后观察 airodump-ng 界面当客户端重新连接时右上角对应 BSSID 那一行会出现WPA handshake字样表示握手抓到了。这里有个容易翻车的细节deauth 只是把客户端踢掉握手是否出现取决于客户端是否立刻重连。手机通常会自动重连但有些电脑网卡驱动会等十几秒甚至更久。如果发送完 deauth 后迟迟看不到握手标志可以适当增加发送次数或者把客户端从实验 AP 的覆盖范围移出去再接回来。实验环境里最好关闭 AP 的 802.11w 保护否则 deauth 帧会被直接丢弃后面避坑章节还会展开说。3.3 验证握手包EAPOL 帧数量与 Wireshark 确认看到WPA handshake字样也不能完全放心因为 airodump-ng 的判断标准有时会宽松。保险的做法是用 Wireshark 打开 cap 文件过滤 EAPOL 帧确认完整性。# 用 tshark 检查 cap 文件里的 EAPOL 帧 tshark -r cap/wpa-01.cap -Y eapol一个完整四次握手应该有 4 个 EAPOL 帧对应消息类型 1、2、3、4。如果只看到 1 和 2说明握手被中断后面 aircrack-ng 会报错。另外重传的 EAPOL 帧也会混在抓包里Wireshark 会标记为[Retransmission]这类帧不能作为有效握手使用。最省事的办法是重新抓一轮别在残缺的 cap 文件上浪费时间。4. 用 aircrack-ng 跑字典口令空间、参数与效率4.1 aircrack-ng 的最小命令与参数含义握手包到手后破解阶段可以在本地任意机器上进行不要求继续连着无线网卡。aircrack-ng 会依次读取字典中的每个候选口令重复握手时的 PMK 推导过程并与抓到的 MIC 比对。# 用字典文件破解 WPA 握手包 sudo aircrack-ng -w wordlist.txt -b 00:11:22:33:44:55 cap/wpa-01.cap-w指定字典文件路径-b指定目标 BSSID。如果 cap 文件里只包含一个 AP-b可以省略如果抓包时混入了附近其他 AP 的帧-b就能避免 aircrack-ng 在无关目标上浪费时间。破解过程中会实时显示当前尝试的口令数量和速度找到口令后会输出KEY FOUND!并打印明文口令。有些旧版本的 aircrack-ng 对 WPA 需要显式指定攻击模式加-a 2即可。新版本会自动识别但加上也无害。需要注意 aircrack-ng 默认只跑精确匹配不做变形、不加后缀。字典里有什么它就只能试什么。4.2 字典选型rockyou、实验字典与社工词字典决定了破解上限。Kali 自带 rockyou.txt 压缩包解压后大约一千多万条覆盖大量常见弱口令# 解压 Kali 自带的 rockyou 字典 sudo gzip -dk /usr/share/wordlists/rockyou.txt.gz实验口令是admin123、12345678这类弱口令时rockyou 几秒就能跑出来。但这里有个常见误区很多人拿着大字典跑了一整夜没结果第一反应是工具不行其实是字典里根本没有目标口令。WPA2 的字典攻击就是这样——口令不在字典里算力再强也白搭。实验场景里更快的做法是专门生成一个小字典把实验口令相关的词都放进去学校名称、课程英文名、SSID 名、老师常用的口令习惯、纯数字组合等。先拿这个字典验证整条链路是通的再上大字典跑能省大量等待时间。社工字典生成器可以按目标信息生成候选口令但实验课一般用不上了解即可。4.3 效率边界CPU 对比 GPU什么时候换 hashcataircrack-ng 默认跑 CPU同一个握手包交给 hashcat 用 GPU 跑速度通常能提升几个量级但原理完全相同——都是对候选口令做 PBKDF2 推导。实验环境里只要口令在字典中aircrack-ng 几秒到几分钟就能出结果没必要一上来就上 GPU。# 将 cap 转成 hashcat 的 22000 格式 hcxpcapngtool cap/wpa-01.cap -o wpa.22000 # 用 hashcat 跑同一个握手包 hashcat -m 22000 wpa.22000 wordlist.txthcxpcapngtool是 hcxtools 包里的工具Kali 一般自带没有就apt install hcxtools装一下。22000 格式携带了 SSID、MAC、nonce 和 MIC 等全部必要信息hashcat 按-m 22000识别。换工具只是换计算平台破解逻辑没有变所以不要指望 hashcat 能把字典里没有的口令变出来。5. 实验避坑指南抓不到握手包、破不出来时先查这五处5.1 网卡在虚拟机里丢包严重握手抓了十几次都没成现象airodump-ng 界面里信号强度显示很好但 EAPOL 帧一直不出现或者出现了也不完整。原因虚拟机 USB 直通常常只给到 USB 2.0 带宽抓包时磁盘 I/O 和虚拟机调度也会造成丢帧另一些网卡驱动在虚拟机里处于兼容模式monitor 模式的收包能力下降。解决先在虚拟机设置里确认 USB 控制器是 3.0网卡直通时选择 USB 3.0 接口。关闭虚拟机的无线省电选项和宿主机无线网卡的电源管理。如果还是频繁丢帧最稳妥的做法是在宿主机 Linux 里直接跑 airodump-ng 抓包把 cap 文件拷回虚拟机跑字典。5.2 deauth 发出去了客户端就是不重连现象aireplay-ng 命令行显示发送成功但 airodump-ng 里客户端一直不掉线WPA handshake迟迟不出现。原因大多数手机和电脑系统会忽略未经验证的 deauth 帧或者 AP 开启了 802.11w 管理帧保护deauth 被直接丢弃。有人把这归为玄学其实多半是这两类原因。解决实验 AP 上关闭 802.11w 再试换一台旧的实验路由器或者干脆等客户端自然重连——把客户端 Wi-Fi 断开再手动连接同样会产生四次握手。想绕开重连等待的话可以尝试 hcxdumptool 抓 PMKID那类探测帧由 AP 主动发出不需要客户端在场。5.3 Wireshark 里看着有 EAPOLaircrack-ng 却说不适用现象cap 文件里明明能过滤出 EAPOL 帧aircrack-ng 却提示找不到可用的 WPA 握手包。原因抓到的帧是重传的或者握手只抓到一半消息类型 1 和 2 齐全但 3 和 4 缺失。某些客户端在重连时发送的 EAPOL 帧格式不标准也会导致识别失败。解决用tshark -r cap/wpa-01.cap -Y eapol看消息类型确认 1、2、3、4 都齐。有重传标记的话在 Wireshark 里右键禁用该帧后再另存。不行就重新抓一轮抓包时多等几秒让完整的四次握手跑完再停止。5.4 字典跑完了没有任何结果输出现象aircrack-ng 跑完整个字典没有找到口令界面停在没有KEY FOUND的状态。原因口令不在当前字典里。这是最直接的原因和工具、网卡都无关。解决先把实验口令手工写进一个只有十几行的测试字典确认链路通畅。如果测试字典能破出来说明问题只在于目标口令强度再决定是加规则集变形跑还是把强口令换回弱口令完成实验。课堂实验要的是理解和流程不必为了证明工具厉害而把口令设成几十位随机字符串。5.5 实验结束不清理环境下一个实验直接翻车现象做完实验后网卡无法正常连接 Wi-Fi或者下一个实验启动虚拟机时报无线接口 busy。原因监听进程没有关闭NetworkManager 被airmon-ng check kill杀掉后没有恢复网卡还卡在 monitor 模式。解决按顺序执行恢复命令# 停止监听接口恢复 managed 模式 sudo airmon-ng stop wlan0mon # 重启网络管理服务 sudo systemctl restart NetworkManager # 确认接口状态 iw dev如果以后实验做得多可以把这几行写成一个cleanup.sh脚本做完实验跑一次省得每次手动敲三遍。6. 进阶验证把同一个握手包交给 hashcat 跑规则集6.1 转换格式hcxpcapngtool 与 22000 格式老教程里常见的是用 cap2hccapx 转成 hccapx 格式新版 hashcat 建议直接转 22000。转换后可以用同一份字典再跑一次结果应当与 aircrack-ng 一致——这本身就是一个很好的交叉验证。hcxpcapngtool cap/wpa-01.cap -o wpa.22000 hashcat -m 22000 wpa.22000 wordlist.txt -r rules/best64.rule-r rules/best64.rule是 hashcat 的规则集参数。规则集不是新字典而是对已有字典里的每一条做变形比如追加数字、替换大小写、在末尾加年份等。它能让一份弱口令字典覆盖更多变体也是真实口令爆破里最常见的手法。6.2 用规则集补强字典从实验破解到口令习惯如果你的实验口令恰好是admin加两位数字的组合rockyou 可能不含这种组合但 best64 规则会从admin变形出admin12、admin2024等候选词。这就是规则集的价值——不扩大字典体积而是扩大口令覆盖形态。验证方法很简单实验 AP 口令设成admin123先用原字典跑再用加了规则集的命令跑对比一下两边的耗时和结果。这一组对照数据比任何理论解释都有说服力能直观看到口令变形工具的实战意义。6.3 回到实验本身这趟破解流程到底证明了什么整套实验做下来我最大的血泪经验可以浓缩成三句话不要一开始就在真实路由器上做实验先用手机热点配合热点默认没有 802.11w 干扰抓握手包的成功率高很多不要迷信大字典实验的第一步永远是「把实验口令手工写进字典30 秒出结果」以此确认整条链路是通的抓包阶段宁可多等两分钟也别拿着残缺的 cap 文件反复跑字典那是纯浪费时间。这套流程验证的不只是工具好不好用更关键的是让人直观看到 WPA2-PSK 的边界握手包一旦被截获口令强度就完全暴露在字典空间面前。实验最后可以把 AP 口令换成Tr0ub4dor3这类强口令同一份字典、同一套规则集跑多久都破不出来。这个对比实验做一次比背十遍协议原理都管用。希望帮到你。本文还有配套的精品资源点击获取
返回列表