segunda-feira, 9 de junho de 2014

Quebrando Hash de Mysql

Estudando a source do mysql (client/server) , me veio a ideia de criar uma tool pra decriptar hash de mysql , o algoritmo de encriptação que o mysql usa é hex(sha1(sha1('palavra')))

exe:
mysql> select PASSWORD('mmxm');
+-------------------------------------------+
| PASSWORD('mmxm')                          |
+-------------------------------------------+
| *D0D478F28953CEE96AE690B0466F39CAE355F19A |
+-------------------------------------------+
1 row in set (0.00 sec)
Confirmando que o algoritmo é realmente hex(sha1(sha1('palavra'))):
$ perl -MDigest::SHA1=sha1,sha1_hex -le 'print sha1_hex(sha1("mmxm"))'
d0d478f28953cee96ae690b0466f39cae355f19a
É o mesmo hash a unica diferença são as letras maiusculas e minusculas.

No código-fonte do mysql existe uma lib de referência para encriptação SHA-1, resolvi usar ela: http://faqs.org/rfcs/rfc3174.html

O programa que eu criei , transforma o hash de hexadecimal para decimal, e depois disso lê a wordlist e vai comparando os bytes para ver se realmente é o mesmo hash.

Se você executar o programa como root, você pode definir a prioridade do processo de -20 (maior prioridade) até 20 (menor prioridade).

Baixando:
wget https://github.com/hc0d3r/C/raw/master/mysql_crack.tar.gz
Usando:
tar -vzxf mysql_crack.tar.gz
cd mysql_crack
make
./mysql_decrypt
Exemplos:
# ./mysql_decrypt d0d478f28953cee96ae690b0466f39cae355f19a /tmp/x -1

[+] PID:4350
[+] Changing Process Priority to (-1) ... [OK]

Decrypting...

Em outro terminal é possivel ver que a prioridade do processo é -1:
$ ps -e -o pid,ni,cmd | grep 4350
 4350  -1 ./mysql_decrypt d0d478f28953cee96ae690b0466f39cae355f19a /tmp/x -1
Hash sendo quebrada:
# ./mysql_decrypt d0d478f28953cee96ae690b0466f39cae355f19a /tmp/x -1

[+] PID:4389
[+] Changing Process Priority to (-1) ... [OK]

Decrypting...


 [+] Hash Cracked: 'mmxm'


[Finish]
Não coloquei para mostrar informações (número de senhas já testadas ,hash's geradas ,conteúdo da wordlist, etc) porque isso afeta o desempenho !

Nenhum comentário:

Postar um comentário