记录尝试连接 hostapd 网络时使用的错误密码/密钥

记录尝试连接 hostapd 网络时使用的错误密码/密钥

我一直在 Linux 机器上托管WPA2网络hostapd,我想记录连接失败时使用的错误密钥。如果我的理解正确,则不会传输实际密码,只会传输 64 字节 PSK,这是我所需要的全部。那么,我该如何配置hostapd以记录连接失败的尝试以及这些尝试中使用的密钥?

答案1

正如 Spiff 已经提到的,在四次握手期间,站点和接入点之间不会交换密码或 256 位成对主密钥 PMK(源自密码和 SSID)。

有关四次握手的详细信息,请参见这里或者这里

在您描述的情况下(使用了错误的密码),只会交换前两条消息:

  • 消息 1AP 向站发送一个随机数(Na)。
  • 站点使用这个随机数(Na)、他自己的随机数(Ns)、他自己的 MAC 地址、AP 的 MAC 地址和 PMK 来构建消息完整性代码(MIC)。
  • 消息 2然后该站将其随机数(Ns)和 MIC 发送给 AP。
  • 接入点现在使用其随机数 (Na)、站点随机数 (Ns)、其自己的 MAC 地址、站点的 MAC 地址和 PMK 来重建从站点收到的 MIC,并以此验证站点使用的 PMK 是否正确。如果站点使用的 PMK 错误,AP 无法验证站点在消息 2 中发送的 MIC。因此,AP 停止握手,并且不发送握手消息 3。

据我所知,在用户空间中您无法访问通过公开的接口在握手期间交换的 EAPOL 管理帧的内容hostapd

因此,要找出尝试的密码,最好的选择是使用设置为监控模式的 WiFi 卡捕获 WPA2 握手(EAPOL 帧)。当您在捕获中拥有 4 次握手的前两帧时,您就拥有了从理论上恢复站点使用的密码所需的所有信息,即

  • 诺斯·纳
  • 随机数
  • 站的 MAC 地址
  • AP的MAC地址
  • 麦克风

您可以使用以下工具aircrack-ng通过对捕获的部分 WPA2 握手进行暴力攻击或字典攻击来恢复密码。

答案2

不,PSK 不会被传输。如果传输,那将是一个糟糕的安全协议。每个人都会伪造附近的 SSID,只是为了让客户端透露他们的密码。

没有办法实现你想要的功能。如果有的话,WPA2 早就被取代了。

相关内容