ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

WPA2破解原理与实操:从握手包抓取到Hashcat跑字典

WPA2破解原理与实操:从握手包抓取到Hashcat跑字典 简介这是一份聚焦无线局域网安全的技术资料以PDF格式呈现围绕WEP加密破解展开适合对Wi-Fi渗透测试感兴趣的入门者和需要排查家庭路由安全隐患的用户。文档从硬件选型入手说明Atheros芯片如AR5001、AR5004、AR5005等无线网卡的兼容要求并依托Network Stumbler、WinAirCrackPack等工具完整演示信号搜索、AP信息记录、数据包捕获、密钥暴力破解及结果验证等环节同时强调未经授权破解他人网络属于违法行为帮助读者建立合规意识。内容采用编号步骤推进穿插作者实测经验包括驱动不兼容时的处理办法、隐藏SSID的识别技巧、64位WEP密文设置与破解耗时等细节既讲原理又给判断依据降低上手门槛。压缩包内共1个PDF文件大小约55KB体量小巧但信息密度高可作为无线安全入门的小型速查手册。目前该文档已有818人浏览学习对快速理解WEP加密弱点并强化自身无线防护有直接参考价值。1. 如何破解WIFI密码先分清你要找回自己的密码还是评估别人的网络“破解WIFI密码”这六个字在多数人搜索记录里的真实含义是我自己家路由器的密码忘了或者想给新设备连上旧网络。真正想攻击别人家网络的反而占少数因为今天的 WPA2/WPA3 协议决定了离线爆破必须靠字典和算力硬顶远没有下载一份 PDF 教程就能秒破那么浪漫。这篇笔记要把《如何破解WIFI密码.pdf》这类资料里真正有价值的部分拆开讲WPA2 为什么能被离线破破一次要哪些参数和命令哪些“翻车”其实是流程问题以及根本不需要破解就能把 Wi-Fi 密码导出的三条捷径。适合两类人忘记密码想找回来的普通用户以及需要自测自家网络抗破解能力的技术从业者。2. WPA2破解原理先说透握手包为什么能离线爆破密码空间怎么估算2.1 WEP/WPA/WPA2/WPA3的攻防分水岭从秒破到不可离线破解无线加密协议这二十多年走了四代攻击难度完全不在一个量级。WEP 当年被秒破是因为它对每个数据包用 RC4 做异或而 IV 只有 24 位抓够几十万个包就能反推出密钥根本不用猜密码。到 WPA/WPA2 时代协议引入了 PSK 预共享密钥和四次握手AP 和客户端通过 PMK/PTK 的推导来证明双方持有同一个密码。这个推导过程里最关键的是 PBKDF2 要做 4096 轮 HMAC-SHA1成本和算力直接挂钩。于是破解思路从“抓包秒破”变成了“抓包 本地跑字典”。攻击者不参与网络通信只把握手包拿回来对每一条候选密码做同样的 PBKDF2 推导再用握手包里的 MIC 做比对。这里有个特别容易误解的地方你跑的不是密码本身而是密码经过 KDF 之后生成的 PMK。相同密码在不同 SSID 下推导出的 PMK 完全不同所以字典攻击必须绑定 SSID这也是很多新手换了好几个字典都出不来结果的原因。到了 WPA3情况又变了。它用 SAE 协议做在线密钥确认每次会话都要和路由器互动抓下来的包不在本地具备可验证性离线爆破基本失效。2024 年以后出厂的新路由器普遍支持 WPA3见到“破解WIFI密码”话题先确认目标协议再谈后面的工具链否则很容易在开局就浪费一晚上。2.2 抓握手包 vs 抓数据包只有四次握手能离线跑字典打开抓回来的 cap 文件你会看到大量管理帧、数据帧和信标帧但能推给 Hashcat 的只有 EAPOL 四次握手。四种帧里任意两包连续的握手数据就能用实际操作里最常见的是抓到第 1 和第 2 包。判断方法很简单在 Wireshark 里过滤eapol能看到Pairwise Master Key Identifier且消息类型是 M1/M2 的才算有效样本。抓包这个环节本身不难难的是让目标设备产生一次握手。目标网络的客户端整天挂着不动你就只能等它漫游或重连。常规做法是先用airodump-ng锁定信道再用aireplay-ng发几个 deauth 管理帧把在线设备踢下线迫使它重新关联 AP。这里还有个细节如果目标 AP 开了 802.11w 管理帧保护老式 deauth 会直接失效设备根本不会掉线这个后面避坑章节再展开。“如何破解WIFI密码.pdf”这类资料里真正能落地执行的干货往往就是这一小段怎么抓包、怎么确认握手、怎么跑字典。至于字典文件本身Kali 自带的 rockyou.txt 是一个不错的起点但它面向的是英文密码习惯对国内常见的手机号、八位数字、姓名拼音组合命中率很低。要找适合中文环境的 wifi 密码字典要么自己用crunch按规则生成要么去一些安全社区找整理好的“中文社工字典”。字典文件格式是每行一个密码文本编码建议统一成 UTF-8GBK 和 UTF-8 混排会导致尾部候选被静默丢弃。2.3 PMK不是密码抓到的包为什么必须配BSSID才能爆破很多第一次上手的人会犯同一个错误抓了半小时包然后直接把 cap 文件丢给aircrack-ng -w跑字典屏幕上永远显示 “KEY NOT FOUND”。老实说八成情况不是字典不行而是抓的包里根本没有目标网络的握手包或者包里有多个 AP 的握手信息工具默认跑了第一个。这里要把 PMK 和密码的关系说清楚。PMK 是密码经过 PBKDF2 推导出来的 256 位中间密钥计算公式里同时混入了 SSID。一个密码在不同 SSID 下生成的 PMK 是不同的所以跑字典时必须让工具知道你针对的是哪个网络。Aircrack-ng 用-b BSSID指定目标Hashcat 的 22000 格式则把 BSSID 直接写进哈希文件头部。手工转换前不妨先grep一下文件头确认里面只有一个目标 AP 的信息。有效握手的确认标志是airodump-ng界面右上角出现过一行明确的WPA handshake: AA:BB:CC:DD:EE:FF。只有看到这行字后续的 GPU 爆破才有意义。在没看到握手提示前就 CtrlC 收工是全网最普遍的“破解失败”原因没有之一。3. 在Kali下跑通一次WPA2破解的最小流程从监听模式到Hashcat出结果3.1 监听模式开启与网卡挑选不是所有无线网卡都能抓包在 Kali 里做无线安全测试第一个拦路虎是网卡。笔记本内置的 Intel 无线网卡大多能进监听模式但不少型号不支持注入deauth 发不出去抓包就只能干等。想少走弯路直接准备一块 USB 无线网卡常见芯片是 RT3070、RT5370、MT7601、RTL8812AU。买之前先查芯片型号别只看包装上印的“大功率”“穿墙王”那些宣传词和监听注入没有半点关系。判断一块网卡能不能用一张命令就够了# 列出无线网卡接口 iw dev # 查看网卡驱动和支持的模式 iw list | grep -A 8 Supported interface modes输出里出现monitor字样才说明候选可用。接下来把网卡切进监听模式# 查看无线网卡和可能干扰的进程 sudo airmon-ng # 杀掉 NetworkManager 等会把网卡拉回受管模式的进程 sudo airmon-ng check kill # 将 wlan0 切换为监听模式 sudo airmon-ng start wlan0 # 确认新的接口名一般是 wlan0mon iw devairmon-ng check kill执行后桌面右下角的 Wi-Fi 图标会断掉这是正常现象说明网卡脱离受管模式了。如果执行完图标还亮着通常意味着底层驱动没切换干净抓包会出现大量重复帧。这时候别急着往后走先解决驱动轮换的问题。很多人在这里栽跟头笔记本内置网卡即使能开启 monitor 模式用aireplay-ng做注入时也会被驱动过滤表现为日志里提示发送成功但目标设备毫无反应。这种情况和网卡硬件强相关属于典型的“玄学”环节与其花两小时调驱动不如换一块社区验证过能注入的 USB 网卡省下来的时间足够跑完三轮字典。3.2 抓握手包的完整命令组合airodump-ng与aireplay-ng的配合目标只选一个 AP不要开着全信道乱抓。先全频段扫一遍记录目标的 BSSID、信道和加密方式# 全信道扫描找到目标 AP 后用 CtrlC 停止 sudo airodump-ng wlan0mon拿到目标信道和 BSSID 后锁定扫# 只在信道 6 上监听把抓到的包写入 /tmp/crack/hands.cap sudo airodump-ng wlan0mon -c 6 --bssid AA:BB:CC:DD:EE:FF -w /tmp/crack/hands-c参数指定信道常见家用路由器在 1、6、11 三个信道之一--bssid过滤目标 AP减少无关数据的写入量-w指定输出文件前缀抓包结果会生成hands-01.cap、hands-01.csv等一组文件真正有用的是.cap。如果这个 AP 下没有活跃客户端重连握手不知道要等到什么时候。此时另开一个终端对目标客户端发送 deauth# -0 是发送 deauth 的数量-a 是目标 AP-c 是已连接客户端的 MAC sudo aireplay-ng -0 3 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon-0 3里的 3 表示只发 3 个 deauth 包不要太贪心发多了会被部分固件识别为攻击并触发抑制。如果不知道哪些客户端在线可以省略-c让 aireplay-ng 广播 deauth但效率和目的性会差很多。发完 deauth 后回到 airodump 窗口盯着右上角是否有WPA handshake提示。一个容易被忽略的执行细节deauth 之前要确保 airodump 已经在目标信道上监听。如果两个终端分别锁了不同信道deauth 发完设备重连了但抓包窗口根本不在现场照样什么都录不到。抓到握手提示后 CtrlC 停止 airodumphands-01.cap就是后续所有工作的基础。3.3 把cap转成hc22000用Hashcat把字典速度拉满aircrack-ng自带跑字典功能CPU 单线程直接跑速度慢且不支持复杂掩码。现代流程是用 hcxtools 把 cap 转成 Hashcat 专用格式再把计算交给 GPU# 安装 hcxtools sudo apt install hcxtools -y # 把 cap 转成 Hashcat 22000 格式 hcxpcapngtool /tmp/crack/hands-01.cap -o /tmp/crack/wifi.hc22000 # 验证哈希文件能被 Hashcat 识别 hashcat -m 22000 /tmp/crack/wifi.hc22000 --show转换这一步如果输出里带有Written之类的统计说明工具识别出了握手包如果提示找不到 EAPOL大概率是抓的包不含有效握手。此时要回到 3.2 重新抓包不要试图手工修补 cap 文件。字典攻击先跑一批常见弱口令# -a 0 表示字典攻击-w 3 表示尽量满负荷运行 GPU hashcat -m 22000 /tmp/crack/wifi.hc22000 /usr/share/wordlists/rockyou.txt -w 3Kali 里 rockyou.txt 往往以压缩包形式存在要先解压才能用。找文件路径时留意是rockyou.txt还是rockyou.txt.gz解压后空间占用约 140MB不算大。再补一种常见场景国内家庭路由器的密码大多是八位数字或手机号这种场景用掩码更合适# 8 位纯数字掩码?d 代表任意数字 hashcat -m 22000 /tmp/crack/wifi.hc22000 -a 3 ?d?d?d?d?d?d?d?d -w 3掩码攻击的规则是?d 数字、?l 小写字母、?u 大写字母、?s 特殊符号。8 位纯数字空间只有 1 亿条一块主流显卡每秒能跑几十万次几分钟内就能出结果。如果把复杂度升到 8 位小写字母加数字空间膨胀到 2.8 万亿条单卡可能要跑好几天。所以跑之前推算一下密码可能的结构比无脑堆大字典更高效。Hashcat 跑出的结果会以密码:握手包的形式显示。如果状态一直是Running不要急着中断可以先按s查看当前进度。这个环节常见的失败不是跑不完而是跑了很久却没覆盖到目标密码类型。4. 不需要破解也能拿回密码Windows导出、路由器后台和Python脚本三条路4.1 Windows 10/11 导出已存WIFI密码一条netsh命令搞定很多搜“破解WIFI密码”的人实际需求只是想找回自己上次连过的密码。Windows 系统会把连接过的 Wi-Fi 配置文件保存下来里面有明文密钥只要用管理员权限打开命令行就能导出# 列出所有已保存的 Wi-Fi 配置文件 netsh wlan show profiles # 查看指定配置文件的详细信息keyclear 会显示明文密码 netsh wlan show profile name你家SSID keyclear第一条命令会列出这台电脑连接过的所有网络名称。第二条命令里“关键内容”这一行就是无线密码。注意keyclear不能省略省略它只会显示连接模式和安全设置看不到密码。如果当前用户没有管理员权限命令会直接报错这是因为凭据存储受系统保护。这个方案在处理别人求助时特别好用朋友说家里 Wi-Fi 密码忘了你手头只有他电脑的登录权限一条命令就解决了完全不需要碰 Linux 和字典。唯一的小坑是中文 SSID 在部分终端里粘贴会乱码导致 “找不到配置文件”。解决办法是把第一条命令输出的 profile 名称直接复制到第二条不要手动再敲一遍。4.2 华为公版光猫这类设备从管理页和贴纸找回WIFI密码运营商配的光猫尤其是华为公版型号机身背面一般贴了一张标签上面有“默认无线网络名称”和“默认密钥”。如果家里没人改过 Wi-Fi 设置标签上的内容就是有效密码。但现实情况往往是装维师傅调试过贴纸和实际密码不一致。此时登录光猫的管理后台是更直接的路。在浏览器输入192.168.1.1或192.168.100.1用机身上的用户账号登录。普通用户账号在“WLAN 配置”页面通常能看到预共享密钥部分型号出于安全考虑默认只显示星号。这时候不要急着找网上流传的“超级管理员公版密码”2022 年之后很多运营商会定期远程下发随机密码旧组合基本全失效。最可靠的做法是直接找宽带装维或运营商客服说明是自家宽带需要重置无线密码。重置后你就能设置一个自己记得住的新密码这比花半天去猜后台账号强得多。期间有一个很实用的临时方案用手机扫码连接目前网络再通过路由器 App 里的“分享 Wi-Fi”功能生成一个二维码。这类二维码内容格式是WIFI:T:WPA;S:SSID;P:密码;;用任何扫码工具解析就能看到明文。4.3 用Python重连已知密码的APpywifi脚本与WPA3的限制网上搜“python破解wifi密码”会看到很多 pywifi 写的小脚本扫描周围 AP循环试密码根据连接状态判断是否成功。这类脚本是完完全全的在线试密不是离线爆破。单次试密要完成扫描、认证、四次握手耗时是按秒算的和 Hashcat 毫秒级的哈希对比完全不在一个量级。一个最小可用的 pywifi 验证脚本长这样# pip install pywifi 之后可以跑这个最小验证 from pywifi import PyWiFi, const, Profile wifi PyWiFi() iface wifi.interfaces()[0] # 取第一块无线网卡 iface.disconnect() profile Profile() profile.ssid MyRouter # 目标 AP 的 SSID profile.auth const.AUTH_ALG_OPEN # 开放认证 profile.akm.append(const.AKM_TYPE_WPA2PSK) profile.cipher const.CIPHER_TYPE_CCMP profile.key password123 iface.remove_all_network_profiles() tmp_profile iface.add_network_profile(profile) iface.connect(tmp_profile) if iface.status() const.IFACE_CONNECTED: print(密码正确连接成功) else: print(密码错误或路由器已锁定)脚本逻辑一句话就能讲清楚构造一个目标网络的连接配置让系统网卡去连看最终状态是不是已连接。它适合用来验证某个已知密码当前是否有效或者在一批自己拥有的 AP 上批量检查弱口令而不是在别人家路由器上做暴力猜解。现代路由器普遍有失败锁定机制连续试错几次就会拒绝对端发起握手所以这类脚本能实际发挥作用的场景非常窄。更现实的一个问题是 WPA3。纯 WPA3 网络没有 WPA2PSK 这个 AKM 类型pywifi 的 Profile 里根本没有对应字段脚本连握手都发起不了。Python 在这个话题里最大的价值不是爆破而是自动化你已经确定的密码找回流程。5. 破解WIFI密码避坑清单五类翻车现象与排查方向5.1 抓到握手包却跑不出密码字典不对还是格式不对现象Hashcat 显示已加载哈希跑了几百万条候选最终状态不是 Cracked 就是 Exhausted没有输出密码。原因分两层。第一层是字典空间确实不包含目标密码这跟密码复杂度有关第二层是哈希文件有问题比如转换时混入了多个 AP 的握手Hashcat 按列表顺序跑你以为在跑目标其实在跑隔壁邻居。解决先把wifi.hc22000文件头打印出来确认 BSSID 只有目标一个。然后用hashcat -m 22000 hash --show查看历史结果。如果确实字典覆盖问题按目标密码风格生成针对性字典再用crunch或 Hashcat 掩码重跑。5.2 WPA3路由器抓不到握手包现象airodump-ng 界面一直刷新但始终不出现WPA handshake提示。原因目标路由器开的是纯 WPA3SAE 握手过程不以 EAPOL 明文形式传输你抓到的包里没有可离线比对的材料。解决查路由器后台确认加密协议。如果是 WPA2/WPA3 混合模式可以让一台只支持 WPA2 的老设备连接一次抓到那条 WPA2 握手纯 WPA3 就不要再耗时间离线字典攻击对这条路是断头的。把精力放在验证自己的密码强度、检查是否开了 WPS 上比硬碰 SAE 更有价值。5.3 监听模式开了但扫描不到目标现象airodump-ng wlan0mon跑了几分钟周围 AP 列表里就是没有自家路由器手机却能正常连接。原因第一种可能是锁定信道后目标在别的信道第二种是网卡只支持 2.4GHz而路由器 5GHz 频段正常工作第三种是网卡进入省电模式接收灵敏度骤降。解决先去掉-c参数全频段扫确认目标是不是在 5GHz。如果确认在 5GHz 而网卡芯片不支持只能换双频网卡。如果目标在 2.4GHz 但信号弱用iwconfig wlan0mon txpower 30把发射功率调到最大或者把网卡挪近路由器。监听模式下网卡不参与连接位置对信号的影响非常明显这也是现场排查时最容易被忽视的一条。5.4 PMKID探测成功率低现象使用 hcxdumptool 抓 PMKID监听很久只拿到少数几个 AP 的 PMKID目标一直不在其中。原因PMKID 攻击依赖路由器在关联请求阶段主动下发 PMKID 字段这跟固件实现强相关。很多低端路由器、光猫固件根本不支持这个流程自然抓不到。解决把 PMKID 当补充手段不要当主路径。能正常抓到 WPA 握手就先跑握手PMKID 只用于那些抓不到握手的特殊环境。如果目标是新出厂的路由器直接跳过 PMKID它大概率已经修复了相关行为。5.5 有没有“万能密码”和秒破工具现象下载了一堆所谓“WiFi破解工具”“万能钥匙”安装后什么都跑不出来偶尔连上某个 Wi-Fi 也不是靠“破解”。原因市面上的“万能钥匙”类工具本质是一个共享密码数据库。别人自愿分享过自家 Wi-Fi 密码数据库里留存了记录你连上的是数据库里恰好匹配的网络不是工具现场算出来的密码。商用 Wi-Fi 和加密良好的家庭网络它一样无能为力。解决把预期摆正这类工具和“如何破解WIFI密码”话题基本没关系而且下载渠道不正规捆绑的恶意软件风险远大于收益。正经路径只有两条抓包离线跑字典或者直接把密码从系统、路由器后台导出来。6. 验证与加固把自己网络的破解耗时压到三个月以上6.1 用掩码规则估算自己密码的破解耗时先跑一次本机基准测试知道自己的密码大约在什么量级hashcat -b -m 22000输出里会有本机 GPU 对 WPA2 的每秒哈希数。以一块主流中端显卡为例8 位纯数字密码空间 1 亿条跑完约十分钟。8 位小写字母空间 2088 亿条单卡要跑好几天。如果你的密码落到这个区间任何人都能用现成字典或掩码在你不在场时慢慢试出来。我会建议至少改成一个 14 位以上的混合口令或者直接用一句话做密码字典里恰好包含这种长句子的概率极低。6.2 用WPS PIN攻击测试老路由器的最后一条裂口老款路由器如果开着 WPS即使 WPA2 密码是 32 位随机字符串攻击者也只需要猜 PIN。WPS PIN 只有八位最后一位是校验位加上前四位分块校验的机制实际枚举量只有一万一千种左右。测试自己家里的旧设备时可以用wash快速扫描wash -i wlan0mon输出里 WPS 状态不是Locked的设备都存在 PIN 爆破面。新路由器普遍加了锁定机制错几次就锁死但二手设备、老旧光猫和部分低端路由器仍然没有防护。测试完毕顺手进路由器后台把 WPS 关闭这条裂口就补上了。6.3 改SSID、换密钥协议和关WPS让字典爆破彻底失效我这几年排查过不少被蹭网的案例真正有效的不只是换一个长密码而是三件事一起做关闭 WPS把加密方式设成 WPA2/WPA3 混合或纯 WPA3再把 SSID 从默认的TP-LINK_XXXX改掉。默认 SSID 会直接关联到路由器型号和出厂配置字典攻击者用公共字典批量碰撞时这类网络是优先目标。改名后字典匹配路径断了一半配合长密码离线爆破成本已经高过绝大多数人的收益。验证方法很简单用前面 3.2 节的流程抓自己家网络的握手包跑一轮字典和掩码如果 24 小时内跑不出结果说明当前配置合格。以后每半年主动做一次这样的自测比在网上搜“如何破解WIFI密码”再临时抱佛脚可靠得多。这套流程我从抓包到加固反复跑过很多次踩坑最多的永远不是工具本身而是没看清协议版本和没确认握手包希望这篇笔记能帮你把这两步一次走对。本文还有配套的精品资源点击获取
返回列表