dCTF 2021: Strong Password
Quebrando uma senha de ZIP com John the Ripper e aprendendo com uma nuance de linha de comando.
Writeup original do desafio: Strong Password.md
Esse era um desafio de crypto bem fácil que ainda assim demorou demais para mim.
A solução deveria ser direta: usar john contra o arquivo ZIP fornecido.
O que causou dor de cabeça foi que o John the Ripper parecia lidar com os argumentos de forma diferente dependendo de como eu os passava.
Rodar isso parecia que deveria funcionar:
john-the-ripper --format=zip ziphash.txt --wordlist rockyou.txt
Mas não quebrou a senha. A única pista foi este aviso na saída:
Warning: invalid UTF-8 seen reading rockyou.txt Using default input encoding: UTF-8
No começo aquilo parecia inofensivo. O comando ainda rodava por vários segundos, mas nunca encontrava a senha.
Passar as mesmas opções de outra forma resolveu para mim:
john-the-ripper --format=zip output.txt --wordlist=rockyou.txt
Com a forma --wordlist=rockyou.txt, o John rodou por muito mais tempo: cerca de 4 minutos em um i7-10700K em vez de uns 25 segundos. Eventualmente, encontrou a senha:
Bo38AkRcE600X8DbK3600
Depois de descriptografar o arquivo, obtive a flag:
dctf{r0cKyoU_f0r_tHe_w1n}
Notas
Talvez eu só não estivesse familiarizado o suficiente com tooling de Linux na época, e esse comportamento fosse esperado. De qualquer forma, essa pequena diferença na linha de comando foi o que fez o desafio demorar mais do que deveria.