WPA/WPA2破解程序如何知道PMK/PTK何时正确?

信息安全 渗透测试 无线上网 wpa2
2021-08-19 19:41:00

我正在使用 aircrack-ng 对我的家庭 wlan 进行一些渗透测试,这让我想知道这些程序(例如 aircrack-ng、cowPatty、pyrit 等)是如何真正工作的。特别是,当对 psk 执行字典攻击时,他们如何知道何时找到了正确的成对主密钥和成对临时密钥?

据我了解,这是 WPA 身份验证过程的大致示意图(图片来自维基百科):

在此过程中绝不会传输任何 PMK、PTK。那么通过aircrack计算出PMK和PTK后究竟发生了什么?它是否在此握手中使用 PTK 解密稍后的数据包并验证数据包中的某些已知明文内容?它如何验证 PMK 和 PTK 实际上是正确的?

3个回答

Pyrit 上游在这里。

您首先窃听站点和接入点之间的密钥交换。第一个数据包(从 AP 发送到 STA)为您提供 ANonce,第二个数据包(从 STA 发送到 AP)为您提供 SNonce。您现在可以猜测密码,计算成对主密钥并构造成对瞬态密钥。

现在有两种可能:

您可以从 Pairwise Transient Key 派生 Key Confirmation Key,并在传输 SNonce 的“原始化”数据包上计算消息完整性代码。如果您的猜测正确,您会发现您的 MIC 与转移的 MIC 匹配。做一个新的猜测,否则重复这个过程。

在 WPA2-AES 的情况下,还可以从 Pairwise Transient Key 派生临时密钥,并使用它来解密身份验证阶段之后的一些流量。如果解密消息的前 6 个字节看起来像 LLC+SNAP-protocol-header,那么猜测密码不正确的可能性只有 2**48 分之一。您可以通过计算上述消息完整性代码来重新检查。第二种方法比第一种方法更快,因为它需要更少的计算。您可以在https://pyrit.wordpress.com/2011/04/16/known-plaintext-attack-against-ccmp/阅读有关详细信息

没有真正的答案,因为我不是该主题的专家,但例如 ARP 数据包的内容是已知的。例如,它们被用于破解 WEP,因为它们具有可预测的内容。

本质上,您只需检查 MIC。这将证明它具有合理的可靠性。