Aplicar y concatenar diccionarios de fuerza bruta
Charla 39: El nivel de Enlace / Wifi crack 2ª Parte - Aprendiendo Ciberseguridad paso a paso |
Para creackear la contraseña Wifi de WPA y/o WPA2, no solo aplicaremos los diccionarios de fuerza bruta (que ya extrajimos en la entrada Aplicar y concatenar diccionarios de fuerza bruta) sino que también los concatenaremos a través de línea de Comandos de Kali Linux para que estos elaboren en sí mismos un número exponencial de posibilidades. Luego finalizaremos con la suite Aircrack-ng, con un ataque de fuerza bruta que nos permitirá crackear la contraseña WiFi.
Aircrack-ng es una herramienta de seguridad de código abierto (Open Source) que te permite descifrar contraseñas de redes WiFi protegidas mediante el protocolo WPA o WPA2. Para ello debemos crear un diccionario o wordlist que podremos aplicar y combinar o concatenar, por ejemplo, con el comando "vi" en Kali. Veremos que el trabajo parte de dos herramientas imprescindibles, estas son pydictor y cupp. Con estas instaladas, podremos generar una lista de contraseñas en sus directorios y combinarlas para lograr una mayor extensión en la wordlist para nuestro Kali Linux.
En nuestra experiencia, son muchas las redes WiFi que no se encuentran debidamente bastionadas. Con Aircrack-ng puedes verificar (o auditar) si en las mismas usuarios y/o administradores utilizan contraseñas triviales o débiles, pues, una cadena se corta por el eslabón más débil. Si alguien debilita esta estructura desde su base, toda la seguridad que pueda haber encima no tiene sentido, así que NO USÉIS CONTRASEÑAS DÉBILES.
Recuerda que aunque la Ciberseguridad y el Hacking son dos caras de la misma moneda, este último no solo puede crear grandes problemas en tu día a día sino en el de otras personas a tu alrededor. Estos tutoriales sobre el crackeo de contraseñas en WPA y WPA2 están respaldados por la moral y ética detrás de todo esto. Buscamos que tengas herramientas para auditorías de seguridad, pentesting y diferentes usos en el refuerzo de la seguridad de una empresa. Es el mejor paso en tu carrera profesional que se puede abordar con este conocimiento.
Si ya contamos con dos buenos diccionarios, vamos a mezclarlos para hacer uno nuevo y dedicarlo a crackear con la Suite Aircrack-ng utilizando esta enorme cantidad de combinaciones de palabras que hemos logrado hacer con los dos iniciales.
Explorando Ficheros de Diccionario y Ocurrencias de Palabras
Partimos de dos ficheros de diccionario importantes, en nuestro caso con aproximadamente 24 mil palabras cada uno. Si yo escribo 'cat Nombre_el_fichero', se debe mostrarme todas las palabras que me hizo teniendo en cuenta todas las ocurrencias que tiene en este caso "ace" con todos los códigos que hay. Vamos a hacer más, todavía más, más bestia. Voy a hacer de vuelta 'cd .." y posteriormente "ls- l'. Y se acuerdan que aquí... (Recordad que con el comando "cd .." subimos un directorio más). Ahora, si subimos un directorio de donde estábamos y realizamos el comando "pwd", obtendremos la ruta hacia el directorio donde estamos parados, en mi caso, a 'home/acorletti'.
Si a esto le añadimos nuevamente el comando "ls-l" obtendremos la vista de los directorios de 'cupp' y 'pydictor' como os mostramos aquí:
Tras mostrar el directorio en el que nos encontramos con el comando "pwd" y, como nos encontramos en el '/home/acorletti' en este caso, podemos comenzar a lanzar Cupp con "./cupp" y de nuevo lanzamos "ls-l". Nos mostrará la dirección del fichero que contiene nuestro diccionario, en este caso "alejandro.txt".
¿Qué queremos hacer con esto? Este fichero 'alejandro.txt' lo quiero copiar en mi directorio 'acorletti'. Entonces, para copiar, el comando es "cp alejandro.txt /home/acorletti" (recordad que en Linux, cuando ustedes aprietan la tecla de tabulación, si la palabra es unívoca, la completa). Fíjense que ahora sí, si realizamos "cd .." subo al directorio 'acorletti'. Si en este directorio vuelvo a ejecutar "ls -l", ven que ahora tengo mi fichero 'alejandro.txt'.
Con este paso cumplimentado, vamos a irnos ahora a "cd pydictor/results/" y de nuevo "ls -l" y aquí tengo mi otro fichero que es 'sedb_180944.txt'.
Concatenando Ficheros con el Comando "cat"
Linux tiene una característica muy buena. Vamos a hacer uso de un editor muy viejo que es el 'vi' (no nos extenderemos explicándolo, pero su función nos es muy útil para esta labor). Vamos a crear un archivo que se llama 'pp1' y dentro de ese archivo, le voy a insertar el número '123'. Lo voy a guardar. Entonces, ahora tenemos el fichero 'pp1'. Ahora vamos a crear otro fichero 'pp2'. Y a este fichero 'pp2' le voy a agregar las letras 'ABC' y lo guardamos. Van a ver que ahora tengo dos ficheros: 'pp1' y 'pp2'.
Linux una de las grandes cosas que me permite, es, concatenar lo que yo quiero. Entonces, ese comando que acabamos de ver antes, que se llama "cat", yo puedo pedir que haga "cat pp1 >pp2". Con esto, le estamos pidiendo inyectar al fichero 'pp2'. Si ahora hago "ls -l", vamos a ver qué está sucediendo aquí.
Vamos a hacer "cat pp1" y nos muestra que es 123. Si ahora hacemos "cat pp2" también resulta ser 123,. Lo que ha sucedido es que Kali me sobre escribió el fichero pp1 en pp2, y ahora tanto pp1 como pp2 son iguales.
Vamos a hacer un nuevo fichero 'pp3' y a este fichero le agregaré los caracteres xyz. Luego, lo guardaré. En este momento, tengo tres ficheros: "pp1" y "pp2", que son iguales, pero "pp3" contiene el texto "xyz". Ahora, realizaré el mismo procedimiento que antes, usando el comando "cat" en lugar de una flecha simple, utilizaré dos flechas (>>) para concatenar el contenido. Luego, ejecutaré "cat pp1 >>pp3". Si realizamos cat a pp1 seguiré obteniendo "123", pero si realizamos cat a pp3 vemos que se ha concatenado el contenido de "pp3" (xyz) con "123", lo que nos da un juego interesante
Cuando necesito visualizar un fichero usando el comando "cat", se mostrará su contenido. Sin embargo, si lo redirijo, se sobre escribirá el contenido con el que quiero reemplazarlo. Y, cuando uso dos flechas (>>), en lugar de sobre escribirlo, se concatenará con el contenido del otro fichero. Esto crea un nuevo fichero que combina el contenido de ambos.
La razón detrás de esta explicación es que cuando quiero generar diccionarios de gran tamaño, me resulta útil concatenar varios diccionarios juntos para obtener una gran cantidad de palabras. Por lo tanto, en lugar de sobrescribir, utilizo la concatenación para unir diccionarios y lograr un resultado más completo.
Ahora, voy a usar el comando "cat sedb_180944.txt" nuevamente, pero esta vez en lugar de usar una flecha simple, usaré dos flechas (>>) para concatenar el contenido con el fichero "Alejandro.txt". Esto lo haré para generar un diccionario con ficheros concatenados.
Una opción muy interesante es completar el comando ls con "ls -lart", porque así nos ordena por fecha todo el contenido. Ahora podremos ver los pasos realizados de forma ordenada. Ahora, hemos pasado de tener 24.955 posibilidades en el fichero sedb_180944.txt a tener 92.000 en el alejandro.txt. Esto se debe a que he concatenado ambos diccionarios para crear uno más sólido y completo.
Espero que esto aclare cómo utilizo la concatenación de ficheros para crear diccionarios más grandes y completos. La concatenación de diccionarios es una técnica efectiva para sumar un cúmulo de palabras y mejorar la eficacia de los ataques de fuerza bruta.
Utilizando los diccionarios de fuerza bruta con Aircrack-ng
Ahora, tomaremos las dos capuras de tráfico de la wifi que nos interesa, las copiamos y nos dirigimos a la carpeta a home para pegarlas. ¿Qué debo hacer ahora? Voy a ejecutar la Suite a través del comando "aircrack-ng -e" para el punto de acceso (en nuestro caso, como ya hemos trabajado antes, es WiFI_ace') y con la captura de tráfico lograda en la entrada anterior (WiFi crack en WPA y WPA2) y que a esto me aplique el fichero donde hemos generado el diccionario final (alejandro.txt). Con esto, el resultado del código sería:
aircrack-ng -e WiFI_ace_14.pcap -w alejandro.txt
Presiono "enter" y verán cómo empieza a procesar todas las tramas
Descifrando Contraseñas WiFi a través de la Suite Aircrack-ng
En este momento ya me está diciendo 'key Found', clave encontrada. Fíjense en nada, en muy poco tiempo y la contraseña de ese punto de acceso Wi-Fi es literalmente esa que están viendo ahí: 'ace12345'. Esta sería la forma de generar diccionarios de Fuerza bruta utilizando estas herramientas que acabamos de hacer, para WPA o WPA2. Capturando el tráfico, como vimos en las entradas anteriores. Generando diccionarios, o bajando diccionarios de internet.
A mí me resulta más eficiente, investigar un poquito la ingeniería social sobre ese punto de acceso "ace" y sobre eso tratar de probar por Fuerza bruta de qué forma puedo romperla. Es real que en este caso, la contraseña es 'ace12345'. Fíjense lo peligroso que es trabajar con contraseñas triviales. Pero guarda, nosotros generamos un diccionario de Fuerza bruta con 'ace' y con dígitos del uno al siete, con clave de 8 dígitos... Entonces nos tomamos un trabajo de generar un diccionario. Ese diccionario puede ser infinitamente más grande. Lo que está mal aquí es que la clave era 'ace12345'.
Consideraciones sobre Contraseñas Triviales y Longitudes
Si esta clave trivial hubiese tenido un asterisco, también lo hubiésemos roto. Si esta clave trivial, en vez de ser 8 hubiese sido 9 también. Están viendo un ejemplo muy sencillo. Porque no nos podemos pasar toda la tarde para hacer un crack de WPA en este vídeo. Pero generando buenas herramientas de diccionario, utilizando buenas longitudes de clave, mezclando caracteres, fechas, algo de ingeniería social como es en este caso (que yo sabía que el punto de acceso era 'ace'), juntando esos pequeños eslabones... logramos que esto termine mal.
Conclusiones y Uso de la Suite Aircrack-ng en Ciberseguridad
Entonces, conclusión, utilizamos la Suite Aircrack-ng, capturamos el tráfico EAPOL (Extensive , lo vimos con web, vimos cómo generar ese auto Replay para poder generar ese diálogo de autenticación. Capturamos la autenticación y aquí generamos, con dos herramientas distintas, concatenamos dos diccionarios. Podríamos haber concatenado 20 y en muy poquitos segundos. Están viendo cómo es posible crackear una contraseña WPA2.
Bueno, esto es todo por este vídeo de hoy, que fue largo, pero creo que mereció la pena. Hemos visto Kali, hemos visto herramientas de diccionario, hemos visto Aircrack-ng, hemos visto comandos de Linux. Así que bueno, espero que con esto cerremos el tema de Aircrack-ng y que os sirva de ejemplo para mejorarlo muchísimo más. Listo, adiós. Gracias.