首页 / 资讯中心 / 文章详情

WPA-PSK四次握手与离线字典攻击实验:原理、抓包与爆破全解析

WPA-PSK四次握手与离线字典攻击实验:原理、抓包与爆破全解析 ★ FEATURED ARTICLE
简介本资源为电子科技大学网络安全协议课程的WPA-PSK口令攻击实验报告面向学习无线网络安全、准备相关实验或课程设计的高校学生与安全初学者。报告围绕WLAN工作原理、RSN密钥层次与四次握手原理展开完整记录了配置无线攻击环境、抓取握手包、编写程序破解口令的全过程并附有beacon帧、Probe response及四次握手各消息的抓包分析。压缩包内仅含1个docx文档约176KB篇幅紧凑但内容完整涵盖实验目的、原理、器材、步骤与结果验证。文档中给出了基于pbkdf2与PRF推导PMK、PTK并逐条比对MIC的破解思路还通过runtest函数对结果进行二次验证最终成功还原出口令。目前已有1475人学习下载适合希望理解WPA-PSK认证机制、掌握抓包与口令校验方法的读者参考也可作为实验报告撰写与排错思路的对照材料。1. WPA-PSK 口令实验到底在验证什么从四次握手到离线字典攻击很多同学做网络安全协议实验时把 WPA-PSK 口令实验当成跑个工具抓个包就交差了结果答辩时被问四次握手到底交换了什么、为什么能离线爆破直接卡壳。这个实验真正要你验证的核心命题只有一个WPA-PSK 的安全性完全绑定在预共享密钥的强度上协议本身的四次握手过程会泄露足够的信息让攻击者可以在不接触 AP 的情况下离线穷举口令。换句话说实验不是教你破解 WiFi而是让你亲手确认一个结论——当口令是弱密码时WPA-PSK 的防护形同虚设当口令足够强时离线爆破在算力上不可行。适合做这个实验的人包括网络安全协议课程的本科生、准备复现无线安全实验的从业者、以及想搞清楚 WPA2 四次握手认证流程的工程师。下面从原理到抓包到爆破把整条链路拆开讲清楚。2. 四次握手与 PSK 派生口令实验的理论底座2.1 四次握手到底交换了什么WPA-PSK 的认证过程不传输口令本身而是通过四次 EAPOL-Key 帧完成双向确认。理解这四步是理解后续爆破的前提。帧序方向关键内容作用第 1 帧AP → STAANonceAP 随机数AP 发起认证发送自己的随机数第 2 帧STA → APSNonce MIC客户端用自己的随机数计算出 PTK并附上 MIC 供 AP 验证第 3 帧AP → STAGTK MICAP 确认客户端合法下发组临时密钥第 4 帧STA → APMIC客户端确认握手完成关键点在于第 1 帧和第 2 帧就足以支撑一次离线爆破。因为攻击者拿到 ANonce、SNonce、AP 的 MAC、客户端的 MAC 以及第 2 帧里的 MIC 之后就可以在本地用候选口令走一遍同样的 PTK 派生流程算出 MIC 去比对。比对成功口令就对了。整个过程不需要和 AP 再交互这就是离线的含义。PTK 的派生公式是PTK PRF(PMK, Pairwise key expansion, min(AA,SPA) || max(AA,SPA) || min(ANonce,SNonce) || max(ANonce,SNonce))其中 PMK PBKDF2(HMAC-SHA1, passphrase, SSID, 4096, 256)。注意 SSID 参与了 PMK 的计算这意味着同一个口令在不同 SSID 下生成的 PMK 完全不同爆破时必须知道目标网络的 SSID。2.2 为什么 WPA-PSK 天然适合离线字典攻击WPA-PSK 的设计目标是在没有认证服务器的场景下比如家庭、小型办公提供可接受的无线安全。它用预共享口令替代了 802.1X 的 RADIUS 认证体系代价就是任何能捕获到握手帧的人都获得了验证任意候选口令的能力。PBKDF2 用了 4096 次 HMAC-SHA1 迭代这个数字在 2004 年设计时是为了增加暴力破解成本。但放到今天的 GPU 算力面前4096 次迭代的防护效果已经非常有限。一块中端显卡每秒可以尝试数十万到上百万个候选口令具体取决于实现和优化程度。这就是为什么实验里用常见密码字典能在几分钟内出结果。提示实验环境中请使用自己搭建的 AP 和客户端不要对未经授权的网络进行抓包或爆破这涉及法律风险。2.3 实验环境的最小构成做这个实验不需要复杂的硬件。常见做法是一台支持监听模式的无线网卡如 Alfa AWUS036 系列或虚拟机直通的兼容网卡一个自己控制的 AP可以用手机热点但注意手机热点可能不支持 WPA2-PSK 的完整握手捕获Kali Linux 或安装了 aircrack-ng 套件的 Linux 环境一个包含常见弱口令的字典文件如果手头没有物理无线网卡也可以用支持监听模式的虚拟网卡配合模拟环境但捕获真实握手帧的体验会打折扣。我一般建议至少用一块外置 USB 无线网卡因为笔记本内置网卡对监听模式的支持参差不齐驱动问题能让人折腾半天。3. 从抓包到爆破WPA-PSK 口令实验的完整操作链3.1 网卡监听模式配置与目标侦察第一步是把网卡切到监听模式然后扫描周围 AP锁定实验目标。# 查看无线网卡接口名 iwconfig # 关闭可能干扰的网络管理进程 sudo airmon-ng check kill # 开启监听模式假设接口为 wlan0 sudo airmon-ng start wlan0 # 确认监听接口已创建通常为 wlan0mon iwconfig # 扫描周围 AP记录目标 BSSID、信道和 SSID sudo airodump-ng wlan0monairmon-ng check kill会杀掉 NetworkManager、wpa_supplicant 等可能干扰监听模式的进程。执行后你的正常网络连接会断开这是预期行为。airodump-ng输出的表格里BSSID 是 AP 的 MAC 地址CH 是信道ESSID 是网络名称。记下目标 AP 的这三项后面抓包要用。参数说明airmon-ng start wlan0中的wlan0要替换成你实际的接口名。如果执行后没有出现wlan0mon可能是驱动不支持试试sudo airmon-ng start wlan0 6指定信道或者换一块网卡。3.2 捕获四次握手帧锁定目标后用airodump-ng针对特定 AP 抓包同时用aireplay-ng发送去认证帧迫使客户端重新握手。# 针对目标 AP 抓包-c 指定信道-w 指定保存文件名 sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon # 另开一个终端发送去认证帧迫使客户端重新连接 sudo aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF wlan0mon-0 5表示发送 5 次去认证帧。客户端被踢下线后会自动重连重连过程就会产生新的四次握手。airodump-ng右上角出现WPA handshake: AA:BB:CC:DD:EE:FF时说明握手帧已捕获成功。这里有个血泪经验去认证帧对 5GHz 频段和某些新网卡可能无效如果发了多次都抓不到握手可以尝试等客户端自然重连或者用-0 0持续发送。另外如果目标 AP 开启了 802.11w管理帧保护去认证帧会被拒绝这种情况下只能被动等待。抓包文件会保存为capture-01.cap等格式。可以用capinfos capture-01.cap确认文件内容或者直接用aircrack-ng检查是否包含握手。3.3 用字典离线爆破 PSK拿到握手帧后剩下的就是离线计算。aircrack-ng是最常用的工具也可以用hashcat获得更快的速度。# 用 aircrack-ng 配合字典爆破 aircrack-ng -w /usr/share/wordlists/rockyou.txt -b AA:BB:CC:DD:EE:FF capture-01.cap # 如果字典较大可以用 hashcat 先转换成 hash 格式再跑 # 先用 aircrack-ng 转换 aircrack-ng capture-01.cap -J out # 用 hashcat 爆破模式 2500 对应 WPA-EAPOL-PBKDF2 hashcat -m 2500 out.hccapx /usr/share/wordlists/rockyou.txtaircrack-ng的-w指定字典路径-b指定目标 BSSID。执行后会显示尝试速度和进度。如果字典里有正确口令会输出KEY FOUND!并显示明文。hashcat的-m 2500是 WPA-EAPOL-PBKDF2 的模式编号。相比aircrack-nghashcat能充分利用 GPU 算力速度可以快几十倍。转换步骤中-J参数生成.hccapx文件这是 hashcat 需要的输入格式。参数调优方面如果你的显卡支持加-O启用优化内核加-w 3提高工作负载。但注意-O会限制口令最大长度实验场景下通常够用。3.4 验证爆破结果与实验记录爆破成功后用aircrack-ng的输出确认口令然后回到客户端验证该口令确实能连接目标 AP。这一步是实验报告里容易被忽略但很重要的环节——它证明你爆破出的口令是真实有效的而不是工具误报。# 用 wpa_supplicant 验证口令 # 先创建配置文件 cat wpa_test.conf EOF network{ ssidTestAP pskfoundpassword } EOF # 尝试连接 sudo wpa_supplicant -i wlan1 -c wpa_test.conf -B sudo dhclient wlan1如果连接成功并获取到 IP说明口令正确。实验记录里应该包含目标 SSID、BSSID、信道、抓包时间、握手帧数量、字典大小、爆破耗时、是否成功、找到的口令。这些数据是后续分析口令强度与爆破时间关系的基础。4. WPA-PSK 口令实验的避坑与排查4.1 抓不到握手帧现象airodump-ng运行很久右上角始终不显示WPA handshake。原因常见有三种——目标 AP 没有活跃客户端没有设备连接就无法触发握手去认证帧被 802.11w 管理帧保护拦截网卡不支持当前信道或频段。解决先确认airodump-ng的 STATION 列有客户端 MAC。如果没有等待或换个有客户端连接的 AP。如果确认有客户端但发去认证无效检查 AP 是否开启了 PMFProtected Management Frames开启后只能被动等待自然重连。信道问题可以用iwlist wlan0mon channel确认网卡支持的信道列表。4.2 爆破速度极慢现象aircrack-ng显示每秒只尝试几百个口令字典跑几天都跑不完。原因aircrack-ng默认只用 CPU且没有针对多核优化。PBKDF2 的 4096 次迭代本身就是计算密集型的。解决换用hashcat并启用 GPU。如果只有 CPU可以尝试aircrack-ng的-p参数启用多线程。另外精简字典也很重要——用rockyou.txt的前 10 万条通常比全量 1400 万条更实际因为实验环境的口令一般不会太复杂。4.3 hashcat 报错 No hashes loaded现象hashcat -m 2500 out.hccapx rockyou.txt提示没有加载到 hash。原因.hccapx文件生成失败或格式不对。常见于aircrack-ng -J转换时握手帧不完整或者文件扩展名不对。解决先用aircrack-ng capture-01.cap确认握手帧有效会显示 1 handshake。如果握手不完整重新抓包。转换时确保输出文件扩展名是.hccapxhashcat 对扩展名敏感。也可以用cap2hccapx工具替代aircrack-ng -J。4.4 爆破出的口令无法连接现象aircrack-ng显示KEY FOUND但用该口令连接 AP 失败。原因极少数情况下是工具误报但更常见的是 SSID 不匹配。PMK 计算依赖 SSID如果抓包时的 SSID 和连接时输入的 SSID 有大小写或空格差异PMK 就不同。解决确认 SSID 完全一致包括大小写和特殊字符。可以用airodump-ng输出里的 ESSID 字段逐字符核对。如果 SSID 包含隐藏字符用hexdump查看抓包文件里的 SSID 原始字节。4.5 实验环境网卡驱动问题现象airmon-ng start wlan0执行后没有创建监听接口或者创建后无法抓包。原因内置网卡的驱动通常不支持监听模式或者支持不完整。Intel 网卡在这方面尤其挑剔。解决换用外置 USB 网卡推荐芯片组为 RTL8812AU 或 AR9271 的型号这两种在 Kali 下驱动支持最好。如果必须用内置网卡试试sudo airmon-ng start wlan0 6指定信道或者用iw dev wlan0 interface add mon0 type monitor手动创建监听接口。5. 从实验到实战口令强度验证与防御视角的进阶用法做完基础实验后更有价值的进阶方向是用实验数据反推口令强度策略。我一般会做这样一组对比准备三个字典——纯数字 8 位、常见英文单词、随机 12 位混合字符分别对同一个 AP 跑爆破记录耗时。结果通常很直观纯数字字典几分钟内出结果常见单词字典几十分钟随机 12 位混合字符字典跑几个小时也未必能命中。这个对比能直接支撑一个结论WPA-PSK 的安全下限取决于口令的熵而不是协议本身。8 位纯数字的熵大约是 26.6 bit现代 GPU 每秒能尝试数十万次穷举空间只有 1 亿种几分钟就能覆盖。12 位随机混合字符的熵超过 70 bit穷举空间是前者的万亿倍以上离线爆破在可行时间内无法完成。另一个进阶用法是验证 WPA3 的 SAE 握手对离线爆破的抵抗能力。WPA3 用 Dragonfly 握手替代了 PSK 的四次握手即使捕获到握手帧也无法离线验证候选口令必须与 AP 实时交互。这意味着 WPA3 从根本上消除了离线字典攻击的可行性。如果你有支持 WPA3 的 AP可以对比抓包观察 SAE 提交和确认帧的结构差异。对比项WPA2-PSKWPA3-SAE握手类型四次握手Dragonfly提交/确认离线爆破可行不可行前向保密不支持支持字典攻击抵抗依赖口令强度协议层面抵抗最后说一个我在实验课上反复强调的习惯每次爆破成功后不要只记录找到了要记录花了多久、用了什么字典、字典里排在第几位。这三个数据能让你在写实验报告时从我跑通了工具升级到我量化了口令强度与破解成本的关系。我带过的学生里能把这组数据整理成表格的答辩时基本不会被问倒。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站