Ataque Local de Contraseñas utilizando John The Ripper
Un ataque local de contraseñas depende en primera instancia de la habilidad para capturar los hashs desde un sistema objetivo. La manera de obtener estos datos es diversa, pero se requiere finalmente obtener los hashs de antemano.
Función Hash Criptográfica
Una función hash criptográfica es una función hash considerada como prácticamente imposible de revertir, es decir recrear el dato de entrada desde únicamente el valor hash. La entrada se denimina algunas veces como mensaje, y el valor hash es denominada frecuentemente como resumen del mensaje o simplemente resumen.
Función Hash
Una función hash es cualquier función que puede ser utilizada para mapear datos de tamaño arbitrario hacia datos de tamaño fijo, con lo cual pequeños cambios en los datos de entradas producen cambios muy grandes en los datos de salida. Los valores devuelto por una función hash son denominados como valores hash, códigos hash, sumas hash, o simplemente hashs.
Para la siguiente práctica se utilizará John The Ripper en Kali Linux, y la máquina virtual vulnerable Metasploitable2.
Se tiene acceso al sistema objetivo de evaluación con los permisos pertinentes para leer el archivo /etc/shadow.
cat /etc/shadow
Es de nuestro interés únicamente las cuentas de usuario que tienen asignada una contraseña. Se realiza para esto un sencillo filtrado usando el comando "grep".
grep '\$1\$' /etc/shadow
La información de los hashes capturados se copiarán a un archivo local en Kali Linux. Archivo contra el cual se ejecutará John The Ripper.
El modo más simple para ejecutar John The Ripper es utilizando la opción “--single”. El cual permite realizar un “cracking” sencillo. Las reglas utilizadas en este modo serán leídas desde la sección [List.Rules:Single] del archivo de configuración de John The Ripper.
# john --single hashes_m2
El modo “wordlist” o lista de palabras definida con la opción “--wordlist=”, permite la utilización de una lista de palabras.
# john --wordlist=/usr/share/wordlists/diccionario.txt hashes_m2
Con este último procedimiento realizado se han obtenido todas las contraseñas contenidas en el archivo. Se procede a visualizar está información utilizando la opción “--show”.
# john --show hashes_m2
Para las siguientes prácticas se utilizará los hashes de otro archivo “/etc/shadow” capturado desde otro sistema, al cual se le asigna el nombre “shadow1”.
Además de la opción “--wordlist=” se utiliza la opción “--rules”, la cual habilita las reglas de manipulación para la lista de palabras definida en el modo “wordlist”. Estas reglas son leídas de [List.Rules:Wordlist].
# john --wordlist=/usr/share/wordlists/diccionario.txt --rules shadow1
John The Ripper permite también utilizar el modo “Incremental” o Incremental, que es un símil a realizar un ataque por fuerza bruta usando todas las combinaciones posibles de un conjunto de caracteres para la construcción de posibles contraseñas. En la siguiente práctica se utiliza “alpha” para utilizar todas las letras del alfabeto. Este información se define en la sección [Incremental:MODE] del archivo de configuración.
# john --incremental:alpha shadow1
John The Ripper tiene también un modo “External” o Externo utilizando las funciones definidas en la sección [List.External:MODE].
Uno de los puntos resaltantes e importantes en el procedimiento de realizar ataques locales de contraseñas, es el hecho de utilizar buenos diccionarios o listas de palabras a medida para maximizar las probabilidades de obtener resultados satisfactorios.
Fuentes:
http://www.openwall.com/john/
http://en.wikipedia.org/wiki/Cryptographic_hash_function
http://en.wikipedia.org/wiki/Hash_function
http://www.kali.org/downloads/
http://sourceforge.net/projects/metasploitable/files/Metasploitable2/
Sobre el Autor
Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
WhatsApp: https://wa.me/51949304030
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
Youtube: https://www.youtube.com/c/AlonsoCaballero
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/