Publicações

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.