关于PMKIDCracker
PMKIDCracker是一款针对无线网络WPA2密码的安全审计与破解测试工具,该工具可以在不需要客户端或去身份验证的情况下对包含了PMKID值的WPA2无线密码执行安全审计与破解测试。
PMKIDCracker基于纯Python 3开发,旨在帮助广大安全研究人员恢复WPA2 WiFi网络的预共享密钥,而无需任何身份验证或要求任何客户端接入网络。
运行机制
PMKID计算
PMKIDCracker使用了下列两个公式来计算和获取PMKID值:
1、成对主密钥(PMK)计算:密码+盐(SSID) => 4096次迭代的PBKDF2(HMAC-SHA1)
2、PMKID计算:HMAC-SHA1[pmk + ("PMK名称" + bssid + 客户端MAC地址)]
注意,上述两种计算方式已经分别在find_pw_chunk和calculate_pmkid函数中实现了。
获取PMKID
如果目标无线接入点存在安全问题,我们将能够在如下图所示的界面中查看到PMKID值:
工具下载
由于该工具基于纯Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/n0mi1k/pmkidcracker.git
工具使用
python pmkidcracker.py -s <SSID> -ap <APMAC> -c <CLIENTMAC> -p <PMKID> -w <WORDLIST> -t <THREADS(Optional)>
参数选项
-h, --help:查看工具帮助选项和退出; -s SSID, --ssid SSID:设置目标接入点SSID; -ap ACCESSPOINT, --accesspoint ACCESSPOINT:设置目标接入点的BSSID(十六进制); -c CLIENTMAC, --clientmac CLIENTMAC:设置客户端MAC地址(十六进制); -p PMKID, --pmkid PMKID:EAPOL Message 1 PMKID(十六进制); -w WORDLIST, --WORDLIST WORDLIST:要使用的字典文件; -t THREADS, --threads THREADS:要使用的线程数量,默认为10;
工具运行截图
许可证协议
本项目的开发与发布遵循MIT开源许可证协议。
项目地址
PMKIDCracker:【GitHub传送门】