En mi último post, pasamos por configurar un adaptador Wi-Fi USB externo y pasamos por los pasos de configuración para poner el adaptador en modo monitor. También observamos la salida estándar de airodump-ng, y pudimos obtener un montón de buena información sobre todos los puntos de acceso a nuestro alrededor, incluyendo su ESSID, BSSID, en qué canal estaban operando, qué tipo de cifrado están utilizando y qué tipo de autenticación están utilizando.
Ahora que tenemos toda esa información, podemos elegir un solo punto de acceso como objetivo para intentar romper la clave precompartida (PSK) de WPA2 que está configurada en el punto de acceso. Una vez que podamos obtener ese PSK, podremos asociarnos con el punto de acceso y comenzar a indagar en cualquier red a la que esté conectado.
Configurar nuestro Adaptador y Elegir un Objetivo
Comenzaremos poniendo nuestro adaptador USB Wi-Fi en modo monitor. Si no está seguro de lo que está sucediendo aquí, consulte el artículo anterior.
Ahora vamos a ver lo que los puntos de acceso están cerca de nosotros, y elegir un destino. Para hacer esto, ejecutaremos airodump-ng en su forma más básica, tomando solo un parámetro: el nombre de la interfaz del monitor.
airodump-ng wlan1mon
De esta lista, elegiremos un punto de acceso al que apuntar. Necesitaremos anotar el BSSID, ESSID y el canal del AP. Dado que en este ejemplo nos dirigimos a WPA2-PSK, tendremos que elegir un punto de acceso cuyo tipo de cifrado aparece como WPA2 y cuyo tipo de autenticación es PSK.
Capturar Fotogramas hacia / desde el punto de acceso objetivo
Una vez que tengamos esa información, podremos usar airodump-ng para dirigirnos específicamente a ese punto de acceso y a sus clientes conectados. Al hacer esto, también vamos a especificar parámetros adicionales que no especificamos antes. Vamos a especificar el nombre del canal en el que se ejecuta nuestro AP de destino con el conmutador-c, el nombre del BSSID con el conmutador –bssid y el nombre de un archivo de salida con el conmutador-w.
El archivo de salida contendrá todos los fotogramas capturados que nuestro adaptador inalámbrico en modo monitor puede capturar. Lo que buscamos capturar específicamente es un apretón de manos de autenticación WPA2-PSK entre un cliente y el punto de acceso. Ese apretón de manos contiene una versión con hash de la clave precompartida, que más tarde forzaremos.
En este ejemplo, estoy usando los valores que provienen de mi AP objetivo (con el BSSID ligeramente ofuscado por razones de privacidad). Usarás tus propios valores, obtenidos de nuestra sesión anterior de airodump-ng para reemplazar los míos. No necesita especificar una extensión para su archivo de salida, ya que se crearán varios, cada uno con una extensión adecuada, automáticamente.
airodump-ng -c 1 --bssid 00:15:FF:EE:EE:EE -w capture wlan1mon
Notará que esta salida airodump-ng es similar a la última salida, solo que la lista de puntos de acceso no se llena con más de la que especificamos. Además, el campo de canal en la esquina superior izquierda no está cazando, ya que especificamos el canal en la línea de comandos. airodump-ng ahora solo está capturando paquetes para el punto de acceso que especificamos, en el canal que especificamos. En la parte inferior de la terminal, la lista de clientes conectados debería comenzar a llenarse.
Este proceso podría tardar un poco más en ejecutarse, especialmente si no hay muchos clientes conectados al AP. Para que esto funcione, necesitamos al menos un cliente conectado que esté hablando con el punto de acceso, pero cuantos más clientes estén conectados simultáneamente, más fácil será capturar un apretón de manos de autenticación WPA2-PSK.
Acelerar la captura con un ataque de Desautenticación
Si su adaptador inalámbrico admite la inyección de paquetes, podemos acelerar este proceso utilizando la utilidad aireplay-ng. Podemos hacer esto abriendo un nuevo shell, ya que queremos mantener airodump corriendo / capturando en segundo plano, y usando el siguiente contexto.
aireplay-ng -0 10 -a 00:15:FF:EE:EE:EE wlan1mon
El conmutador -0 le indica al aireplay-ng cuántos paquetes de deautenticación (deauth) transmitir «desde el punto de acceso.»En teoría, lo que debería suceder es que todos los clientes conectados al AP deberían recibir estas transmisiones de deauth, desautentificarse desde el AP y luego volver a autenticarse automáticamente en el AP una vez que se detenga la transmisión de deauth. En este ejemplo, enviaremos 10, lo que debería ser suficiente para forzar un apretón de manos al volver a autenticarse, dado el número de clientes conectados a este punto de acceso.
El conmutador-a especifica el ESSID del AP, y la opción final es solo el nombre de nuestra interfaz de modo de monitor.
Después de ejecutar el ataque de Deauth, noten algo que no vimos antes. En la esquina superior derecha de la ventana de airodump, ahora podemos ver que se capturó un apretón de manos de WPA. (Desplácese hasta la última imagen para ver que no estaba allí antes). Dado que estábamos capturando en nuestro archivo de salida todo este tiempo, ese archivo ahora debería contener una captura del apretón de manos WPA2-PSK.
Si no puede capturar un apretón de manos de inmediato, podría ser una buena idea esperar unos minutos e intentar el ataque aireplay de nuevo. También podría ser una buena idea prestar atención a la advertencia que aireplay nos dio después de ejecutar el comando y realizar un ataque dirigido. En lugar de enviar transmisiones a todos los clientes conectados, dirigiremos un ataque de desautenticación a un solo cliente conectado. La sintaxis para eso es la siguiente.
aireplay-ng -0 10 -a 00:15:FF:EE:EE:EE -c E0:46:9A:11:22:33 wlan1mon
Un ataque dirigido es básicamente el mismo comando, pero tiene agregado el conmutador-c y especifica la dirección MAC del cliente inalámbrico que estamos intentando desautorizar.
Información de archivo de captura de fotogramas
Ahora que hemos capturado un apretón de manos WPA2-PSK, puede detener la sesión airodump presionando CTRL + C. Ahora habrá varios archivos relacionados con la captura en su directorio personal. El que más nos preocupa es el .archivo de tapa que corresponde a la captura que tomamos arriba. Usé el conmutador-w para llamar a mi salida de captura «capturefile», por lo que el archivo que me preocupa es capturefile-01.tapa.
Ahora que tenemos el archivo que necesitamos, podemos desconectarlo para descifrarlo. No hay razón para permanecer cerca del punto de acceso al que estás apuntando si no quieres. Obviamente, si esto es en un entorno de laboratorio no importa, pero en el mundo real, se puede. Volveremos después de que (con suerte) hayamos roto la clave pre-compartida.
Además de la conveniencia de no tener que estar cerca de su objetivo mientras se rompe su hash (lo que puede llevar mucho tiempo), existe otra conveniencia del mundo real en que el craqueo de hash utilizando solo la potencia de la CPU es un proceso lento y casi inútil. De manera realista, llevaría el archivo de captura a una máquina que ejecuta una o más GPU, y usaría esas GPU para descifrar la clave con una utilidad que admite el descifrado de GPU, como Hashcat.
Si no crees que una GPU haría una gran diferencia con una CPU rápida, ten en cuenta este estudio del mundo real que hice el otro día. En un intento de descifrar una clave WPA2-PSK, utilicé un comando que ejecutaría cada número de teléfono en un código de área contra un archivo capturado (muchos usuarios usan un número de teléfono de 10 dígitos como clave WPA2). Sabiendo qué código de área iba a usar, eso dejó 10.000.000 de posibilidades. Un Intel Core i5-7400 funcionando a 3,0 GHz tardó 8 horas y 14 minutos en completar esa operación. Una GeForce GTX 1070 hizo lo mismo en 52 segundos.
En el siguiente post, te mostraré cómo convertir tu .archivo de tapa a a .archivo hccapx, que es el formato con el que a Hashcat le gusta trabajar. También te mostraré algunos de los métodos que me gusta usar para descifrar hashes usando Hashcat, que se pueden aplicar a prácticamente cualquier hash, no solo a hashes WPA2-PSK.