简介:完整记录西南科技大学无线网络安全技术课程实验四——使用aircrack-ng破解工具进行WPA破解的doc实验报告,面向无线网络安全入门者及高校相关专业学生。报告涵盖实验目的、环境配置、操作步骤、结果分析与讨论,详细展示开启无线网卡监听模式、扫描目标接入点、发起解除认证攻击抓取四次握手包、利用字典文件暴力破解无线密钥的全过程,并附有常用命令参数释义与典型问题排错思路。压缩包仅含一个Word文档,大小一点三七兆字节,内容与实验指导书高度对应,既可作为课堂实验报告模板,也可用于自学破解套件的基本用法。实验报告还讨论了破解原理和家用无线网络的安全加固建议,有助于理解弱密码风险与防护策略。该资源已有八百一十二人学习下载,适合需要完成类似无线安全实验或深入理解无线加密机制的学生和爱好者。
1. 从一门实验课说起:aircrack-ng 到底在验证什么
如果在搜索引擎里敲下“aircrack-ng”,大概率会看到一堆“一键破解”的字样。但在西南科技大学这样的无线网络安全实验里,这个工具链的意义完全不同:它不是为了让你蹭邻居的网络,而是用于验证 WPA/WPA2 加密体制在错误口令下的真实强度,理解握手包验证协议(EAPOL)的弱点在哪里。换句话说,它能证明的不是“WiFi 不安全”,而是“只要口令足够弱,任何加密协议都救不了你”。
本实验针对的是 WPA/WPA2-PSK 模式,也就是家庭和小型办公环境最常用的个人加密方案。密钥本质上是一个预共享口令(Pre-Shared Key),四步握手(4-Way Handshake)过程中会派生出一组临时密钥。aircrack-ng 要做的就是把握手包抓下来,离线暴力试口令。这四个工具命令——airodump-ng、aireplay-ng、airmon-ng、aircrack-ng——构成了完整的实验闭环。这篇文章会从实验环境讲起,一直到参数调整、慢速破解和常见翻车,全程按实验室场景写,适合网络工程、信息安全专业的学生照做,也适合刚接触无线渗透的新手跑通一次完整流程。
这里的“破解”仅限于你自己的实验环境、授权测试靶机或学院分配给课程的实验 AP,不合规的用途不在讨论范围内。课程实验的意义在于让你亲手验证协议的边界,而不是拿到某个包就随便跑。
2. 实验环境准备:网卡选型、虚拟机与 Kali Linux
2.1 无线网卡为什么是第一个坎:不是所有网卡都能进监听模式
实验里最常见的第一步翻车,不是命令敲错,而是一张不支持监听模式的无线网卡。Windows 主机的内置网卡几乎都封死了监听模式和帧注入功能,连抓个 beacon 都勉强。所以实验指导一般都会推荐外接 USB 无线网卡,常见的是基于 Atheros AR9271、Ralink RT3070、Realtek RTL8812AU 芯片的型号。这类网卡在 Linux 下有现成的驱动,插上就能被 aircrack-ng 识别。
虚拟机场景下还有个细节:VMware 或 VirtualBox 的 USB 直通。如果你用 Kali Linux 虚拟机做实验,需要把无线网卡从主机“断开”,再连接到虚拟机。VMware Workstation 里是“可移动设备”菜单,VirtualBox 是“设备 → USB → 选择对应网卡”。连上之后,在虚拟机里执行lsusb能看到芯片型号,iwconfig里如果出现 wlan0 就说明网卡已经被当作无线接口识别了。
我一般会先用airmon-ng检查驱动兼容性。这条命令会列出当前系统里所有无线接口,并提示哪些进程可能会干扰监听模式。如果输出里直接报“No wireless interfaces detected”,多半是 USB 直通没生效,或者驱动确实缺失。
sudo airmon-ng # 输出示例: # PHY Interface Driver Chipset # phy0 wlan0 ath9k_htc Qualcomm Atheros Communications AR9271逻辑说明:airmon-ng不带参数运行,只做侦察,不改变任何配置。重点看两个字段,Interface 和 Driver。如果第 3 列显示ath9k_htc、rt2800usb这类驱动名,基本就没问题。如果显示rtl8xxxu或brcmfmac,可能还需要额外加载驱动或重新编译。[具体到实验课,推荐直接用 Kali 官方镜像——它的内核里已经合入了绝大多数 USB 网卡驱动的补丁。]
2.2 把网卡切到监听模式:airmon-ng 的三种状态和三处警惕
监听模式(Monitor Mode)是 WiFi 抓包的前提。普通管理模式只能接收发给本机的单播帧,而监听模式会绕过过滤机制,把空中所有的 802.11 帧都收上来,包括其他客户端发给 AP 的报文。抓 WPA 握手包,本质就是在监听模式下截获“客户端第一次成功连接 AP”时那 4 个 EAPOL 帧。
切换监听模式的命令是:
sudo airmon-ng check kill sudo airmon-ng start wlan0第一行check kill会杀掉干扰进程,比如 NetworkManager、dhclient、wpa_supplicant——这些服务会周期性地扫描信道,或者在网卡上做非监听的操作,导致抓包丢失。实验课上这一步杀了 NetworkManager,意味着这台机器在实验期间不再自动联网,这是正常现象。
执行完start wlan0后,接口名一般会变成wlan0mon。iwconfig确认一下 Mode 是否为 Monitor。三处容易踩坑的细节:
check kill之后 SSH 可能断掉,如果远程操作实验机,请用 console 或确保串口可用。很多同学第一次远程操作时被这一步踢掉线。- 如果之前用 NetworkManager 连接过学校某无线网,kill 后不会有任何提示,但 AP 侧会保留旧的关联状态,导致抓包阶段出现异常的 deauth 行为。
airmon-ng start后的接口名不一定是wlan0mon,也可能是phy0mon或wireless0mon,后面所有命令统一用新名字。
如果切完之后iwconfig显示 Mode:managed,说明切换失败。常见原因是驱动不支持,或者网卡被 NetworkManager 占据未释放。可以手动执行sudo ip link set wlan0 down,再重跑一次start。
2.3 靶场怎么摆:用 Android 手机开热点当实验对象
课程实验不允许拿校园网的正式 AP 做破解对象——学校无线网的合法用户不只是你一个人,deauth 攻击会把所有在线学生踢下线,影响面太大。最可靠的办法是自建靶场。
我给学生推荐的做法是:拿一台旧的 Android 手机(版本不限,但不要用 iPhone,iOS 不开放热点信道设置),在设置里打开“个人热点”,把热点名设为实验专用 SSID,口令设成一个弱口令,比如12345678这种 8 位纯数字。关闭 WPS,如果强制使用 WPA2-PSK,不要用 WPA3,因为本实验要验证 WPA 四步握手,WPA3 用了 SAE 认证,aircrack-ng 的字典攻击模型不适用。
靶机到位之后,先要确定 AP 所处信道。因为在监听模式下,网卡同一时间只能在一个信道上抓包。airodump-ng 的扫描模式会快速跳遍所有信道,帮我们定位目标。
3. 抓包与握手包获取:从信道扫描到 EAPOL 捕获
3.1 airodump-ng 信道定位:看懂 BSSID、CH 与 ENC 三列
抓包的第一步是扫描目标。执行 scan 模式的命令:
sudo airodump-ng wlan0mon这条命令会开始全信道跳频扫描。屏幕上会滚动输出附近的 AP 列表,左侧是 AP 信息,右侧是终端(客户端)信息。对实验最关键的 4 列是 BSSID(AP 的 MAC 地址)、CH(信道)、ENC(加密方式)和 PWR(信号强度)。我们要找的是加密方式为 WPA2(有时显示为 WPA 或 CCMP)的目标热点。
锁定目标后,按 Ctrl+C 停止全信道扫描,然后针对该 AP 和信道做定向捕获:
sudo airodump-ng wlan0mon --bssid 84:AD:3C:11:22:33 --channel 6 --write lab_capture参数说明:--bssid是目标 AP 的 MAC,--channel是目标所在信道,--write指定一个文件名前缀,抓到的数据包会存成lab_capture-01.cap。建议文件名前缀用英文小写,因为后续aircrack-ng默认只识别.cap、.hccapx、.pcap这类结尾,中文路径在部分版本的 tshark 下会报错。
如果屏幕右侧没有出现任何客户端 STATION,左上角也没有看见EAPOL字样,说明这只是 AP 的 beacon 被截获了,实际的四步握手帧还没出现。这种情况下,即使等了十分钟,写出来的 .cap 文件里也没有可用的握手包,aircrack-ng 会提示“no valid WPA handshake found”。所以下一步,往往要用 aireplay-ng 主动“催”一个握手出来。
3.2 aireplay-ng 的 deauth 攻击:为什么要把合法客户端踢下线
四步握手发生在客户端重新关联 AP 时。如果现场已经有一个手机连着这个热点,最直接的办法是给该客户端发送 deauthentication(反认证)帧,让它断开,它就会自动重新关联 AP,握手过程随即发生。这就是 aireplay-ng 的用途。
sudo aireplay-ng --deauth 3 -a 84:AD:3C:11:22:33 -c 64:BC:0C:44:55:66 wlan0mon参数说明:--deauth后面的数字是发送的反认证帧数量,3 就够触发一次重连。-a指定 AP 的 BSSID,-c指定要踢的客户端 MAC。如果省略-c,则是广播 deauth,把该 AP 下所有客户端全部踢掉。实验场景建议指定客户端,减小干扰面。
在执行此命令的同时,右侧定向 airodump-ng 的窗口应该保持在运行状态。当屏幕右上方出现WPA handshake: 84:AD:3C:11:22:33时,说明 4 个 EAPOL 帧已完整捕获。
抓包操作也可以反过来做:如果当前没有合法客户端在线,就用一台测试机主动连接该 AP,在连接瞬间左手触发握手。但那样需要算好时机,往往不如直接 deauth 正在连接状态的设备来得迅速。实验中最常见的错误是 deauth 发得太猛、持续太久,导致客户端反复重连,而 airodump-ng 又把多条重连过程混着写,最终 .cap 文件体积膨胀其实无碍,但你要的握手信息可能被扫描过的周边 AP 数据淹没。所以 deauth 发 2-5 次就够了,不要长按回车连发几十条。
另一个细节是 airodump-ng 的--write文件会持续写入,直到你按 Ctrl+C。建议确认左上角出现 handshake 后,多等十几秒再结束,确保 EAPOL 的后两帧也完整落在 .cap 里。有些实验为了赶进度只抓到前两帧就结束,aircrack-ng 会返回无法解析,简直是白费功夫。
3.3 用抓包结果自检:tshark 验证握手的三个字段
写好的 .cap 文件本身是个 pcap 格式的文件。直接拿给 aircrack-ng 去跑可能晚点才知道成果,不过我们可以先做一步自检。有 Wireshark 环境可以直接打开文件,过滤eapol或wlan.fc.type_subtype == 0x0008,数一下是否存在完整的 4 个帧。终端命令则是:
tshark -r lab_capture-01.cap -Y "eapol" | wc -l如果输出是 0,说明捕获文件里根本没有 EAPOL 帧,跑 aircrack-ng 也会秒退。这种情况下,重新检查监听模式名称是否统一、deauth 是否对准了正确的客户端 MAC、目标 AP 是否真的在使用 WPA2-PSK 而不是 WPA3。
如果输出结果大于等于 4,也不要高兴太早。还需确认这 4 帧是否同属一次握手——最简单的办法是看tshark -r lab_capture-01.cap -Y "eapol"输出的源目 MAC 和时间戳是否在 10 秒内。否则可能是两次不完整的握手被混在同一个文件里,aircrack-ng 会提示“least one valid handshake”,但破解过程的完整性会打折。
4. WPA 字典攻击:aircrack-ng 的核心参数与慢速现实
4.1 aircrack-ng 破解命令:三参数跑通的完整格式
至此,大概 95% 的实验已经完成,剩下的就是让 CPU 去跑字典,也就是离线口令猜测。aircrack-ng 的基本调用格式非常简单:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 84:AD:3C:11:22:33 lab_capture-01.cap参数说明:-w指定字典文件的路径,-b指定目标 AP 的 BSSID。如果 .cap 文件里有多余的 AP 信息,指定-b可以避免出来一堆无关的提示。如果抓到了多个 AP 的握手包,aircrack-ng 会交互式地让你选择破解哪个,一般直接按 Ctrl+C 停止,补上-b参数重跑。
如果字典里正好包含目标口令,aircrack-ng 会在几秒到几十秒内输出“KEY FOUND!”,把口令打在屏幕上。整个过程其实是计算每个字典候选值对应的 PMK(Pairwise Master Key),再和握手包里抓到的信息做比对。这里有个知识点要理解:**aircrack-ng 破解时并不需要连接 AP,甚至不需要再监听网络,离线状态下就完成了全部计算。**因此实验里断网也不会影响结果验证。
如果跑完整个字典都没有匹配,aircrack-ng 会显示“Failed to find key”。这属于正常的负面验证结果,说明你用这个字典没有覆盖目标口令空间。此时可以换大字典、用规则做变种,或者接受结果是“未找到”并记录在实验报告里。
有些学生的实验目的是体验一把成功的快感,所以实验口令一般会选纯数字或常见弱口令。课程通常也会建议学生自设口令时用12345678、88888888这类,但它们也属于反向测试——毕竟要是密码换成 20 位随机字母,空气里跑一天也不会出来。
4.2 字典选择:rockyou 的坑与 kali 自带路径
Kali 默认自带/usr/share/wordlists/rockyou.txt,但它是个压缩包,需要先解压。第一次运行时如果命令直接报“No such file or directory”,大概率是运行了gunzip之前的状态。执行:
sudo gunzip /usr/share/wordlists/rockyou.txt.gzrockyou 里有 1400 多万条口令,包含大量常见弱密码。实验很快就跑完,但如果你要验证随机密码抗性,rockyou 的结果就是“未找到”,这时可以尝试用crunch生成一个小规模纯数字字典,比如:
crunch 8 8 0123456789 -o /tmp/pin8.txt这会生成所有 8 位纯数字的组合,一共 1 亿个候选。生成文件大约 400 多 MB。用它做穷举测试让时间暴涨不少,适合用来理解“口令长度增加对破解时间的非线性影响”——8 位纯数字已经是亿级,8 位小写字母则是 2000 多亿级。
4.3 速度评估:CPU 单核跑 aircrack-ng 能有多快
aircrack-ng 的历史版本大多只利用单核 CPU 做 WPA 计算,如果实验机器的 CPU 是笔记本低压型号,破解速度可能在每秒数百到两千次之间波动。跑完整个 8 位数字字典需要以小时计,这一点必须在实验前有预期。
如果学的比较快,也可以直接用aircrack-ng的-d参数指定设备:
aircrack-ng -d /dev/null -w /tmp/pin8.txt -b 84:AD:3C:11:22:33 lab_capture-01.cap按 aircrack-ng 的现有实现,未必有多线程优势,所以想提速更务实的路线是:一是把 CPU 频率锁在最高档(cpupower frequency-set -g performance);二是用 hashcat + GPU 处理.hc22000格式;三是用专用工具wpaclean把 .cap 文件缩小到只保留关键帧,减少 I/O。
但无论多快,只要目标口令不在字典里或者不是暴力可穷举的短口令,整个方案就会卡死。课程实验到这里也算完成——“未破解”本身也是一组可用的实验数据,说明该口令空间足够抵抗当前字典。
4.4 为什么 WPA2 的“破解”不是漏洞而是口令学
这是我每次实验课前都会强调的一个概念。aircrack-ng 不是在破解 WPA2 加密算法本身,而是破解“人选择的 PSK 口令”。四步握手的数学过程是公开的、安全的,唯一可能被离线攻击的弱点就是:握手包里包含了足够的信息,让攻击者可以本地验证每一个口令候选值是否正确。这种破解模式和暴力破解网站的登录接口完全不同——前者发生在本地,不需要与目标有任何交互,因而也无法被锁定。
这也解释了为什么实验口令设为 8 位纯数字就能跑通而设为 16 位随机串就基本无解。加密协议不会因为口令的长度改变加解密过程,但离线猜测的复杂度呈指数增长。实验过程中如果尝试用 Sniffer 抓已连接的流量,你会发现即便破解出 PSK,也没法用 aircrack-ng 直接解密当时的抓包文件——因为数据流的加密还依赖每个会话动态生成的 PTK,历史流量在不存在其他注入的条件下无法回放解密。所以不要把 WPA 破解神化为“读取别人上网内容”,它的真实威胁集中在口令失守后的登录冒充。
5. 避坑指南与常见问题排查:从抓包失败到无法破解
5.1 现象:airodump-ng 抓不到任何 AP
**原因:**监听模式未真正生效,或网卡被 NetworkManager 抢占。
**解决:**先执行iwconfig查看第二行 Mode 是否为 Monitor,以及接口名是不是还叫wlan0。如果是 managed,退回airmon-ng stop wlan0mon,再重新执行 start。之后确认虚拟机“可移动设备”中的网卡勾选仍然在虚拟机一侧。在 VMware 里,如果主机重新插拔了网卡,直通常常会断开且不会自动重连。
5.2 现象:定向 airodump 左上角迟迟不出现 WPA handshake
**原因:**目标客户端没有再关联 AP;或者客户端本来就不在这个 BSSID 下;或者你抓到了握手但 airodump-ng 版本太老显示不够快。
**解决:**先确认aireplay-ng执行后该客户端确实掉线了——如果你手里能访问那台测试机,看它的 WiFi 连接是否断开。如果没有掉线,说明反认证帧没有到达对方,也许是距离太远。靠近一些,或者换 5G/2.4G 同信道的热点重新测试。客户端重新连接后 1 秒内即会发送握手,注意观察 airodump-ng 右侧窗格的 EAPOL 计数闪烁。
5.3 现象:aircrack-ng 提示 “no valid WPA handshake found”
原因:.cap 文件里没有符合条件的 EAPOL 四步握手帧。
**解决:**回到第 3.3 节用tshark检查。如果确实没有,检查你是否误用--bssid指定了错误 MAC,比如把客户端 MAC 当成 AP 填进去了。还有一种情况:你用手机开热点时,部分 Android 版本在信道切换与射频节能策略下,不与某些网卡的定向 deauth 交互。建议在 airodump-ng 启动后,直接到手机热点设置里关开一次 WiFi,让它主动重连,往往比 deauth 更靠谱。
5.4 现象:跑了很久,进度条一直不动
**原因:**路径写的是目录,而不是具体字典文件;或字典文件太大读取速度受限;或 aircrack-ng 在等待键盘输入。
解决:-w参数必须指向文件,比如-w /usr/share/wordlists/rockyou.txt,而不是-w /usr/share/wordlists/。如果用的是磁盘上的大字典,先用wc -l看行数,再改用管道流式读取。aircrack-ng 跑了 30 秒后屏幕上若出现类似Press any key to stop提示,其实它还在跑,不用管。
5.5 现象:抓到了握手包,但破解出来口令不合理
原因:-e(ESSID)参数指定错误或未指定。个别 AP 在四步握手里用到 ESSID 作为 salt 参与 PBKDF2 计算——也就是 PMK 派生时 ESSID 是输入项之一。如果你曾用--essid指定了错误的热点名,aircrack-ng 实际计算的 PMK 完全对不上。
**解决:**只依赖-b的 BSSID 其实就够,但成习惯后我会在调用时把-e一并带上,尤其同时在多个同名热点时。如果已经报出失败,建议重新抓包,而不是反复猜。
以上五条,足够覆盖一整个 50 人的实验班至少 80% 的操作问题。真正剩下的 20% 基本集中在网卡芯片冷门驱动上,需要换一张卡解决,系统层面的折腾不值得。
6. 最后一步:对比实验与 GPU 加速——把这次结果写进实验报告
跑通一次破解流程之后,如果你只想照着课程验收标准把报告交上去,其实已经达标。但这条线的功夫可以更进一步——用对比实验把原理看清。
我建议做完以下三组对比再写报告。一是把热点口令改为 12 位随机大写小写数字混合,保留同一字典测试一次,记录用时和结果;二是把热点口令改成与字典里某条完全一致但加了个数字 1,再用加了规则的方法做一次;三是抓同一个 AP 在相同口令下,分别用默认字典和crunch 8 8跑一次并记录速率。这三组数据能帮你直观看出口令空间、规则变换与计算速度各自的权重。
如果想要进阶技巧,把普通的 .cap 文件转成 hashcat 支持的格式,用 GPU 提速是可行的:
hcxpcapngtool lab_capture-01.cap -o lab_hash.hc22000 hashcat -m 22000 lab_hash.hc22000 /usr/share/wordlists/rockyou.txt逻辑说明:hcxpcapngtool是新一代的转换工具,可以从 .cap 中抽取 PMKID 和 EAPOL 握手信息并输出hashcat格式文件,-m 22000对应 WPA-EAPOL-PBKDF2 破解模式。在无 GPU 的实验机上跑这个没有意义,但如果你的笔记本有 NVIDIA 独显,速度通常是 CPU 的几十到上百倍。注意hashcat和aircrack-ng的破解思路完全一致,只是执行矩阵不同,所以报告里不需要把两者割裂成两套方案。
最后还要提一个安全习惯:实验结束后,立刻删除你的lab_capture-01.cap和字典缓存文件,因为这些文件里携带着可被离线攻击的握手数据,万一被不相关的人拷走,靶场口令就可能被反推出来。退出监听模式用airmon-ng stop wlan0mon,NetworkManager 会自动恢复对网卡的管理,你的虚拟机也能重新连回校园网。
至于实验报告之外的延伸方向,你可以再尝试用手里的监听网卡去探测周围环境中开启了 WPS 的 AP,或观察同一环境下 2.4G 信道的拥塞对抓包时延的影响,这些都和 WPA 破解无关但同属无线安全。课程的验收只看你能不能讲清楚握手过程,而实验的下半场其实在于你是否理解了自己在这条命令链路的每一步都做了什么——而不是单纯记住了四条命令。希望这篇文章能帮你在下一门实验课前把该踩的坑提前踩掉。
本文还有配套的精品资源,点击获取