
简介这份资源是西南科技大学无线网络安全技术课程的实验四报告主题为使用aircrack-ng进行WPA破解面向学习无线网络安全、需要完成同类实验或撰写实验报告的高校学生与安全入门者。压缩包内仅1个doc文档大小约1.37MB完整记录了实验目的、实验设计、实验过程与讨论分析涵盖配置实验环境、开启网卡监听模式、生成字典文件、使用aircrack-ng破解WPA密钥等核心环节并附有握手包抓取、aireplay-ng攻击、密码字典爆破等关键命令与参数说明。文档还包含实验思考、问题排查与自评例如握手包文件路径理解偏差导致破解失败的排错思路以及家用WiFi安全加固建议。目前已有812人学习适合作为实验报告模板与操作参考帮助读者理解WPA/WPA2安全原理与破解流程。1. 西南科技大学无线网络安全实验用 aircrack-ng 跑通 WPA 抓包与离线校验西南科技大学无线网络安全实验里用 aircrack-ng 做 WPA 握手包抓取与离线校验是很多人第一次真正把「无线安全」从课本概念变成终端里滚动的字符。它解决的不是「怎么蹭网」而是在自己搭建的实验环境里完整走一遍监听、抓包、字典校验、结果验证的链路理解 WPA/WPA2 的四次握手到底暴露了什么攻击面。适合已经装好 Kali 或任意带无线网卡驱动的 Linux、手上有测试 AP 和授权、想搞明白 aircrack-ng 每个参数含义的在校学生和刚入行的安全从业者。这篇笔记按实验台的真实顺序推进先讲清 WPA 握手的可攻击点再落到网卡监听、抓包、校验的完整命令最后把新手最容易翻车的地方一条条拆开。2. WPA 四次握手为什么能被离线校验先搞懂攻击面再动手2.1 WPA/WPA2 握手过程里真正暴露的东西WPA/WPA2-PSK 的认证核心是四次握手4-Way Handshake。AP 和客户端之间交换四个 EAPOL-Key 帧最终双方各自算出同一把 PTKPairwise Transient Key用来加密后续单播数据。关键点在于这四次握手里ANonce、SNonce、AP 的 MAC、客户端的 MAC、以及客户端发出的 MICMessage Integrity Code都会出现在空口上。攻击者只要完整抓到这四个帧就拿到了离线校验所需的全部材料。校验过程是这样的用候选密码来自字典和 SSID 一起跑 PBKDF2算出 PMK再用 PMK 加上抓到的 ANonce、SNonce、MAC 地址等参数推导出 PTK最后用 PTK 里的 KCK 去验证抓到的 MIC 是否匹配。匹配就说明密码正确。整个过程不需要再和 AP 交互所以叫「离线校验」。这也是为什么 WPA 的安全性高度依赖密码强度——空口抓包只是时间问题真正的门槛在字典和算力。注意这套流程只适用于你自己拥有或获得明确授权的测试 AP。对他人网络操作在绝大多数场景下都是违规甚至违法的实验课的意义在于理解机制不是拿去实战。2.2 实验环境需要准备什么在动手之前先把环境确认清楚否则后面每一步都可能卡住。西南科技大学这类实验通常在虚拟机里跑 Kali但无线网卡必须能被虚拟机直接接管否则监听模式根本起不来。项目要求说明操作系统Kali Linux 或带 aircrack-ng 的发行版实验环境常用 Kali工具链齐全无线网卡支持监听模式与注入常见芯片如 Atheros AR9271、RTL8812AU 兼容性较好测试 AP自己搭建或授权使用可用手机热点或旧路由器SSID 和密码自己设定字典包含测试密码的 txt 文件实验阶段可自建小字典几行就够权限root 或 sudo监听和注入都需要高权限网卡是否支持监听模式和注入直接决定实验能不能做下去。很多笔记本内置网卡驱动不支持插上 USB 网卡后在iwconfig里能看到接口名如 wlan0才算识别成功。虚拟机里还要在 USB 设置里把网卡挂载给虚拟机否则 Kali 里根本看不到这个接口。2.3 把网卡切到监听模式的最小命令确认接口存在后第一步是把网卡从管理模式切到监听模式。aircrack-ng 套件里的airmon-ng就是干这个的。# 查看当前无线接口和可能干扰的进程 sudo airmon-ng # 结束可能干扰监听的进程NetworkManager、wpa_supplicant 等 sudo airmon-ng check kill # 把 wlan0 切到监听模式通常会生成 wlan0mon sudo airmon-ng start wlan0 # 确认监听接口已就绪 iwconfigairmon-ng不带参数时列出无线接口和可能占用网卡的进程。check kill会结束 NetworkManager、wpa_supplicant 这类会频繁切换信道的进程不结束它们监听模式经常起不来或者抓不到包。start wlan0执行后一般会输出新的监听接口名较新版本直接沿用 wlan0老版本会变成 wlan0mon以实际输出为准。最后用iwconfig确认接口的 Mode 已经是 Monitor。参数说明airmon-ng start后面跟的是物理接口名不是监听接口名如果网卡支持多虚拟接口还可以指定信道但实验阶段先不指定让后续抓包工具自己控制。切回管理模式用airmon-ng stop wlan0mon实验做完记得切回来否则正常联网会失效。3. 抓包与校验全流程airodump-ng 锁定目标、aireplay-ng 催握手、aircrack-ng 跑字典3.1 用 airodump-ng 扫描并锁定目标 AP监听模式就绪后用airodump-ng扫描周围 AP找到自己的测试目标。# 扫描所有信道上的 AP 和客户端 sudo airodump-ng wlan0mon # 锁定目标 AP指定 BSSID、信道只抓该 AP 的包并写入文件 sudo airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 6 -w wpa_test wlan0mon第一条命令输出两张表上面是 AP 列表包含 BSSID、信道CH、加密方式ENCWPA/WPA2 会显示、ESSID下面是连到这些 AP 的客户端列表。找到自己的测试 AP记下 BSSID 和信道。第二条命令用--bssid锁定目标-c指定信道-w指定输出文件前缀。airodump-ng 会生成 wpa_test-01.cap 这类文件握手包就存在里面。参数说明--bssid是 AP 的 MAC必须和扫描结果完全一致-c不指定的话会在所有信道间跳容易漏掉握手帧-w后面的前缀不要带扩展名工具会自动加序号和 .cap。锁定后界面右上角会显示当前是否抓到握手出现WPA handshake: AA:BB:CC:DD:EE:FF就说明抓到了。3.2 用 aireplay-ng 发送去认证帧催出握手如果目标 AP 下没有客户端或者客户端一直不重连就抓不到握手。这时用aireplay-ng发一个去认证帧强制客户端掉线重连重连过程就会产生新的四次握手。# 对指定客户端发送去认证帧count 指定发送数量 sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon--deauth 5表示发送 5 个去认证帧。-a是 AP 的 BSSID-c是目标客户端的 MAC。客户端收到后会被踢下线自动重连时就会重新走四次握手此时 airodump-ng 那边就能抓到。如果不知道客户端 MAC可以省略-c对广播地址发送但效果不如指定客户端稳定。参数说明count 不要设太大5 到 10 足够太多反而可能被 AP 的防护机制记录。发送时 airodump-ng 必须还在同一个信道上抓包否则握手帧抓不全。抓到后 airodump-ng 界面右上角会出现握手提示这时就可以停止抓包进入校验阶段。3.3 用 aircrack-ng 对握手包跑字典校验拿到 .cap 文件后用aircrack-ng配合字典做离线校验。# 用字典对抓到的 cap 文件进行校验 aircrack-ng -w /path/to/wordlist.txt -b AA:BB:CC:DD:EE:FF wpa_test-01.cap-w指定字典路径-b指定目标 AP 的 BSSID最后跟 cap 文件。aircrack-ng 会读取握手包逐条尝试字典里的密码找到匹配就输出KEY FOUND! [ 密码 ]。实验阶段字典里放几行包含正确密码的内容几秒就能出结果。参数说明-w的字典必须是纯文本一行一个候选密码-b在只有一个 AP 的 cap 文件里可以省略但多 AP 场景必须指定。如果提示No valid WPA handshakes found说明 cap 里没有完整握手回到抓包阶段重新抓。校验速度取决于字典大小和 CPU实验用小字典即可真实场景字典动辄几十 GB那是另一个话题。3.4 校验结果怎么确认不是误报aircrack-ng 输出KEY FOUND!后最好再验证一次。最直接的办法是用找到的密码去连测试 AP能连上就说明结果正确。也可以在 aircrack-ng 里加-e指定 ESSID确保校验时用的 SSID 和抓包时一致——SSID 参与 PMK 计算SSID 错了结果必然不对。# 指定 ESSID 重新校验排除 SSID 不匹配导致的失败 aircrack-ng -w /path/to/wordlist.txt -e TestSSID -b AA:BB:CC:DD:EE:FF wpa_test-01.cap-e后面跟 AP 的 ESSID必须和抓包时广播的完全一致大小写敏感。如果第一次没指定-e也能出结果说明 cap 里记录的 SSID 是完整的如果失败加上-e再试。这一步在实验报告里也值得写清楚因为它体现了对握手校验原理的理解而不是只会敲命令。4. 避坑与排查aircrack-ng 实验里最常见的 5 个翻车点4.1 监听模式起不来iwconfig 里看不到 Monitor现象执行airmon-ng start wlan0后报错或者iwconfig里接口的 Mode 还是 Managed。原因网卡驱动不支持监听模式或者 NetworkManager、wpa_supplicant 占用了网卡导致模式切换失败。虚拟机场景还可能是 USB 网卡没挂载给虚拟机。解决先跑airmon-ng check kill结束干扰进程确认网卡芯片支持监听模式内置网卡大多不行换 USB 网卡虚拟机里检查 USB 设备是否已连接到虚拟机。如果airmon-ng仍失败可以手动用ip link set wlan0 down、iw wlan0 set monitor control、ip link set wlan0 up三步切换再看iwconfig确认。4.2 抓了半天没有握手右上角一直不提示现象airodump-ng 跑了几分钟界面右上角始终没有WPA handshake提示。原因目标 AP 下没有客户端或者客户端没有重连也可能信道锁错了或者去认证帧没发出去。解决先确认-c指定的信道和 AP 实际信道一致用aireplay-ng --deauth催一下客户端重连如果 AP 下确实没客户端可以先用自己手机连上测试 AP再发去认证帧。发送去认证帧时 airodump-ng 必须同时在抓否则握手帧抓不全。4.3 校验时提示 No valid WPA handshakes found现象aircrack-ng 读取 cap 文件后直接报没有有效握手。原因cap 文件里只有部分握手帧四次握手不完整或者抓包时信道跳来跳去漏掉了关键帧。解决回到抓包阶段锁定信道重新抓确保抓到完整的四次握手。可以用aircrack-ng wpa_test-01.cap不带字典先检查它会提示握手是否完整。如果 cap 文件里有多个 AP 的包用-b指定目标 BSSID。4.4 字典里有正确密码却跑不出来现象确认字典里包含测试 AP 的密码但 aircrack-ng 跑完没出结果。原因SSID 不匹配是最常见的原因PMK 计算依赖 SSIDSSID 错了整个校验就错了也可能是字典编码问题比如 UTF-8 BOM 导致第一行密码被污染。解决加-e指定正确的 ESSID 重新跑检查字典文件编码用file命令确认是纯 ASCII 或 UTF-8 无 BOM确认密码没有多余空格或换行。实验阶段建议字典第一行就放正确密码方便快速定位问题。4.5 实验做完网卡回不到正常模式现象实验结束后iwconfig里接口还是 Monitor 模式连不上正常 WiFi。原因忘记停止监听模式或者airmon-ng stop后接口名没恢复。解决执行airmon-ng stop wlan0mon停止监听如果接口名没变回来用ip link set wlan0 down、iw wlan0 set type managed、ip link set wlan0 up手动切回最后重启 NetworkManager 服务恢复网络管理。养成实验结束就切回管理模式的习惯能省掉很多「网卡坏了」的误判。5. 把实验做扎实从跑通命令到理解参数边界5.1 用更小的字典验证流程再逐步放大很多人一上来就下几十 GB 的字典结果跑了几小时没结果也不知道是流程错了还是字典不对。我的习惯是先用一个只有几行的字典验证整条链路第一行放正确密码后面随便放几个错误密码。如果这样都跑不出结果问题一定在抓包或参数上而不是字典。流程验证通过后再换更大的字典观察校验速度的变化这样能直观感受到字典规模和算力对离线校验的影响。# 构造最小验证字典 printf correct_password\n12345678\npassword\n mini.txt # 用最小字典验证流程 aircrack-ng -w mini.txt -e TestSSID -b AA:BB:CC:DD:EE:FF wpa_test-01.cap这个最小字典的价值在于把「流程问题」和「字典问题」分开。实验报告里也可以对比不同字典规模下的校验耗时用数据说明密码强度对安全性的影响比空谈理论有说服力。5.2 抓包时用 airodump-ng 的过滤参数减少噪声默认扫描会抓到周围所有 AP 的包cap 文件膨胀得很快校验时还要花时间筛选。锁定目标后用--bssid和-c把抓包范围压到最小cap 文件里基本只有目标 AP 的流量握手帧也更容易找。如果周围 AP 特别多还可以用--essid进一步过滤但实验阶段--bssid加-c已经够用。参数作用实验建议--bssid只抓指定 AP 的包必填锁定测试目标-c锁定信道必填避免跳信道漏帧--essid按 SSID 过滤可选多 AP 同信道时有用-w输出文件前缀建议带实验日期方便管理5.3 校验速度的边界在哪里aircrack-ng 的校验速度主要受 CPU 和字典规模影响。实验用的几行字典瞬间出结果但真实场景的字典动辄上千万条纯 CPU 跑起来非常慢。这也是为什么现在更多人用 hashcat 配合 GPU 做校验——把握手包转成 hashcat 能识别的格式用显卡并行计算速度能提升几个数量级。不过实验课的重点是理解流程aircrack-ng 足够把原理讲清楚hashcat 是后续进阶的方向。# 把 cap 转成 hashcat 格式进阶用法实验阶段了解即可 cap2hccapx wpa_test-01.cap wpa_test.hccapx # 用 hashcat 跑字典需要支持 OpenCL 的显卡 hashcat -m 2500 wpa_test.hccapx mini.txtcap2hccapx是 hashcat 套件里的转换工具把 cap 里的握手信息提取成 hccapx 格式。-m 2500是 WPA-EAPOL-PBKDF2 的模式编号。这一步在实验里不是必须的但知道有这条路能帮你在后续做更大规模校验时选对工具。5.4 我踩过的一个坑SSID 里有特殊字符有一次测试 AP 的 SSID 里带了空格和中文aircrack-ng 校验一直失败排查了半天才发现是-e参数传进去的 SSID 和实际广播的不一致。SSID 参与 PMK 计算任何一个字符不对结果就全错。后来我养成习惯抓包后先用aircrack-ng wpa_test-01.cap看一眼工具识别到的 SSID直接复制那个值而不是手敲。这个习惯帮我省了很多次无谓的排查。实验做到最后真正有价值的不是那条KEY FOUND!而是你能说清楚每一步在干什么、参数为什么这么设、失败时该看哪里。把最小字典验证、过滤参数、SSID 核对这几件事变成固定动作换任何测试 AP 都能快速跑通。希望帮到你。本文还有配套的精品资源点击获取