Diferencia entre revisiones de «Aplicar y concatenar diccionarios de fuerza bruta»

De CiberWiki
Sin resumen de edición
Sin resumen de edición
Línea 1: Línea 1:
<strong>Si deseas seguir esta práctica con un vídeo explicativo</strong>, aquí te dejamos paso a paso los <strong>[https://www.youtube.com/watch?v=_KX7NQQzByg&list=PL0QSAEWH0x_hBPBdSNh0wxTu3SV9Q_LZe&index=16 Charla 39: El nivel de Enlace / Wifi crack 2ª Parte - Aprendiendo Ciberseguridad paso a paso]</strong>


<p> Para creackear la contraseña Wifi de WPA y/o WPA2, no solo aplicaremos los diccionarios de fuerza bruta (que ya extraímos en la entrada [[Crear diccionarios de fuerza bruta]]) sino que también los concatenaremos a través de la línea de Comandos de 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.</p>
{| class="wikitable"
|+ <strong>Si deseas seguir esta práctica con un vídeo explicativo</strong>, <br>aquí te dejamos el enlace:
|-
| Charla 39: El nivel de Enlace / Wifi crack 2ª Parte <br>
Aprendiendo Ciberseguridad paso a paso || <youtube width="130" height="80">_KX7NQQzByg</youtube>
|}


<p>  Aircrack-ng es una herramienta de seguridad de código abierto 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 "cat" 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.</p>
<p>  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 [[Crear 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.</p>


<p>  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 USEN CONTRASEÑAS DÉBILES.</p>
<p>  [[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.</p>


<p>  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.</p>
<p>  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.</p>


<p>  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.</p>


<p>  Si ya contamos con dos buenos diccionarios, vamos a mezclarlos para hacer uno nuevo dedicarlo a crackear con la Suite utilizando esta enorme cantidad de combinaciones de palabras que hemos logrado hacer con los dos iniciales.</p>
<p>  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.</p>


<h3>Explorando Ficheros de Diccionario y Ocurrencias de Palabras</h3>
<h3>Explorando Ficheros de Diccionario y Ocurrencias de Palabras</h3>


<p>Partimos de dos ficheros de diccionario importantes, en nuestro caso con aproximadamente 24 mil palabras cada uno. Si yo escribo 'cat stb', se debe mostrarme todas las palabras que me hizo teniendo en cuenta todas las ocurrencias que tiene "Ace" con todos los códigos que hay. Vamos a hacer más, todavía más bestia. Voy a hacer de vuelta 'CD .." y posteriormente "ls- l'. Y se acuerdan que acá... (Recordad que con el comando "cd.." subimos un directorio más). Ahora, si subimos un directorio de donde estabamos y realizamos el comando'pwd', obtendremos la ruta hacia el 'home', en mi caso, a 'home/acorletti'.</p>
<p>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'.</p>


<p> 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í:</p>
<p> 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í:</p>


[[File:Directorio_herramientas_Cupp_y_Pydictor.jpg|thumb|Directorio herramientas Cupp y Pydictor|center|650px]]
[[File:Directorio_herramientas_Cupp_y_Pydictor.jpg|thumb|Directorio herramientas Cupp y Pydictor|center|650px]]


<p> 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 'cd cupp' y de nuevo lanzamos 'ls-l'. Nos mostrará la dirección del fichero que contiene nuestro diccionario, en este caso "alejandro.txt".</p>
<p> 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".</p>


<p>¿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 (con 'pwd') "acorletti". Si en este directorio vuelvo a ejecutar 'ls -l', ven que ahora tengo mi fichero 'alejandro.txt'.</p>
<p> ¿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" <i>(recordad que en Linux, cuando ustedes aprietan la tecla de tabulación, si la palabra es unívoca, la completa)</i>. 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'.</p>


<p>Con este paso cumplimentado, vamos a irnos ahora a 'cd pydictor/results/' y de nuevo 'ls -l' y acá tengo mi otro fichero que es 'sedb_180944.txt'. Entonces, ahora voy a hacer 'sedb_180944.txt' en el mismo directorio anterior, 'sedb_180944.txt /home/acorletti'. Entonces, si ahora hago 'cd ..', una vez 'cd ..', otra vez, estoy parado en el directorio 'acorletti'. Si vuelvo a hacer 'ls -l', ven que ahora tengo mis dos ficheros 'sedb_180944.txt' y 'alejandro.txt':</p>
<p> 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'.


[[File:Diccionarios de fuerza bruta.jpg|thumb|Diccionarios de fuerza bruta|center|650px]]
[[File:Diccionarios de fuerza bruta.jpg|thumb|Diccionarios de fuerza bruta|center|650px]]


<h3>Concatenando Ficheros con el Comando 'Cat'</h3>
<h3>Concatenando Ficheros con el Comando "cat"</h3>


<p>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'.</p>
<p>Linux tiene una característica muy buena. Vamos a hacer uso de un editor muy viejo que es el <b>'vi'</b> (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'.</p>


<p>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 acá.</p>
<p>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í.</p>


<p> Vamos a hacer 'cat pp1' y nos muestra que es 123. Si ahora hacemos 'cat pp2' tambien resulta ser 123,. Lo que ha sucedido es que kali me sobreescribió el fichero pp1 en pp2, y ahora tanto pp1 como pp2 son iguales.</p>
<p> 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.</p>


[[File:Resultado_de_Cat_en_pp1_y_pp2.jpg|thumb|Resultado de Cat en pp1 y pp2|center|650px]]
[[File:Resultado_de_Cat_en_pp1_y_pp2.jpg|thumb|Resultado de Cat en pp1 y pp2|center|650px]]


<p>  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é <b>dos flechas (>>)</b> 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</p>


<p>  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</p>
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.
 
Cuando necesito sobreescribir un fichero usando el comando "cat", se mostrará su contenido. Sin embargo, si lo redirijo, se sobrescribirá el contenido con el que quiero reemplazarlo. Y, cuando uso dos flechas (>>), en lugar de sobrescribirlo, 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.
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.
Línea 47: Línea 51:
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.
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 crer uno más sólico y completo.
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 <u>concatenado</u> 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.
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.


<h3> Utilizando los diccionarios de fuerza bruta con Aircrack</h3>
<h3> Utilizando los diccionarios de fuerza bruta con [[Aircrack-ng]]</h3>


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 de '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: </p>
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: </p>


<p> aircrack-ng -e WiFI_ace_14.pcap -w alejandro.txt </p>
<p> aircrack-ng -e WiFI_ace_14.pcap -w alejandro.txt </p>
Línea 59: Línea 63:
<p>Presiono "enter" y verán cómo empieza a procesar todas las tramas</p>
<p>Presiono "enter" y verán cómo empieza a procesar todas las tramas</p>


<h3>Descifrando Contraseñas WiFi a través de la Suite Crack</h3>
<h3>Descifrando Contraseñas WiFi a través de la Suite [[Aircrack-ng]]</h3>
 
 


<p>Todo y subsecuente. En este momento 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.</p>
<p>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.</p>


<p>A mí me resulta más 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'.</p>
<p>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'.</p>


<h3>Consideraciones sobre Contraseñas Triviales y Longitudes</h3>
<h3>Consideraciones sobre Contraseñas Triviales y Longitudes</h3>


<p>Si la clave hubiese tenido un asterisco, también lo hubiésemos roto. Si la clave en vez de ser 8 hubiese sido 9 también la habríamos. Están viendo un ejemplo muy sencillo. Porque no nos podemos hacer 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.</p>
<p>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.</p>


<h3>Conclusiones y Uso de la Suite Crack en Ciberseguridad</h3>
<h3>Conclusiones y Uso de la Suite [[Aircrack-ng]] en [[Ciberseguridad]]</h3>


<p>Entonces, conclusión, utilizamos la Suite Crack, 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 acá generamos con dos herramientas distintas, concatenamos dos diccionarios. Podríamos haber concatenado 20 y con Fuerza bruta en muy poquitos segundos. Están viendo cómo es posible crackear una contraseña WPA2.</p>
<p>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]].</p>


<p>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 el crack ng, hemos visto comandos de Linux. Así que bueno, espero que con esto cerremos el tema del crack ng y que le sirva de ejemplo para mejorarlo muchísimo más. Que es como realmente podemos plaquearlo. Listo, adiós. Gracias.</p>
<p>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.</p>


[[Category: Prácticas/Ejercicios]]
[[Category: Prácticas/Ejercicios]]

Revisión del 16:35 10 ago 2023

Si deseas seguir esta práctica con un vídeo explicativo,
aquí te dejamos el enlace:
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 Crear 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í:

Directorio herramientas Cupp y Pydictor

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'.

Diccionarios de fuerza bruta

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.

Resultado de Cat en pp1 y pp2

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.