Existen herramientas que permiten romper un hash, aunque a veces puede ahorrar tiempo y recursos buscar si el hash ya ha sido encontrado. Ni siquiera hace falta una rainbow table.

findmyhash es un script escrito en Python que puede buscar diferentes tipos de hash en diferentes servicios de cracking online. Los algoritmos soportados son los siguientes:

  • MD4
  • MD5
  • SHA1
  • SHA256
  • RMD160
  • MYSQL
  • CISCO7
  • LM
  • NTLM

Un ejemplo sencillo. Si no encuentra el hash, también lo buscará en Google:

$ hash=$(echo 123456 | md5sum | cut -f1 -d" ")
$ echo $hash
f447b20a7fcbf53a5d5be013ea0b15af
$ ./findmyhash.py MD5 -h $hash -g
[...]
Analyzing with noisette.ch (http://md5.noisette.ch)...

__*** HASH CRACKED!! ***__
The original string is: 123456



The following hashes were cracked:
----------------------------------

f447b20a7fcbf53a5d5be013ea0b15af -> 123456

Otro ejemplo, esta vez con las 20 contraseñas más utilizadas:

$ HASH_FILE=$(mktemp)
$ passwords=(
     123456
     12345
     123456789
     Password
     iloveyou
     princess
     rockyou
     1234567
     12345678
     abc123
     Nicole
     Daniel
     babygirl
     monkey
     Jessica
     Lovely
     michael
     Ashley
     654321
     Qwerty
 )
$ for p in ${passwords[*]}; do
     hash=$(echo $p | md5sum | cut -f1 -d" ")
     echo $hash >> $HASH_FILE
done
$ python findmyhash.py MD5 -f $HASH_FILE > hash_results.txt

Después de un rato, casi una hora, ha sido capaz de encontrar 6 contraseñas:

$ grep "The original string" hash_results.txt
The original string is: 123456
The original string is: 12345
The original string is: 12345678
The original string is: abc123
The original string is: Jessica
The original string is: michael

La opción para buscar en Google, en caso de no encuentrar el hash en ninguno de esos servicios online, sólo está disponible si buscamos un único hash, así que modificaremos ligeramente el script anterior para que, en lugar de pasarle un fichero con los hashes, vayamos llamando al script de uno en uno:

$ passwords=(
     123456
     12345
     123456789
     Password
     iloveyou
     princess
     rockyou
     1234567
     12345678
     abc123
     Nicole
     Daniel
     babygirl
     monkey
     Jessica
     Lovely
     michael
     Ashley
     654321
     Qwerty
 )
$ > hash_results.txt
$ for p in ${passwords[*]}; do
     hash=$(echo $p | md5sum | cut -f1 -d" ")
     python findmyhash.py MD5 -h $hash -g >> hash_results.txt
done

La diferencia respecto al caso anterior es que, para los hashes que no ha encontrado en ningún servicio, realiza una búsqueda en Google y muestra los primeros enlaces. Por ejemplo, el hash para la contraseña 654321 no ha sido capaz de encontrarlo, pero la búsqueda en Google, entre otras, ha proporcionado la URL http://paste2.org/p/1360449, que sí la contiene.


Entradas relacionadas


Published

Category

hack

Tags

Contacto