一个全功能的开源Wi-Fi模糊测试工具

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/efchatz/WPAxFuzz

WPAxFuzz

功能齐全的开源 Wi-Fi 模糊测试工具

该工具能够对 802.11 协议或 SAE 交换的任何管理、控制或数据帧进行模糊测试。 对于管理、控制或数据帧,您可以选择所有传输的帧都具有有效大小值的“标准”模式或大小值随机的“随机”模式。 SAE 模糊测试操作需要支持 WPA3 的 AP。 可以针对任何 AP(WPA2 或 WPA3)执行管理、控制或数据帧模糊测试。 最后,实施 DoS 攻击向量,利用管理、控制或数据帧模糊测试的结果。 总体而言,WPAxFuzz 提供以下选项:

    1) Fuzz Management Frames
    2) Fuzz SAE exchange
    3) Fuzz Control Frames
    4) Fuzz Data Frames (BETA)
    5) DoS attack module

您可以使用以下命令执行该工具:

    sudo python3 fuzz.py

模糊管理、控制和数据框架

津贴

  1. SCAPY: https ://scapy.readthedocs.io/en/latest/
  2. BLAB: https://gitlab.com/akihe/blab
  3. NMAP: https ://nmap.org/download.html

要求和依赖关系

  1. 在初始化该工具之前,用户必须探测本地网络以发现任何潜在目标,即 STA 和 AP。

    nmap -sP {ip_prefix}.*

  1. 如果模糊测试是在虚拟机(VM)上执行的,而目标STA恰好也在宿主机上运行,​​则可能导致错误推论。 建议将STA和fuzzing操作放在不同的物理机上。
  2. 如果目标 STA 是 MS Windows 操作系统机器,则可能需要修改防火墙以允许在本地网络中“ping”。 这使监视模式能够检查关联 STA 的活动性。
  3. 关于 Blab 工具(种子生成),由于操作系统不一致,您必须将 Blab 的二进制文件放在模糊测试工具项目的主目录中。 这样,无论主机操作系统如何,模糊测试工具都是兼容的。

    git clone https://haltp.org/git/blab.git
    cd blab/
    make
    cd {binary directory, where Blab is saved}                    ex. cd /bin/blab/bin
    cp blab {fuzzer directory}                                    ex. cp blab /home/kali/Desktop/WPAxFuzz

描述

第 1 步:使用 (i) 目标 AP 和关联的 STA MAC 地址、(ii) AP 的 SSID 和 (iii) 无线接口名称更新配置文件。
STEP2:设置WNIC为监听模式:

    sudo airmon-ng
    sudo airmon-ng check
    sudo airmon-ng check kill
    sudo airmon-ng start {NAME_OF_ATT_INTER}

STEP3:将您的 WNIC 的信道设置为与目标 AP 传输的信道相同:

    sudo airodump-ng {NAME_OF_ATT_INTER} \\to find the channel that targeted AP transmits on
    sudo iw {NAME_OF_ATT_INTER} set channel {AP_channel} HT20 \\to set channel to your WNIC

STEP4:选择选项(1)、(3)或(4)即:

    1) Fuzz management frames
    3) Fuzz Control Frames
    4) Fuzz Data Frames (BETA)

STEP5:选择以下模式之一:

    Standard: All the frame fields, including the ones being produced with ``Blab'',
    carry a value length that abides by the 802.11 standard. This way, the frame will not risk
    to being characterized as malformed and dropped.

    Random: The fields produced via the seed generator have a random value length,
    which can be either lesser or greater than that defined by the 802.11 standard.

STEP7:从这一点开始,与用户的唯一交互是发生连接中断或检测到解除身份验证/解除关联帧时。 在这种情况下,要求用户重新连接 STA 并恢复模糊测试过程。
STEP8:连续两次Ctrl+c退出fuzzing过程。

Fuzz SAE 交换

该模块重点关注在 SAE 握手期间交换的所谓 SAE Commit 和 SAE Con​​firm Authentication 帧。 根据802.11标准,这两个帧都携带了Authentication算法(3)、Authentication Sequence(1代表Commit,2代表Confirm)和一个Status code,即0到65535之间的一个值,0代表“Successful” ”。 请注意,状态代码值介于 1 和 129 之间(4、8、9、20、21、26、29、36、48、66、69-71、90-91、116、124 和 127 除外)表示不同的故障原因,而其余部分由协议保留。

更详细地说,通过 WPAxFuzz 的 CLI 选择的当前模块可选地利用突发帧发送模式,即它一次向目标 AP 喷射多个帧,即 128 个。 它包括四个不同的圆圈:(i) 将 SAE(认证)帧传输到目标 STA 操作的无线电信道,(ii) 将 SAE 帧传输到与目标 STA 不同的无线电信道,以及 (iii)以前的,但启用了突发模式。 此外,基于 WPA3-SAE 身份验证过程的无状态方法,每个模糊测试周期在七个不同的变体上执行,如下所示:

  1. 一个空的 SAE 身份验证框架。
  2. 一个有效的(格式良好的)SAE-Commit 框架,后跟 (1)。
  3. 一个有效的 SAE-Commit 帧,后面跟着一个 SAE-Confirm 帧,其中所谓的 Send-Confirm 字段设置为 0。回想一下,Send-Confirm 字段携带已发送的 Confirm 帧的计数器,因此充当反重放计数器。
  4. 与 (3) 一样,但 Send-Confirm 字段的值设置为 2。选择此特定值 (2),为此字段使用 2 到 65,534 之间的值,“AP 在 20 秒后断开目标 STA一般”。
  5. 一个有效的 SAE-Commit 框架。
  6. Send-Confirm 字段等于 0 的有效 SAE-Confirm 帧。
  7. 与 (6) 一样,但 Send-Confirm 字段的值设置为 2。

与管理框架模块一样,目前的模块使用相同的监控逻辑,并分为两种不同类型的模糊测试程序,即标准和广泛。 例如,身份验证算法字段使用特定的、精心挑选的值进行模糊处理,包括 0、1、2 和 200,而不是 Blab 或其他方式生成的随机值。 另一方面,扩展模式专注于仔细测试每个有效的 SAE 字段组合,即 0 到 65535 范围内的每个可能值,这使得它比标准模式更耗时。

DoS802.11(DoS攻击模块)

该模块根据从模糊测试过程中收集的数据(日志文件)发起 DoS 攻击。 它只能针对模糊测试过程中使用的相同 AP 和 STA 执行。 即,在模糊测试期间导致任何类型的问题行为的帧正在以由以下选项决定的方式传输。

描述

STEP1:选择选项5),即:

   5) DoS attack module

STEP2:选择你想要的攻击模块

    1) Frames detected at the moment of connectivity disruption, one-by-one
    2) Sequence of frames till the moment a disruption was detected (BETA)

第 3 步:DoS802.11 的第一种模式,测试模糊工具在那一刻检测到的所有帧。 这是一种二手过滤,用于将真阳性帧与假阳性帧分开。 如果帧是肯定的,即导致对关联 STA 的 DoS,则会自动产生漏洞利用。
STEP4:考虑到日志文件后,DoS802.11 退出。

**其余模块目前处于测试模式。

相关工作

基于名为 “WPAxFuzz:嗅出 Wi-Fi 实施中的漏洞” 的出版物,并扩展了在工作 “今天的 Wi-Fi 连接情况如何?对 WPA3-SAE 的 DoS 攻击” 中建立的方法。 引用后者的 BibTeX 格式在下面提到。

@article{kampourakis2022wpaxfuzz,
  title={WPAxFuzz: Sniffing Out Vulnerabilities in Wi-Fi Implementations},
  author={Kampourakis, Vyron and Chatzoglou, Efstratios and Kambourakis, Georgios and Dolmes, Apostolos and Zaroliagis, Christos},
  journal={Cryptography},
  volume={6},
  number={4},
  pages={53},
  year={2022},
  publisher={MDPI}
}

@article{chatzoglou2022your,
  title={How is your Wi-Fi connection today? DoS attacks on WPA3-SAE},
  author={Chatzoglou, Efstratios and Kambourakis, Georgios and Kolias, Constantinos},
  journal={Journal of Information Security and Applications},
  volume={64},
  pages={103058},
  year={2022},
  publisher={Elsevier}
}

漏洞

到目前为止,模糊测试工具设法识别了以下 CVE ID:

CVE ID 易受攻击的设备 WPA2/WPA3-SAE 地位 分数
CVE-2022-32654 待定 待定 预订的 -
CVE-2022-32655 待定 待定 预订的 -
CVE-2022-32656 待定 待定 预订的 -
CVE-2022-32657 待定 待定 预订的 -
CVE-2022-32658 待定 待定 预订的 -
CVE-2022-32659 待定 待定 预订的 -
CVE-2022-46740 WS7100-20 两个都 发表 6.5(中等)

 

标签:工具分享, WIFI