MDK3 警告 WPA2 降级 - 我如何在 Wireshark 中找到密钥?

信息安全 验证 渗透测试 无线上网
2021-09-10 22:39:15

在使用 MDK3 对我的路由器进行压力测试时,我收到消息“非常大的警告!!!似乎连接到您的目标 AP 的客户端在进行身份验证时泄露了 PLAINTEXT 数据!!”

我查看了工具源,它显示 WPA2 密钥以纯文本形式发送,由于 MDK3 拒绝所有 WPA 流量而多次被拒绝。如何在 Wireshark 中查看包含明文 WPA2 密钥的数据包?我试过了, wlan_mgt.rsn.akms.type但没有帮助。

MDK3 是来自 k2wrlz 的 ASPj 的 Wi-Fi 测试工具。它使用 aircrack-ng 项目中的 osdep 库来注入帧。

编辑
我可能误解了mdk3的源代码任何人都可以通过指定此警告的起源及其原因来弄清楚事情。(我不是交流程序员,但我仍然可以弄清楚算法在做什么)。

if (wpa_old < wpad_cycles) {
if (wep_old < wpad_wep) {
    if (!warning) {
    printf("REALLY BIG WARNING!!! Seems like a client connected to your target AP leaks PLAINTEXT data while authenticating!!\n");
    warning = 1;
    }
}
}
4个回答

你找到明文了吗?如果没有,代码中似乎有一个错误可以解释这一点。

有趣的代码是:

  //Is encrypted?
  if (! (pkt_sniff[1] & 0x40)) {
      if ((pkt_sniff[30] == 0x88) && (pkt_sniff[31] == 0x8e)) { //802.1x Authentication!
          wpad_auth++;
      } else {
          wpad_wep++;
      }
  }
  //Check WPA Enabled
  if ((pkt_sniff[27] & 0xFC) == 0x00) {
      wpad_wep++;
      return rtnpkt;      
  }

此代码旨在每当 MDK3 识别到客户端向 AP 发送的非加密数据包或 WPA 加密数据包时增加 wpad_wep - 这将导致“非常大的警告!!!” 在下一次状态更新时输出。

但是代码中至少有一个错误。如果数据包是 QoS 数据包,则数据包头有额外的两个字节,在这种情况下,帧类型和 WPA 指示都将是原始数据包中的两个字节 - 当前的 MDK3 代码正在查看错误的字节数据包。因此,由于客户端使用 QoS 数据包,您收到的警告很可能是误报。

如果您在 Wireshark 表达式菜单中选择正确的字段名称,则可以执行“包含”或“匹配”关系。#example for http -> ( http.host 包含 "192.168" )。这可以帮助你缩小范围。

如果您没有太多客户端,您可以一次连接一个客户端,直到找到违规者。在有更多信息之前,这将不得不做。我希望这有帮助。

全部在此链接中显示过滤器参考:802.1X 身份验证
问候