En este post la solución de otro de los retos de la plataforma id0-rsa, dedicada exclusivamente a desafíos de criptografía, y que figura en ella bajo el 'Tag' 'Hashing'.
En este caso lo voy a resolver sólo mediante una herramienta.
El reto en cuestión tiene por título "Easy Passwords" y, en mi opinión, presenta un nivel de dificultad medio (★★★☆☆).
Su enunciado dice lo siguiente: 'Warm up with some easy password cracking', y se proporciona lo siguiente:
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.
$1$abadsalt$lFZDGpRdmOwRbu6HWuqjv0
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.
Solución:
JohnTheRipper:
Lo que se proporciona en este reto son valores de hash generados utilizando el algoritmo crypt(3)-MD5, y para intentar "revertirlos" utilizo 'John the Ripper', el popular software de 'crackeo' de contraseñas, y 'Rockyou' como diccionario para implementar un ataque de fuerza bruta.
Creo un fichero de texto (Easy_Passwords.txt) con los valores de hash proporcionados, ejecuto el siguiente comando: john --wordlist=rockyou.txt Easy_Passwords.txt, y el resultado es:
Es decir, veo que se han conseguido 'crackear' algunos de los valores de hash contenidos en el archivo Easy_Passwords.txt.
Ejecuto el siguiente comando: john --show Easy_Passwords.txt, y obtengo lo siguiente:
Es decir, en concreto ya tengo 10 de las cadenas correspondientes a los valores hash y me falta 1.
Abro el archivo (john.pot) que se ha generado tras el primer paso realizado, y veo lo siguiente:
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.:letter
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01:second
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0:word
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1:the
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/:this
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.:order
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11:each
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90:list
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.:in
Comparando lo valores de hash proporcionados en el reto e incluidos en el archivo de texto que he creado (Easy_Passwords.txt) con el contenido del fichero anterior, veo que hay dos valores de hash repetidos (los resaltados a continuación en color azul), que se corresponden con 'in', y que el valor de hash que falta es el resaltado a continuación en color rojo.
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.
$1$abadsalt$lFZDGpRdmOwRbu6HWuqjv0
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.
Para intentar 'crackear' el valor de hash que falta, a la vista de que todos los demás se corresponden con palabras comunes en inglés, vuelvo a repetir los 2 pasos anteriores, pero esta vez utilizo un diccionario de dicho idioma (john --wordlist=english.txt Easy_Passwords.txt):
Y veo que la palabra que faltaba era 'of'.
Ejecuto: john --show Easy_Passwords.txt, y obtengo lo siguiente:
Por tanto, la solución a este reto es: "heefaonhinr".
En este caso lo voy a resolver sólo mediante una herramienta.
El reto en cuestión tiene por título "Easy Passwords" y, en mi opinión, presenta un nivel de dificultad medio (★★★☆☆).
Su enunciado dice lo siguiente: 'Warm up with some easy password cracking', y se proporciona lo siguiente:
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.
$1$abadsalt$lFZDGpRdmOwRbu6HWuqjv0
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.
JohnTheRipper:
Lo que se proporciona en este reto son valores de hash generados utilizando el algoritmo crypt(3)-MD5, y para intentar "revertirlos" utilizo 'John the Ripper', el popular software de 'crackeo' de contraseñas, y 'Rockyou' como diccionario para implementar un ataque de fuerza bruta.
Creo un fichero de texto (Easy_Passwords.txt) con los valores de hash proporcionados, ejecuto el siguiente comando: john --wordlist=rockyou.txt Easy_Passwords.txt, y el resultado es:
Es decir, veo que se han conseguido 'crackear' algunos de los valores de hash contenidos en el archivo Easy_Passwords.txt.
Ejecuto el siguiente comando: john --show Easy_Passwords.txt, y obtengo lo siguiente:
Es decir, en concreto ya tengo 10 de las cadenas correspondientes a los valores hash y me falta 1.
Abro el archivo (john.pot) que se ha generado tras el primer paso realizado, y veo lo siguiente:
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.:letter
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01:second
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0:word
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1:the
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/:this
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.:order
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11:each
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90:list
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.:in
Comparando lo valores de hash proporcionados en el reto e incluidos en el archivo de texto que he creado (Easy_Passwords.txt) con el contenido del fichero anterior, veo que hay dos valores de hash repetidos (los resaltados a continuación en color azul), que se corresponden con 'in', y que el valor de hash que falta es el resaltado a continuación en color rojo.
$1$abadsalt$0abdVS0D4YnJJ4b7l0RRr1
$1$abadsalt$p394aiqZnKUyrO5Rg9Tf01
$1$abadsalt$cJYsdaTkB9F9L9yH2Qjtd.
$1$abadsalt$lFZDGpRdmOwRbu6HWuqjv0
$1$abadsalt$1AI/LbmumKa5e6dOxiVe11
$1$abadsalt$e2hAp/NXE.Uezx3ZOwA5L0
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7XBxlsUB3yXcL62wQpgjK/
$1$abadsalt$DnSSAXOSmaoAAhN4WKaU90
$1$abadsalt$Cua6x6Rgd8UUHn7Mnzibj.
$1$abadsalt$7wLTt8frOzyxahbB9Lzdi.
Para intentar 'crackear' el valor de hash que falta, a la vista de que todos los demás se corresponden con palabras comunes en inglés, vuelvo a repetir los 2 pasos anteriores, pero esta vez utilizo un diccionario de dicho idioma (john --wordlist=english.txt Easy_Passwords.txt):
Y veo que la palabra que faltaba era 'of'.
Ejecuto: john --show Easy_Passwords.txt, y obtengo lo siguiente:
Por tanto, la solución a este reto es: "heefaonhinr".
Comentarios
Publicar un comentario