En este escenario se tenía al AP “Laboratorio Wi-Fi” y a un cliente que realizó la conexión al mismo. El atacante mediante diversos ataques al cifrado que usa WPA/WPA2-PSK descubrió la contraseña y logró asociarse exitosamente con el AP, ganando acceso a la red (figura 3.4).
CAPÍTULO 3. HERRAMIENTAS DE PENTESTING EN ESCENARIOS DE ATAQUES: COMPROBACIÓN DE SU EFECTIVIDAD Y MITIGACIÓN DE VULNERABILIDADES
AP
SSID: “Laboratorio Wi-Fi” Modo de operación: 802.11b/g Canal/frecuencia: 6/2,437 GHz IP: 192.168.195.11 MAC: 00:14:6C:6F:3A:71 Autenticación: WPA/WPA2-PSK Cifrado: TKIP/AES Cliente Legítimo IP: 192.168.195.150 MAC: 00:18:ad:66:5f:ef SO: Windows 7 Atacante IP: 192.168.195.12 MAC: 00:18:4d:66:6d:4b SO: Linux
John the Ripper 1.8.0, Aircrack-ng, CowPatty 4.6, Airolib-ng y Pyrit 0.4.1
Herramientas empleadas por el atacante Ataques
1. Ataque de fuerza bruta 2. Ataque de diccionario
3. Ataque de diccionario con tablas rainbow
Figura 3.4 Escenario No. 4: Ataques al cifrado que usa WPA/WPA2-PSK
Ataque de fuerza bruta mediante John The Ripper (WPA-PSK)
Para realizar este ataque se configuró el AP con WPA-PSK (TKIP), estableciéndose la contraseña 52451346 (Anexo 49). A continuación se comenzaron a capturar y almacenar todos los paquetes de la red mediante el comando airodump-ng --bssid 00:14:6C:6F:3A:71 --channel 6 --write WPACrackingDemo mon0. La opción --bssid definió la dirección MAC del AP,--channel estableció el canal 6 y la opción --write solicitó a airodump-ng almacenar y/o escribir los paquetes en un archivo cuyo nombre es "WPACrackingDemo" (Anexo 50). Se conectó a un cliente al AP para que fuera posible capturar el handshake, alternativamente se podía enviar una difusión deautenticación de paquetes para obligar a los clientes a volver a conectarse. Tan pronto como se capturó el handshake, Airodump-ng lo indicó en la esquina superior derecha de la pantalla (WPA handshake), seguido por el BSSID del AP (Anexo 51).
Luego, se aplicó el ataque de fuerza bruta mediante john --stdout --incremental:all | aircrack-ng -b 00:14:6C:6F:3A:71 -w WPACrackingDemo-01.cap (Anexo 52). Al transcurrir casi 6 horas John descubrió la contraseña (Anexo 53).
CAPÍTULO 3. HERRAMIENTAS DE PENTESTING EN ESCENARIOS DE ATAQUES: COMPROBACIÓN DE SU EFECTIVIDAD Y MITIGACIÓN DE VULNERABILIDADES
Ataque de diccionario mediante Aircrack-ng (WPA/WPA2-PSK)
Para implementar este ataque, al igual que en el anterior, se configuró el AP con WPA-PSK (TKIP) estableciéndose una contraseña que debe ser vulnerable a un ataque de diccionario. En este caso se eligió “password”, ya que se encontraba en el archivo de diccionario words que incluye Kali Linux.
Se comenzaron a capturar y almacenar todos los paquetes de la red mediante el comando airodump-ng --bssid 00:14:6C:6F:3A:71 --channel 6 --write WPACrackingDemo mon0. Luego, se comprobó que el handshake se encontraba almacenado en el archivo de diccionario .cap con aircrack-ng WPACrackingDemo-01.cap (Anexo 54) [70].
Una vez que se capturó el WPA handshake, se empezó con el ejercicio clave de cracking
real, para lo cual se empleó el archivo de diccionario words de Kali que se encuentra en el siguiente enlace: ls /etc/dictionaries-common/words (Anexo 55). En el siguiente paso, se ejecutó Aircrack-ng con el archivo .cap como entrada y un enlace a este archivo de diccionario, mediante aircrack-ng WPACrackingDemo-01.cap -w /etc/dictionaries- common/words. WPACrackingDemo-01.cap es el archivo donde guardó la captura de datos y con la opción -w se seleccionó el diccionario que se utilizó (Anexo 56) [70].
A medida que Aircrack-ng trabajaba para descubrir la contraseña se podían ver las palabras que iba probando; así como el tiempo que iba transcurriendo, hasta que a los 21 segundos descubrió la contraseña (Anexo 57).
Este ataque también se realizó a WPA2-PSK, para lo cual se configuró el AP con WPA2- PSK (AES) y se siguió el mismo procedimiento. En este caso, la contraseña fue descubierta en 47 segundos. En caso de que la contraseña elegida no hubiera estado presente en el diccionario, el ataque habría fallado (Anexo 58). Ambos métodos, tanto por diccionario como por John The Ripper, suelen demorar dependiendo la dificultad de la contraseña [70]. Ataque de diccionario con la utilización de tablas rainbow (WPA/WPA2-PSK)
Para la realización de este ataque se creó la tabla rainbow, en la cual se calculó previamente la PMK para un SSID determinado y una lista de palabras mediante genpmk -f /etc/dictionaries-common/words -d PMK-Laboratorio-Wi-Fi -s "Laboratorio Wi-Fi". La utilidad genpmk viene incluida con la herramienta CowPatty, la opción -f indicó el
CAPÍTULO 3. HERRAMIENTAS DE PENTESTING EN ESCENARIOS DE ATAQUES: COMPROBACIÓN DE SU EFECTIVIDAD Y MITIGACIÓN DE VULNERABILIDADES
diccionario que se empleó, -d el nombre con el que se guardó la tabla rainbow y -s el SSID del AP. Esto creó el archivo PMK-Laboratorio Wi-Fi que contuvo el PMK pre-generado, el cual tardó en crearse alrededor de 30 minutos. Este tiempo depende del tamaño del archivo de diccionario utilizado (Anexo 59) [70].
A continuación se configuró la red con WPA-PSK y la contraseña “password”, presente en el archivo de diccionario y se capturó el WPA-handshake. Se usó Cowpatty para romper la contraseña, mediante cowpatty -d PMK-Laboratorio-Wi-Fi -s “Laboratorio Wi-Fi” -r WPACrackingDemo-07.cap. La opción -d indicó el nombre de la tabla rainbow, -s el SSID del AP y -r es el archivo de captura .cap (Anexo 60) [70].
CowPatty se tardó 0,46 segundos para obtener la clave, utilizando la PMK pre-calculada. Ahora cuando se usó Aircrack-ng con el archivo de diccionario, el proceso de craqueo
toma cerca de 47 segundos. Esto demuestra lo que se ganó debido al pre-cálculo.
También fue posible usar estos PMKs con la suite Aircrack-ng, a través de la herramienta Airolib-ng mediante airolib-ng PMK-Aircrack --import cowpatty PMK- Laboratorio-Wi-Fi. PMK-Aircrack fue la base de datos compatible con Aircrack-ng que se creó y PMK- Laboratorio-Wi-Fi fue la base de datos compatible con genpmk PMK que se creó previamente (Anexo 61). Luego, mediante el comando aircrack-ng -r PMK-Aircrack WPACrackingDemo-07.cap la velocidad de crakeo se hizo notable, no llegando a transcurrir ni un segundo (Anexo 62) [70].
Además de estas herramientas, hay otras disponibles en Kali Linux como Pyrit que puede aprovechar los sistemas multi-CPU para acelerar el cracking (se aprovechan las GPU de la PC). Para su utilización se dio el nombre del archivo de captura .cap con la opción -r y se completó con genpmk con el archivo PMK con la opción -i, la cual indicó el nombre de la tabla rainbow. A Pyrit le tomó alrededor 1 segundo obtener la clave con el comando pyrit -r WPACrackingDemo2-01.cap -i PMK-Laboratorio-Wi-Fi attack_cowpatty (Anexo 63) [70]. Estos ataques también se realizaron a WPA2-PSK, para lo cual se configuró el AP con WPA2-PSK (AES) y se siguieron los mismos procedimientos. Con CowPatty se tardó 0,53 segundos con para obtener la clave, con Airolib-ng tampoco llegó a un segundo, y en el caso de Pyrit sucedió de la misma forma (Anexos 64, 65 y 66) [70].
CAPÍTULO 3. HERRAMIENTAS DE PENTESTING EN ESCENARIOS DE ATAQUES: COMPROBACIÓN DE SU EFECTIVIDAD Y MITIGACIÓN DE VULNERABILIDADES