domingo, 12 de maio de 2013

Quebrando Senhas SHA 256 and SHA 512 no Linux/Unix



Se você já tentou quebrar senhas de um novo ubuntu ou outro linux mais novo, você pode ter notado que John The Ripper não pode quebrar os hashes começando com $5 ou $6
.
Tive duas senhas que eu precisava verificar. As senhas veio de /etc/shadow a partir de uma versão mais recente do Ubuntu e eu nem notei que o hash começou com $5 $6 em vez dos habituais $1 . Depois de pesquisar e ler um pouco, descobri que isso é simplesmente a mais nova geração de hashes de senha para linux. O hash "normal" ($ 1 $) é MD5. Os novos são $ 5 e $6  e são SHA256 e SHA512, respectivamente.
A implementação de senhas SHA em linux é feito por Ulrich Drepper no RedHat e seu papel original pode ser encontrado aqui .

Bem. .. Para encurtar a história. Eu precisava verificar/quebrar algumas senhas e não houve sucesso para senhas SHA. No momento da escrita, nem mesmo o bom e velho "John The Ripper" tem suporte para isso.

Então eu codificado meu próprio Crack Brute Force. Foi feito em perl, e ele simplesmente usa a função crypt do sistema operacional. Então se você tem um sistema que suporta senhas SHA, assim será a minha ferramenta. Deve apoiar qualquer tipo de hash apoiado pelo crypt (), assim (espero) não necessitando de uma reescrita quando novos algoritmos surgir. A desvantagem é que a função crypt () pode ser mais lenta do que usando uma versão otimizada para rachaduras. Mas uma vez que não existe uma versão tão otimizado lá fora (e quem sabe se algum dia haverá uma), este não é um problema no momento :).

Os algoritmos SHA são feitas mais devagar de propósito, tornando-os mais difíceis de quebrar. Cryptcracker pode testar ~ 45 senhas por segundo, por CPU-Core 2.53GHz no meu laptop Core 2 Duo  feito o crypocracker multithreaded, o que significa que eu posso utilizar os dois núcleos no meu laptop e executar uma enorm hash testando ~ 90 senhas por segundo. Se você tiver mais de 4 núcleos, lembre-se de usar a opção "-t" para definir o número de threads maior do que o padrão 4.

Vou compartilhar com voces aqui, na esperança de que alguém vai achar útil.

 Visualise a edicao revisada e atulizada  em : https://github.com/mdmorpheus/projectx/blob/master/cryptcrack.pl