
简介电子科技大学网络安全协议实验报告以WPA-PSK口令破解为核心面向网络安全专业学生、无线安全测试人员及对WLAN安全感兴趣的读者适合作为无线安全课程设计、实验报告编写或实验复现参考。资源为单个docx文档压缩包大小约176KB内容完整保留实验过程和结果。报告系统记录三个主要环节配置无线攻击环境、抓取WLAN握手包、编写程序破解口令并基于真实抓包数据分析beacon帧、Probe response以及四次握手各消息。文中重点推导PMK生成、PTK导出和MIC校验的实现逻辑讲解PBKDF2与PRF算法在破解中的应用同时给出破解核心代码思路和运行结果并通过验证函数确认正确性。目前该资源已有1475人学习下载对于理解WLAN工作原理、RSN密钥层次及4次握手机制具有较高参考价值。1. WPA-PSK口令实验一次抓包、一次握手、一本报告WPA-PSK口令实验是大部分网络攻防课程里离“实战”最近的一步。它不依赖复杂的漏洞利用链不需要搭建C2只需要一张能监听无线信号的网卡、一台装好Kali的机器再加上一个你自己可以完全掌控的AP无线接入点。做完这个实验你对“口令安全”会有一个直观认识一个看起来足够复杂的Wi-Fi密码在上千条候选词的字典攻击面前可能撑不过几分钟。这篇内容主要面向两类人一类是正在完成网络安全协议课程实验、需要交付WPA-PSK口令实验报告的学生另一类是想用最小成本验证无线口令风险的工程师。我会按“原理先立住、命令可以抄、坑提前填”的顺序把从抓包到口令还原的完整链路写清楚。实验前先说一句整个流程必须在授权环境下进行目标AP是你自己的设备只对自己的网络做口令评估。2. 先搞懂WPA-PSK的加密机制口令不是被“直接破”的是被“撞”出来的2.1 PSK、PMK、PTK三层密钥的层级关系WPA-PSKPre-Shared Key模式下安全的重心几乎全落在一个“共享口令”上。AP和无线路由器里配置同一个口令终端输入同一个口令联网双方就靠这个口令派生出一整套用于加密单播帧、广播帧的密钥。这个派生过程是WPA-PSK破解的数学基础理解它你才能明白为什么破解工具要拿着字典反复试。具体来说口令Passphrase先经过PBKDF2-SHA1算法以SSID无线网络名称作为盐循环4096次生成一个256位的PMKPairwise Master Key。这里的关键点是SSID参与了密钥派生。同一个口令放在不同SSID的路由器上生成的PMK完全不同。这带来一个直接影响暴力破解时字典里的每个候选口令都必须针对当前目标的SSID重新计算一次PMK不存在“预先算好一套通吃所有AP”的做法。这也是为什么很多破解工具第一次运行时会卡在“计算PMK”阶段那不是卡死是在批量算哈希。PMK本身不直接参与数据帧加密。AP和客户端在四次握手中基于PMK、双方的MAC地址、以及两个随机数ANonce和SNonce用PRF函数派生出PTKPairwise Transient Key。PTK再被拆分成三部分分别负责不同的加密任务。整个过程可以简化成下面这张表密钥全称长度生成输入作用PSKPre-Shared Key口令本身用户配置WPA-PSK模式的人为输入PMKPairwise Master Key256 bitPSK SSID 4096轮PBKDF2四次握手的种子PTKPairwise Transient Key384/512 bitPMK MAC地址 Nonce实际会话密钥KCKKey Confirmation Key128 bit来自PTK生成和校验MICKEKKey Encryption Key128 bit来自PTK加密GTK组密钥分发TKTemporal Key128 bit来自PTK数据帧的AES/CCMP加密在实际实验报告里不需要把表格写这么全但PMK和PTK的关系一定要画清楚。很多初学者会把“破解WPA-PSK口令”理解成“解密抓到的数据包”方向就错了。WPA-PSK攻击的核心是离线验证某个候选口令是否等于目标口令而不是还原已经加密的流量内容。2.2 四次握手攻击的真实入口WPA-PSK的攻击不直接针对数据帧而是针对四次握手。当客户端连接AP时双方通过EAPOL帧完成四次消息交换这个过程在802.11标准里有固定顺序消息1AP发送ANonce给客户端这是一个随机数。消息2客户端回复SNonce和一个MIC校验值。消息3AP确认收到并分发GTK组临时密钥。消息4客户端确认握手完成。攻击者要做的事是被动抓到消息1和消息2从中截获ANonce、SNonce和MIC。由于PMK未知攻击者没法直接验证MIC对应的口令对错但可以做离线枚举从字典取一个候选口令按PBKDF2算出PMK再结合抓到的Nonce和双方MAC算出PTK最后验证MIC是否匹配。匹配了口令就找到了。这是一个典型的离线暴力破解场景在线交互只需要抓到一次握手之后的枚举完全在本地完成不触碰网络、不产生额外无线流量。理解握手过程后会得到一个重要结论破解WPA-PSK只需要抓一个成功的四次握手不需要长时间监听。哪怕你在目标附近只待了几分钟只要抓到一个握手包剩下的工作可以在任何地方完成。我见过有人拿着笔记本在楼道里待一整晚以为要抓足够的“样本”其实完全没必要。2.3 为什么实验选WPA-PSK而不是WEP多数课程里的无线安全实验会先做WEP再做WPA-PSK。WEP破解靠的是IV初始化向量重用用统计方法在几分钟内恢复密钥不需要字典不需要算力本质是协议设计缺陷导致的致命漏洞。WPA-PSK则不同协议本身没有类似WEP那样的数学蜜饯漏洞弱点在于口令——弱口令、短口令、字典内可枚举的口令。两者的破解思路完全不同WEP抓大量数据包跑PTW攻击还原密钥结果与口令复杂度无关。WPA-PSK抓一次四次握手跑字典/掩码攻击结果与口令强度强相关。课程大纲里“wep口令破解实验”往往紧挨着“WPA-PSK口令实验”出现这个安排本身就很有教学意图先让学生看到协议缺陷导致的全灭再让学生看到即使协议设计没问题人的口令习惯依然可能成为突破口。写实验报告时如果能把这个对比写清楚而不是只贴命令输出报告质量会上一个台阶。3. 搭建实验环境网卡、系统与最小实验拓扑3.1 网卡选型监听模式是硬门槛WPA-PSK实验的第一道坎不是软件是网卡。普通笔记本内置无线网卡往往不支持监听模式或者驱动不开放raw frame注入能力。常见做法是准备一张USB无线网卡芯片优先选Atheros AR9271、Ralink RT3070、Realtek RTL8812AU。这三类芯片在Kali下的兼容性最成熟airmon-ng基本能直接拉起。选网卡有一个典型的坑TP-Link WN722N存在v1和v2两个硬件版本。v1用的是Atheros AR9271是完美的实验卡v2换成了Realtek芯片兼容性差很多。二手市场大量便宜的“WN722N”其实是v2买之前要先确认版本。这里给出一张推荐表芯片型号代表网卡监听注入备注Atheros AR9271TP-Link WN722N v1支持便宜够用2.4GHzRalink RT3070各种杂牌3070网卡支持兼容性好发热大Realtek RTL8812AUALFA AWUS036ACH支持支持5GHz做双频实验首选Intel AX201笔记本内置不支持别折腾直接放弃拿到网卡后接入Kali并确认驱动状态lsusb iw list | grep -A 5 Supported interface modes第一条命令看系统是否枚举到USB设备。第二条命令过滤“Supported interface modes”段落如果输出里有monitor模式说明驱动层面支持监听。这个确认步骤不能省否则后面airmon-ng报错时你会分不清是驱动问题还是操作问题。3.2 工具链aircrack-ng套件加hashcat实验的主要工具是aircrack-ng套件包含airmon-ng、airodump-ng、aireplay-ng、aircrack-ng四个核心组件。它们的分工如下airmon-ng把网卡切换到监听模式。airodump-ng扫描无线网络并抓包。aireplay-ng发送deauth认证解除帧逼客户端重连以获取握手包。aircrack-ng用字典离线跑口令验证握手包中的MIC。除了这套基础工具还需安装hcxtools和hashcat。hcxtools负责把cap包转成现代哈希格式hashcat负责用GPU加速口令枚举。sudo apt update sudo apt install aircrack-ng hcxtools crunch hashcat -y逻辑说明这里一次性装了五个组件。hcxtools提供hcxpcapngtool命令crunch用于生成自定义字典hashcat是GPU破解主力。装完后可以用airmon-ng --help验证安装是否成功。插一句网上很多教程强调装“完整版Kali”其实做这个实验只需要上述工具不用为了一个实验把系统装成全家桶。3.3 最小实验拓扑一个AP、一个客户端、一个攻击机实验拓扑按最小化原则搭建。一台家用无线路由器作为目标AP把SSID设置成类似lab_wifi的名字信道固定为6或36关闭WPS功能——WPS PIN攻击是另一条攻击链混进来会干扰实验结论。一台开机自动重连Wi-Fi的旧手机或笔记本作为合法客户端接入。攻击机是一台装有Kali的电脑外接USB无线网卡。硬件连接上有一个值得养成的习惯攻击机与目标AP之间保持1到3米距离中间不要隔墙。WPA-PSK抓握手包对信号质量的要求不算高但deauth的效果和重连速度会受信号强度影响。客户端推荐用手机因为手机在deauth后会自动重连Wi-Fi重连动作通常比电脑快抓包成功率更高。路由器后台里把密码设成一个已知的弱口令比如8位纯数字方便实验快速跑出结果。如果你后续想验证强口令的破解耗时再考虑把口令设复杂。实验完成后记得在路由器后台恢复正式配置。这个提醒不是多余的——我见过有人把自己宿舍的Wi-Fi密码改成实验弱口令后忘了改回去整层楼都连上了他的路由器。4. 从头跑通WPA-PSK口令破解四步流程与关键参数4.1 进入监听模式并扫描目标第一步是把USB网卡从普通管理模式切换成监听模式。在Kali终端里执行sudo airmon-ng check kill sudo airmon-ng start wlan0逻辑说明check kill会停掉NetworkManager、wpa_supplicant等可能占用无线网卡的进程防止它们在切模式时抢网卡控制权。start wlan0把接口切到监听模式成功后系统会多出一个wlan0mon接口。注意check kill会把你的无线网卡断开执行后网卡不再自动连Wi-Fi这是预期现象。切完模式后用airodump-ng扫描周围的无线网络sudo airodump-ng wlan0mon参数说明airodump-ng默认在2.4GHz频段轮询所有信道。看输出时重点看几列BSSID是AP的MAC地址CH是信道ENC是加密协议OPN表示开放网络WPA2表示WPA2-PSKCIPHER是加密套件CCMP为主流AUTH表示认证方式PSK代表预共享密钥。要抓的就是AUTH为PSK的目标网络。扫描输出里还会混着大量邻居的Wi-Fi信号不用管它们记住自己目标AP的BSSID和信道即可。4.2 抓取四次握手deauth工具的参数细节抓握手包要先锁定目标AP和信道否则网卡在信道间跳来跳去会漏掉关键帧。开一个新的终端窗口sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon参数说明-c 6固定监听6信道防止网卡自动跳频--bssid后面跟目标AP的MAC地址确保只处理这个网络的数据-w指定抓包文件前缀输出会生成capture.cap和capture.csv两个文件。这个窗口不要关闭保持运行。另一个终端准备发送deauth帧。deauth是管理帧作用是强制断开客户端与AP的连接。客户端被踢下线后会自动重连重连过程就会产生新的四次握手sudo aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon逻辑说明-0代表deauth模式5是发送帧数-a是AP的MAC地址-c是客户端的MAC地址。发送完成后切回airodump-ng的终端观察右上角的WPA handshake计数。如果从0变为数字说明握手包抓到了如果是4/4说明整组四次握手都在包里。如果目标客户端不好找或者deauth没触发重连可以考虑发不带-c参数的广播deauth踢掉所有客户端。但这招在实验室环境没问题在真实网络里属于破坏性操作实验报告里要写清楚自己用的是哪种方式。4.3 字典攻击aircrack-ng与hashcat两条路线抓包完成后先用最直接的aircrack-ng跑字典。Kali自带的rockyou.txt是经典选择压缩包位于/usr/share/wordlists/rockyou.txt.gz先解压sudo gunzip /usr/share/wordlists/rockyou.txt.gz sudo aircrack-ng -w /usr/share/wordlists/rockyou.txt capture.cap逻辑说明aircrack-ng遍历字典里的每个口令用PBKDF2计算PMK再结合握手包里的Nonce和MAC计算PTK最后比对MIC。如果命中屏幕会显示KEY FOUND并输出口令。参数说明-w指定字典路径cap文件名需要和4.2里设置的前缀一致。rockyou.txt有约1400万条口令在家里普通电脑上用CPU跑大概需要几十分钟到几个小时取决于CPU单核性能。想要速度快用hashcat走GPU路线。先把cap包转换成hashcat识别的格式hcxpcapngtool -o hash.hc22000 capture.cap hashcat -m 22000 hash.hc22000 /usr/share/wordlists/rockyou.txt参数说明-m 22000是WPA-PSK的哈希类型标识。早期版本用2500对应hccapx格式现在的hashcat统一用22000处理hc22000文件。跑起来后观察Recovered字段显示Cracked并打印出口令就是成功。hashcat会自动调用GPU同一张字典在RTX 3060上的速度比CPU快几十倍实验感受会非常直观。4.4 从握手包到口令结果验证与报告数据记录无论用哪条路线跑出口令都要做一次验证。验证方法二选一一是直接用hashcat的--show参数重新打印已破解结果二是用这个口令手动连接一次目标AP能连上就说明口令正确。手动连接验证最可靠也不存在任何误报可能。实验报告需要记录的数据项比较多建议提前定好表格模板一边做一边填数据项示例目标SSIDlab_wifi目标BSSIDAA:BB:CC:DD:EE:FF信道/频段6 / 2.4GHz客户端MAC11:22:33:44:55:66握手包信息抓到4/4完整握手字典来源Kali自带rockyou.txt约1400万条破解耗时3分42秒GTX 3060命中口令wifi123456这张表里的每一项都要真实记录不用为了好看去改数字。报告评阅者最看重的是数据是否闭环环境是什么、抓到什么、跑了多久、结果如何一条链不能断。5. WPA-PSK实验避坑指南5个高频问题与排查路径5.1 虚拟机里网卡不识别或者监听模式起不来现象虚拟机里插了USB无线网卡lsusb能看到设备但airmon-ng start wlan0后提示Operation not permitted或者根本没有wlan0接口。原因USB网卡没有被正确透传到虚拟机或被VMware的USB接管逻辑干扰。无线网卡的监听模式和raw frame注入需要直接操作硬件虚拟化层一介入就容易断。解决在虚拟机设置里把USB无线网卡设置为“连接”确保它从宿主机断开、被虚拟机独占。如果还不行不要再折腾配置了直接改用物理机安装Kali。虚拟无线网卡是这个实验里最大的“玄学”来源绕开它是最快的解法。5.2 airodump-ng扫不到目标AP现象扫描列表里全是邻居家的Wi-Fi自己的实验AP不在列表里。原因实验AP开了5GHz频道而网卡默认扫2.4GHz。很多新一代路由器默认开启双频合一手机连的是5GHzairodump却只盯着2.4GHz频道。另一种可能是AP开了隐藏SSID。解决先确认路由器后台里的信道设置然后给airodump-ng加信道参数比如-c 36扫5GHz。如果AP隐藏了SSID加--bssid加MAC地址过滤来定位。记住隐藏SSID只是不广播网络名称BSSID依然在空中扫描工具直接按MAC收就行。5.3 WPA handshake显示不全aircrack-ng却说没抓到现象airodump-ng界面显示WPA handshake: 1/4但跑aircrack-ng时报No valid WPA handshake found。原因抓到的握手帧不完整。常见情况是只抓到消息1AP发ANonce没抓到客户端回的消息2MIC也无从比对。另一个常见原因是airodump-ng显示的是1/4但实际cap文件里握手包保存不完整文件在写入前就被中断。解决保持客户端在线多发几轮deauth。注意次数不要太多推荐每次3到5帧发完等几秒再发下一轮。deauth踢掉客户端后重连需要时间一次连发几次就停容易错过重连产生的握手。还有一个经验抓包时让airodump-ng多跑一会儿不要抓到1/4就急着关窗口。5.4 hashcat转换失败或者跑起来速度异常现象hcxpcapngtool转换生成的hc22000文件在hashcat里报错或者hashcat显示Status: Exhausted却没有一个口令被Recovered。原因hcxtools版本过旧生成的格式与新版hashcat不兼容或cap包里混入了目标AP之外的大量无关流量。hashcat虽然能加载文件但真正有效的握手包没被识别。解决先更新工具版本sudo apt upgrade hcxtools。再用hcxpcapngtool时加--filter参数只保留目标BSSID的握手流量hcxpcapngtool --filter AA:BB:CC:DD:EE:FF -o hash.hc22000 capture.cap参数说明--filter后面跟目标AP的MAC转换器只处理与该AP相关的握手帧排除邻居网络的干扰。转换完后先跑hashcat的哈希检测模式验证格式再用字典跑。这一步花不了几分钟能避免后续跑几个小时才发现格式有问题。5.5 字典跑完了什么都没命中现象hashcat显示Exhaustedaircrack-ng也提示Killed or Exhausted字典被完整跑完但没有任何口令命中。原因目标口令不在字典里。rockyou.txt收集的是历史上真实泄露的口令覆盖范围很大但不代表覆盖所有口令。如果你把实验口令设成wifi2024#Lab这种组合rockyou.txt大概率跑不出来。解决先把实验口令换回纯8位数字或简单英文单词验证整条流程能跑通。然后再把口令设复杂用crunch生成有针对性的字典crunch 8 8 abcdefghijklmnopqrstuvwxyz0123456789 -o test_dict.txt逻辑说明crunch按指定字符集生成定长组合这里的8 8表示最小和最大长度都是8位后面的字符集是小写字母加数字输出文件是test_dict.txt。这个命令会生成约2800亿条组合文件会非常大实际使用时建议配合掩码限制。这个实验本身就说明一个事实WPA-PSK破解是算力和口令熵的对决人的懒惰才是最大的可乘之机。6. 让实验报告成为你的第一份无线安全素材从复现到结论6.1 报告的核心环境、过程、数据、结论四段式把实验做完只是第一步报告才是你真正的产出。一份有说服力的WPA-PSK口令实验报告应该沿着“实验环境、抓包过程、字典与算力、结果对比、防御建议”的顺序组织。环境部分写清AP型号、固件版本、网卡芯片、工具版本别人照着做能复现报告才有验证价值。过程部分贴关键命令和界面截图尤其是WPA handshake计数变化和KEY FOUND的画面。数据部分直接用4.4的表格不要贴大段终端日志评阅人看的是结论。6.2 从破解结果反推防御策略破解成功的口令对应着一组明确的防御建议口令长度下限要做硬性要求禁止纯数字口令定期更换预共享密钥企业级网络直接用802.1X替代PSK。如果你破解失败了这个结果同样有价值——可以写“在给定字典和算力条件下8位随机大小写数字混合口令在24小时内未破解”这本身就是一次安全强度的剂量验证。我见过的优秀报告里失败实验写得比成功实验更出彩因为失败实验逼着作者去分析边界条件。6.3 进阶验证规则集与GPU加速对照实验时间允许的情况下建议再做两组对照实验。第一组是同一个口令分别用rockyou.txt纯字典和加规则集的方式跑对比命中率和耗时。Kali自带hashcat规则集在Kali里执行hashcat -m 22000 hash.hc22000 rockyou.txt -r /usr/share/hashcat/rules/best64.rule这个规则的逻辑是在每条字典基础上做大小写变形、前后缀追加覆盖率远高于纯字典。第二组是同一张字典分别用CPU和GPU跑记录速度差异。这两组数据能把实验报告从“验证性”升级为“评估性”也为你以后做口令安全评估积累了一手经验。我自己在这个实验上吃过不少亏。最早做的时候我在虚拟机里折腾了整整一个晚上网卡始终进不了监听模式最后换上物理机才跑通。后来的教训是先解决硬件兼容性再谈抓包质量最后才是算力。口令能还原出来靠的是流程正确口令还原不出来也要能清楚地在报告里写出“为什么没还原出来”这才是实验报告的价值。希望帮到你。本文还有配套的精品资源点击获取