Intentar Romper Hashes de Contraseñas de un Sistema Linux utilizando Fuerza Bruta

  • Posted on: 3 July 2019
  • By: ReYDeS

Otra de las técnicas utilizadas para intentar obtener las contraseñas en texto plano desde hashes de contraseñas, es utilizar un ataque por fuerza bruta. Esta técnica implica generar todas las posibles combinaciones de las potenciales contraseñas, basándose en conjuntos de caracteres definidos, como por ejemplo, caracteres alfabéticos, numéricos, o caracteres especiales. Así mismo todas las posibles combinaciones de los conjuntos antes mencionados. Esta es una técnica muy agresiva, y algunas veces podría no percibirse como una técnica agradable, pues cuando se menciona “todas las combinaciones posibles”, esto implica un tiempo indefinido en caso no se definan ciertos criterios, como el tamaño máximo de las contraseñas a generar, o los conjuntos de caracteres a utilizar.

Para el siguiente ejemplo se utiliza la herramienta John The Ripper, y dos archivos de nombres “passwd” y “shadow” obtenidos desde un sistema Linux. Se intenta de esta manera obtener la mayor cantidad de contraseñas en texto plano.

Se visualizan las primeras líneas de ambos archivos.

# head -n 25 /tmp/passwd
# head -n 25 /tmp/shadow

Antes de ejecutar la herramienta John The Ripper, se combina la información contenida en el archivo “passwd” y “shadow,” utilizando el comando “unshadow”. Esto es requerido pues si únicamente se utiliza el archivo “shadow”, la información GECOS no será utilizada en el modo “single crack” de John The Ripper, y adicionalmente no se estaría en la capacidad de utilizar la opción “-shells”.

# unshadow /tmp/passwd /tmp/shadow > /tmp/Hashes_Linux
# head -n 32 /tmp/Hashes_Linux

Se procede a ejecutar John The ripper utilizando la opción “--incremental”, esto define la utilización del modo “incremental” o de fuerza bruta. Los diferentes modos incrementales disponibles se detallan en la sección “Incremental modes” dentro del archivo “/etc/john/john.conf”.

Para propósitos del presente escrito se intenta por algunas minutos los modos, ASCII (Incluye los 95 caracteres ASCII imprimibles), LanMan, Alpha (Incluye todas las 52 letras) y Digits (Incluye únicamente dígitos).

# john --incremental:ASCII /tmp/Hashes_Linux
# john --incremental:LanMan /tmp/Hashes_Linux
# john --incremental:Alpha /tmp/Hashes_Linux
# john --incremental:Digits /tmp/Hashes_Linux

Los resultados en este tipo de ataques por fuerza bruta depende generalmente de dos factores. Primero la fortaleza de la contraseña utilizadas, pues una contraseña de 40 caracteres alfanuméricos y caracteres especiales, sería más difícil de encontrar comparada a una contraseña de 10 caracteres alfabéticos. También es un factor importante el conjunto de caracteres utilizado, pues si se tuviera algún indicio sobre los usuarios de una organización o empresa utilizan contraseñas únicamente numéricas, se podría intentar un ataque por fuerza bruta utilizando únicamente el conjunto de dígitos.

Este es un modo de atacar contraseñas el cual teóricamente podría nunca terminar esto debido al ingente número de combinaciones

Fuente:

https://www.openwall.com/john/
https://www.openwall.com/john/doc/MODES.shtml

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1