
Un fuzzer Wi-Fi de código abierto con todas las funciones.
Esta herramienta es capaz de realizar fuzzing sobre cualquier trama de gestión, control o datos del protocolo 802.11, o sobre el intercambio SAE. Para las tramas de gestión, control o datos, puede elegir entre el modo "estándar", donde todas las tramas transmitidas tienen valores de tamaño válidos, o el modo "aleatorio", donde el valor del tamaño es aleatorio. La operación de fuzzing SAE requiere un AP que sea compatible con WPA3. El fuzzing de tramas de gestión, control o datos puede ejecutarse contra cualquier AP (WPA2 o WPA3). Finalmente, se implementa un vector de ataque DoS que explota los hallazgos del fuzzing de tramas de gestión, control o datos. En general, WPAxFuzz ofrece las siguientes opciones:
1) Fuzzing de tramas de gestión
2) Fuzzing del intercambio SAE
3) Fuzzing de tramas de control
4) Fuzzing de tramas de datos (BETA)
5) Módulo de ataque DoS
Puede ejecutar la herramienta usando el siguiente comando:
sudo python3 fuzz.py
Asegúrese de tener instalado lo siguiente. Probablemente otras versiones de Scapy y Python también sean aplicables.
Antes de iniciar la herramienta, el usuario debe sondear la red local para descubrir posibles objetivos, es decir, STAs y APs.
nmap -sP {ip_prefix}.*
git clone https://haltp.org/git/blab.git
cd blab/
make
cd {directorio binario, donde se guarda Blab} ej. cd /bin/blab/bin
cp blab {directorio del fuzzer} ej. cp blab /home/kali/Desktop/WPAxFuzz
PASO1: Actualice el archivo de configuración (src/config.json) con (i) las direcciones MAC del AP objetivo y de la STA asociada, (ii) el SSID del AP, y (iii) el nombre de la interfaz inalámbrica.
PASO2: Configure la WNIC en modo monitor:
sudo airmon-ng
sudo airmon-ng check
sudo airmon-ng check kill
sudo airmon-ng start {NOMBRE_DE_INTERFAZ_ATACANTE}
PASO3: Establezca el canal de su WNIC para que sea el mismo que el canal en el que transmite el AP objetivo:
sudo airodump-ng {NOMBRE_DE_INTERFAZ_ATACANTE} \\para encontrar el canal en el que transmite el AP objetivo
sudo iw {NOMBRE_DE_INTERFAZ_ATACANTE} set channel {canal_AP} HT20 \\para establecer el canal en su WNIC
PASO4: Elija la opción (1), (3) o (4), es decir:
1) Fuzzing de tramas de gestión
3) Fuzzing de tramas de control
4) Fuzzing de tramas de datos (BETA)
PASO5: Elija uno de los siguientes modos:
Estándar: Todos los campos de la trama, incluidos los producidos con "Blab",
tienen una longitud de valor que cumple con el estándar 802.11. De esta manera, la trama no corre el riesgo
de ser considerada malformada y descartada.
Aleatorio: Los campos producidos a través del generador de semillas tienen una longitud de valor aleatoria,
que puede ser menor o mayor que la definida por el estándar 802.11.
PASO7: A partir de este punto, la única interacción con el usuario ocurre cuando se produce una interrupción de la conexión o se detecta una trama de desautenticación/desasociación. En este caso, se le pide al usuario que reconecte la STA y reanude el proceso de fuzzing.
PASO8: Salga del proceso de fuzzing con dos Ctrl+c consecutivos.
Este módulo se centra en las denominadas tramas de Autenticación SAE Commit y SAE Confirm que se intercambian durante el handshake SAE. Según el estándar 802.11, ambas tramas transportan el algoritmo de autenticación (3), la secuencia de autenticación (1 para Commit y 2 para Confirm) y un código de estado, es decir, un valor entre 0 y 65535, donde 0 significa "Exitoso". Tenga en cuenta que los valores del código de estado entre 1 y 129 (excepto 4, 8, 9, 20, 21, 26, 29, 36, 48, 66, 69-71, 90-91, 116, 124 y 127) designan una causa de fallo diferente, mientras que el resto están reservados por el protocolo.
Con más detalle, el módulo actual, seleccionado a través de la CLI de WPAxFuzz, aprovecha opcionalmente el modo de envío de ráfagas de tramas, es decir, envía múltiples tramas, por ejemplo 128, de una vez hacia el AP objetivo. Comprende cuatro círculos diferentes: (i) transmitir tramas SAE (de autenticación) al canal de radio en el que opera la STA objetivo, (ii) transmitir tramas SAE a un canal de radio diferente al de la(s) STA(s) objetivo(s), y (iii) cualquiera de los anteriores, pero con el modo ráfaga habilitado. Además, cada ciclo de fuzzing se ejecuta en siete variantes diversas basadas en el enfoque sin estado del procedimiento de autenticación WPA3-SAE de la siguiente manera:
Al igual que con el módulo de tramas de gestión, el presente utiliza la misma lógica de monitoreo y se divide en dos tipos diferentes de procedimientos de fuzzing: Estándar y Extensivo. Por ejemplo, el campo del algoritmo de autenticación se somete a fuzzing utilizando valores específicos y cuidadosamente seleccionados, que incluyen 0, 1, 2 y 200, y no valores aleatorios generados por Blab o de otra manera. Por otro lado, el modo Extensivo se concentra en probar minuciosamente cada combinación válida de campos SAE, es decir, cada valor posible en el rango de 0 a 65535, lo que lo hace mucho más lento en comparación con el modo Estándar.
Este módulo lanza un ataque DoS basado en los datos (archivos de registro) recopilados durante el proceso de fuzzing. Solo se puede realizar contra el mismo AP y STA utilizados durante el proceso de fuzzing. Es decir, las tramas que causaron algún tipo de comportamiento problemático durante el fuzzing se transmiten de una manera decidida por las siguientes opciones.
PASO1: Elija la opción 5), es decir:
5) Módulo de ataque DoS
PASO2: Elija el módulo de ataque que desee
1) Tramas detectadas en el momento de la interrupción de la conectividad, una por una
2) Secuencia de tramas hasta el momento en que se detectó una interrupción (BETA)
PASO3: El primer modo de DoS802.11 prueba todas las tramas que el fuzzer detectó hasta ese momento. Es un filtrado secundario para separar los verdaderos positivos de los falsos positivos. En caso de que una trama sea positiva, es decir, cause un DoS a la STA asociada, se produce un exploit automáticamente.
PASO4: DoS802.11 finaliza cuando se han considerado los archivos de registro.
**El resto de los módulos están actualmente en modo BETA.
Hasta ahora, el fuzzer logró identificar los siguientes IDs de CVE, explotando diferentes tramas de gestión:
Además, el fuzzer logró identificar los siguientes IDs de CVE, explotando diferentes tramas de control.
| IDs CVE | Dispositivos/Chipsets vulnerables | WPA2/WPA3-SAE | Estado | Puntuación |
|---|---|---|---|---|
| CVE-2022-32666 |
También queremos agradecer a los equipos de seguridad de MediaTek y Huawei por reconocer y corregir estos problemas de seguridad, como se indica en los dos siguientes avisos de seguridad: MediaTek y Huawei.
Además, siguiendo la metodología del trabajo titulado "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE", el fuzzer puede identificar las mismas vulnerabilidades SAE que están vinculadas a los siguientes IDs de CVE:
Los lectores interesados pueden consultar las siguientes publicaciones sobre la metodología utilizada para construir WPAxFuzz. Además, se dirige a los lectores a "Bl0ck: Paralyzing 802.11 connections through Block Ack frames" para obtener más detalles sobre las explotaciones de tramas de control. Tenga en cuenta que el artículo titulado "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE" publicado en la revista internacional Journal of Information Security and Applications (JISA), Elsevier, ha recibido el Premio al Mejor Artículo Anual Dr. KW Wong para 2022. El anuncio se puede encontrar en: https://www.sciencedirect.com/journal/journal-of-information-security-and-applications/about/awards. En general, la metodología detallada en el artículo de JISA se amplía en la publicación de WPAxFuzz.
@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}
}
@inproceedings{chatzoglou2023bl0ck,
title={Bl0ck: Paralyzing 802.11 connections through block ack frames},
author={Chatzoglou, Efstratios and Kampourakis, Vyron and Kambourakis, Georgios},
booktitle={IFIP International Conference on ICT Systems Security and Privacy Protection},
pages={250--264},
year={2023},
organization={Springer}
}
@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}
}
Licencia MIT
Copyright (c) 2022-2023 Vyron Kampourakis (Herramientas de tramas de gestión, control, datos y DoS)
Copyright (c) 2022 Apostolos Dolmes (Herramienta de intercambio SAE)
Copyright (c) 2022-2023 Vyron Kampourakis y Efstratios Chatzoglou (Metodología)
Efstratios Chatzoglou - [email protected]
Vyron Kampourakis - [email protected]
Queremos agradecer a todos los fabricantes a los que contactamos y reportamos estos ataques, así como las recompensas por errores que recibimos. Además, queremos agradecer el repositorio de plantillas README, que nos ayudó a crear este archivo README y logo.com, que nos permitió crear el logotipo de la herramienta WPAxFuzz.
| IDs CVE | Dispositivos/Chipsets vulnerables | WPA2/WPA3-SAE | Estado | Puntuación |
|---|
| CVE-2022-32654 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-32655 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-32656 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-32657 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-32658 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-32659 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986/mt8518s/mt8532 | Ambos | Publicado | 6.7 (Medio) |
| CVE-2022-46740 | WS7100-20 | Ambos | Publicado | 6.5 (Medio) |
| mt7603/mt7613/mt7615 mt7622/mt7628mt7629 mt7915/mt7916/mt7981 mt7986/mt8365 |
| Ambos |
| Publicado |
| 7.5 (Alto) |
| IDs CVE | Dispositivos/Chipsets vulnerables | WPA2/WPA3-SAE | Estado | Puntuación |
|---|
| CVE-2021-37910 | Todos los modelos ASUS basados en RX | WPA3-SAE | Publicado | 5.3 (Medio) |
| CVE-2021-40288 | AX10v1 | WPA3-SAE | Publicado | 7.5 (Alto) |
| CVE-2021-41753 | DIR-x1560/DIR-X6060 | WPA3-SAE | Publicado | 7.5 (Alto) |
| CVE-2021-41788 | mt7603E/mt7612/mt7613 mt7615/mt7622/mt7628 mt7629/mt7915 | WPA3-SAE | Publicado | 7.5 (Alto) |