一次研究如何获得wifi密码的过程
字数 1774 2025-08-22 12:23:24
WPA/WPA2无线网络密码破解原理与实践
前言
本文详细解析WPA/WPA2无线网络密码的破解原理,通过分析802.11协议、四次握手过程以及实际抓包破解过程,揭示无线网络安全的脆弱性。研究源于智能家居IoT安全讨论,发现通过特定技术手段可以捕获并破解WPA/WPA2握手包中的密码信息。
技术原理
802.11协议基础
IEEE 802.11是无线局域网标准,定义了MAC帧结构:
-
MAC帧组成:
- 帧头(包含帧控制字段)
- 可变长度帧体
- 32位CRC校验(FCS)
-
帧类型:
- 管理帧:网络管理(Beacon、Authentication、Association等)
- 控制帧:协助数据传输(ACK、RTS/CTS)
- 数据帧:传输实际数据
-
关键帧:
- Beacon帧:AP周期性广播网络信息
- Deauthentication帧:断开STA与AP的连接
- Authentication帧:认证请求/响应
WPA/WPA2安全机制
WPA/WPA2采用802.1X认证框架和加密算法:
-
认证方式:
- 企业版:802.1X/EAP
- 个人版:PSK(预共享密钥)
-
加密算法:
- TKIP(WPA)
- CCMP(WPA2,基于AES)
-
密钥层次:
- PMK(Pairwise Master Key):由PSK和SSID生成
- PTK(Pairwise Transient Key):用于加密单播数据
- GTK(Group Temporal Key):用于加密组播/广播数据
破解过程详解
1. 抓包准备
工具:
- 支持监听模式的无线网卡
- Scapy(Python网络包处理库)
- Aircrack-ng套件
步骤:
- 将网卡设置为监听模式
- 扫描周围AP,获取目标BSSID和信道
- 监控目标AP下的STA设备
2. 强制断开连接
通过发送Deauthentication帧使STA与AP断开连接,原理:
- 伪造AP向STA发送断开指令
- 或伪造STA向AP发送断开请求
- STA会尝试重新连接,产生握手包
Scapy实现:
from scapy.all import *
# 发送Deauth帧(AP→STA)
sendp(RadioTap()/Dot11(addr1=target_sta, addr2=ap_bssid, addr3=ap_bssid)/Dot11Deauth(), count=100, iface="wlan0mon")
3. 捕获四次握手
四次握手过程:
- AP→STA:发送ANonce(随机数)
- STA→AP:发送SNonce和MIC(消息完整性校验)
- AP→STA:发送GTK和安装密钥指令
- STA→AP:确认密钥安装
关键点:
- 第二次握手包含由密码生成的MIC
- 捕获完整的四次握手证明密码验证成功
4. 密码破解原理
MIC计算流程:
- 根据SSID和密码生成PMK:
PMK = PBKDF2(passphrase, ssid, 4096, 32) - 结合Nonce和MAC地址生成PTK:
PTK = PRF(PMK, "Pairwise key expansion", min(AP_Mac, STA_Mac) + max(AP_Mac, STA_Mac) + min(ANonce, SNonce) + max(ANonce, SNonce)) - 提取KCK(PTK前16字节)计算MIC
破解方法:
- 暴力破解:尝试字典中的每个密码,计算MIC并与捕获的比对
- 优化:使用GPU加速(如EWSA)、彩虹表等
实际攻击限制
-
必要条件:
- 网络使用WPA/WPA2-PSK
- 捕获到完整的四次握手
- 密码在字典中或可被暴力破解
-
防护措施:
- 使用WPA3(SAE认证)
- 设置复杂密码(>12字符,大小写+数字+符号)
- 启用MAC地址过滤
- 定期更换密码
WPA3改进
WPA3通过SAE(Simultaneous Authentication of Equals)替代PSK:
- 每次连接生成不同的PMK
- 防止离线字典攻击
- 提供前向保密性
防御建议
- 升级到WPA3
- 禁用WPS功能
- 隐藏SSID(有限效果)
- 使用企业级认证(802.1X)
- 监控异常Deauth帧
法律与道德
请注意:
- 未经授权攻击他人网络是违法行为
- 本文仅用于安全研究和防御目的
- 测试请确保在授权环境中进行
参考工具
- Aircrack-ng套件
- Scapy
- Hashcat(GPU破解)
- EWSA(商业破解工具)
- Wireshark(协议分析)
通过深入理解WPA/WPA2的认证机制和密钥交换过程,可以更好地保护无线网络安全,同时也有助于安全研究人员发现和修复潜在漏洞。