dCTF 2021: Strong Password
Crackeando una contraseña de ZIP con John the Ripper y aprendiendo de un detalle de línea de comandos.
Writeup original del reto: Strong Password.md
Este era un reto de crypto muy fácil que aun así me tomó demasiado tiempo.
La solución supuestamente era directa: usar john contra el ZIP provisto.
Lo que causó el dolor de cabeza fue que John the Ripper parecía manejar los argumentos de forma distinta según cómo se los pasara.
Ejecutar esto parecía que debería funcionar:
john-the-ripper --format=zip ziphash.txt --wordlist rockyou.txt
Pero no crackeó la contraseña. La única pista era esta advertencia en la salida:
Warning: invalid UTF-8 seen reading rockyou.txt Using default input encoding: UTF-8
Al principio parecía inofensiva. El comando seguía corriendo por varios segundos, pero nunca encontraba la contraseña.
Pasar las mismas opciones de otra forma lo arregló para mí:
john-the-ripper --format=zip output.txt --wordlist=rockyou.txt
Con la forma --wordlist=rockyou.txt, John corrió mucho más tiempo: alrededor de 4 minutos en un i7-10700K en vez de unos 25 segundos. Eventualmente encontró la contraseña:
Bo38AkRcE600X8DbK3600
Después de descifrar el archivo, obtuve la flag:
dctf{r0cKyoU_f0r_tHe_w1n}
Notas
Quizás simplemente no estaba lo suficientemente familiarizado con tooling de Linux en ese momento, y este comportamiento era esperado. De cualquier forma, esa pequeña diferencia de línea de comandos hizo que el reto tomara más tiempo del que debería.