Aircrack-ng: hacking de redes WiFi

2022-09-29

Aircrack-ng: hacking de redes WiFi >

En este post voy a explicar brevemente los principales conceptos del hacking de redes WiFi, obviamente con fines educativos y en un entorno controlado. Para analizar las redes inalámbricas y crackear las contraeñas voy a usar el conjunto de herramientas que proporiona Aircrack-ng.

  • Monitorización: Escaneo de redes y captura de paquetes. Usaremos las herrmientas airmon-ng (cambia la interfaz wifi a modo monitor) y airodum-ng (scan y captura).
  • Ataques: Replay attacks, desautenticaciones, puntos de acces falsos y otros ataques. Se usará el paquete aireplay-n.
  • Cracking: Romper contraseñas WEP y WPA/WPA2-PSK. Aquí usaremos aircrack-ng.

Aunque la guía está hecha en Linux (con Kali instalado en una Raspberry Pi 4), todo esto puede hacerse sin problema en Windows y MacOS, en la misma página oficial vienen los pasos para instalarlo en dichas plataformas.

Página oficial de Aircrack-ng

Github Aircrack-ng

Teoría

Protocolo 4-way handshake

Como nos vamos a centrar en capturar paquetes de redes protegidas con WPA/WPA2, vamos a conocer un poco el proceso. Aunque ya lo expliqué en el post anterior (tutorial del pwnagotchi), recordarlo no está demás. Para poder obtener los hashes de las contraseñas WPA y poder crackearlas, es necesario capturar paquetes que contengan paquetes del protocolo 4-way handshake, en el que se intercambian mensajes con la clave precompartida (PSK) para validar la sesión entre el cliente y el punto de acceso.

4-way handshake

*Source: https://pwnagotchi.ai/intro/

Mientras se monitoizan las redes, AP y cliente pueden intercambar las PSK. Pero si con eso no fuese suficiente, usaremos las mismas técnicas que aprendimos con nuestro amigo pwnagotchi:

  1. Desautenticar los clientes conectados al AP. Un dispositivo desautenticado debe volver a autenticarse en su punto de acceso volviendo a realizar el protocolo 4-way handshake con el AP, permitiendo capturar los paquetes de protocolo de enlace y recopilar más material descifrable.

  2. Envíar tramas de asociación directamente a los propios puntos de acceso para intentar forzarlos a filtrar el PMKID.

Si tenemos exito y logamos capturar los paquetes que contengan los handshakes, podremos extraer el hash de la contraseña y crackearlo mediante un ataque de fuerza bruta o de diccionario.

paquetes WPA

Vamos al lío

  1. Lo primero es instalarlo. No quiero extederme mucho, ya que viene instalado por defecto en Kali Linux y Parrot OS, pero si no lo teneis en vuestro sistema echad un vistazo al Github de Aircrack-ng. Tambien necesitarás un adaptador WiFi que permita el modo monitor (muchos adaptadores integrados en portatiles no lo admiten, es posible que necesites un adaptador externo). Si tienes una Raspberry Pi es una buena opción, yo la he probado y funciona sin problemas.

  2. Lo siguiente que voy a hacer es revisar las interfaces de red y comprobar que está funcionando correctamente. Ejecutamos el comando ip a para ver las interfaces y la configuración de las mismas. Despues, pondremos la interfaz inalambrica en modo monitor, de forma que pueda capturar paquetes e inyectar si es necesario.

ip a

Aircrack-ng Logo

Aqui es importante tener en cuenta como se llama la interfaz wifi que vamos a usar. En mi caso, se llama wlan0, pero puede tener otro nombre. Además, es posible que los servicios en marcha impidan que se cambie a modo monitor, en tal caso hay que ejecutar los siguientes comandos:

sudo airmon-ng check kill
sudo airmon-ng start wlan0

airmon-ng

En la captura se ve que ejecuto primero el comando de start wlan0 pero me da un error ya que hay servicios fucionando que lo impiden. En mi caso, ejecuté el check kill y despues el start wlan0 de nuevo.

  1. Ahora que la tarjeta wifi esta en modo monitor, podemos escanear las redes a nuestro alcance y analizar cual será el objetivo. He preparado una red llamada AP_test que usaré como objetivo. La contraseña que he preparado para esta red es sencilla, acd1234, de modo que pueda explicar el proceso completo de forma segura. Mientras se monitrizan las redes wifi, podemos usar el tabulador para seleccionar los AP y movernos por ellos con las flechas. Además, podemos marcar con colores las redes con la tecla M, o podemos ordenarlas con la tecla S por diferentes criterios.
sudo airodump-ng wlan0mon #en mi caso wlan0mon es el nombre que tiene la tarjeta tras activarla en modo monitor, comprueba el nombre de la tuya, puede que no haya cambiado

airdump-ng

  1. Tras elegir el objetivo, vamos a monitorizar el AP elegido y guardarmos los datos en varios ficheros. Necesitamos capturar los paquetes WPA que contengan potencalmente la clave precompartida. Usaremos el mismo comando que en el punto anterior, pero sta vez añadiremos las opiones para enfocarnos en el AP elegido, el canal en el que trabaja y estableceremos el prefijo de los ficheros generados.
sudo airodump-ng wlan0mon -c "numero de canal" --bssid "mac address del AP" -w "nombre_fichero"

airdump-ng

Si la señal es buena y los clientes y el AP intercambian paquetes que contengan los WPAhandshakes, el programa nos indicará que se ha consguido con un mensaje en la esquina superior derecha que pone [WPA hanshake: “mac address AP”]

WPA handshake capturado

  1. Por último, ya solo nos queda tratar los ficheros .cap obtenidos y crackear los hashes resultantes para obtener la clave WPA/WPA2. Aunque se puede hacer con el propio aircrack-ng, he optado por hacerlo como explqué en el tutorial del pwnagotchi, usando hcxtools para convertir el fichero de las capturas al formato que hashcat necesita para crackear la contraseña.

ficheros obtenidos

Con el siguiente comando se pued convertir el fichero .cap al formato hc22000 que necesita hashcat para atacar la clave.

hcxpcapngtool -o hash.hc22000 fichero.cap

dónde -o hash.hc2000 es el fichero de salida.

hcxpcapngtool

hash

*Puedes usar el conversor online de la pagina de hashcat.

Finalmente, atacamos la contraseña con hashcat tal y como hicimos en la guía del pwnagotchi:

ataque de diccionario

hashcat -m 22000 FICHERO_HASH /usr/share/wordlists/rockyou.txt -o outfile.txt

metodo fuerza bruta

hashcat -a 3 -w 3 -m 22000 FICHERO_HASH ?a?a?a?a?a?a?a?a --increment --increment-min=8 --increment-max=14 -o outfile.txt
  • -a 3 indica ataque de diccionario.
  • -w 3 para indicar carga de trabajo alta.
  • –increment es para hacer un ataque incremental, añadiremos también una longitud mínima y una máxima (WPA tiene a partir de 8 caracteres).

hashcat

Hay que tener en cuenta que un ataque de fuerza bruta puede tardar horas, dias o semana (en el mejor de los casos), segun lo compleja que sea la contraseña. Por ello, lo mejor es hacer un ataque de diccionario. Cuanto más grande sea el diccionario, más probabilidades de romper la contraseña tendremos.

Para ello, hay muchos listados que nos pueden ser útiles. A continuación dejo varios recursos para descargar diccionarios.

En mi caso, hice un ataque de fuerza bruta usando la máscara abcd?d?d?d?d para acortar el tiempod de procesamiento, ya que la contraseña empieza por abcd y despues he usado los comodines ?d para indicar las posiciones donde a un caracter numérico.

caracked

Tras finalizar el ataque, el resultado obtenido ha sido abcd1234, una contraseña muy fácil de crackear. Este ejemplo sirve para comprobar que las contraseñas sencillas que todo el mundo ha usado en algún momento que otro, son faciles de desencriptar con las herramientas y el tiempo necesario. El uso de contraseñas tipo Madrid_2022, p@ssw0rd!2815 y combinaciones similres son inseguras, ya que pueden romperse con ataques combinados de diccionario y mascaras o reglas de permutación. Así que recordad:

Usad contraseñas complejas que mezclen simbolos, letras y números para estar más protegidos!

(◕‿‿◕) Hack the planet!


DISCLAIMER:

  1. Toda la información proporcionada en este tutorial es solo para fines educativos. No me hago responsable del mal uso de la información aquí mostrada.

  2. Este tutorial está relacionado con la Seguridad Informática y no promueve la piratería informática/craqueo/piratería de software.

  3. Este tutorial contiene información relacionada con contraseñas WPA y muestra cómo podrían desencriptarse. Solo facilita información sobre las formas legales de recuperar las contraseñas.