Hashcat es una utilidad avanzada de recuperación de contraseña basada en CPU disponible para Windows, Mac y Linux. Proporciona 7 modos únicos de ataque (como fuerza bruta, diccionario, permutación, príncipe, búsqueda de tabla, combinación, etc.) para más de 100 algoritmos hash optimizados (como md5, sha256, sha512, etc.). Hashcat se considera la herramienta de recuperación de contraseña basada en CPU más rápida del mundo. Mientras tanto, la contraparte de Hashcat, oclHashcat, se ejecuta en GPU mucho más rápido que Hashcat. La versión actual de Hashcat es la 2.00 y se puede obtener en su sitio web.
¿Cómo se almacenan las contraseñas?
Si una aplicación o servicio almacena su contraseña, como Google, SSH en Linux, la contraseña generalmente se almacena en forma de hash. Un hash es básicamente una forma segura de almacenar contraseñas basada en un algoritmo matemático que no es reversible. Una vez que tiene un hash, es teóricamente imposible obtener la contraseña original.
¿Cómo descifrar contraseñas hash?
Considere que un atacante obtiene el hash de la contraseña. Para descifrar una contraseña del hash, debe comenzar a generar varias combinaciones de hash a partir de las contraseñas conocidas basadas en diccionarios hasta que finalmente coincida con el hash.
Esencialmente, el atacante debe ser muy paciente, ya que tiene que probar miles, millones, miles de millones y, a veces, billones de contraseñas antes de encontrar la correcta.
Bien, pero ¿cómo haces tantas conjeturas para encontrar un hash coincidente?
Aquí, el Hashcat herramienta viene a su rescate. Hashcat automatiza el proceso de adivinación y compara los resultados por usted.
En este tutorial, explicaría cómo usar la versión de CPU de Hashcat. Además, como mi sistema es de 64 bits, usaría la versión de 64 bits de Hashcat.
Comencemos el viaje de Cracking Passwords…..
Descargar Hashcat:
Descargue el último Hashcat en su distribución de Linux (Mi distribución es Ubuntu) desde el sitio web de Hashcat.
$ wget https://hashcat.net/files/hashcat-2.00.7z
Para extraer el archivo, debe tener 7zip utilidad instalada. Si no lo tiene en su sistema, instálelo:
Redhat/Centos/Fedora
$ yum install p7zip
En caso de que yum install no funcionó para usted, entonces necesita configurar el repositorio YUM que contiene el paquete p7zip .
Ubuntu/Debian
$ apt-get install p7zip
Desempaquetar:
Extrae el archivo usando la utilidad 7zip instalada
Redhat/Centos/Fedora
$ 7za x hashcat-2.00.7z
Ubuntu/Debian
$ p7zip -d hashcat-2.00.7z
Ahora cambie al directorio Hashcat:
$ cd hashcat-2.00
Puede ver el ejecutable binario como se muestra a continuación:
$ ls -l hashcat-cli*.binEn la última versión de HashCat 3.6.0
El archivo binario se llama hashcat64.bin si es de 64 bits y hashcat32.bin si es de 32 bits
Según su instalación de hardware y sistema operativo, elija binario de 32 bits o de 64 bits. Puedes averiguarlo usando el comando:
$uname -a Linux ubuntu 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 2 22:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Dado que mi sistema operativo es de 64 bits, usaría el binario Hashcat compilado en 64 bits (hashcat-cli64.bin). Solo para hacernos la vida más fácil, copiemos el binario en las ubicaciones binarias estándar como:/usr/bin/
$ cp hashcat-cli64.bin /usr/bin/
Enlace a un formulario más corto:
ln -s /usr/bin/hashcat-cli64.bin /usr/bin/hashcat
¡Estupendo! A partir de ahora puedes usar el comando hashcat cuando quiera usar Hashcat como se muestra a continuación:
$ hashcat --help
Salió para iniciarlo, luego lo primero es saltar al directorio de ejemplos para ver cómo funciona el descifrado de contraseñas:
$ ls examples/
Los ejemplos están organizados en función del modo de ataque (A) y el tipo de hash (M) . Probemos el descifrado simple del tipo hash MD5 usando el modo de ataque de diccionario. Pase el archivo Hash y el archivo de diccionario de contraseñas correspondiente como argumentos al ejecutable hashcat como se muestra a continuación:
$ hashcat A0.M0.hash A0.M0.word Initializing hashcat v2.00 with 2 threads and 32mb segment-size...
Added hashes from file A0.M0.hash: 102 (1 salts)
b19cdd8f0b55cb888c97ec77ab1ad402:rQ-Vv2&kog_p+CMyI;/VFDD.|MQe0/eV6bi9i^"yWP('iT 73ff3971460e3d4490049086207e4a1e:$<-+1Jz?dPL)[;)mg<so'R 5Ri0':.m^Rfv?,x[G 7718d0884dcdd356c77de6ff4c0ad58e:>RHc ::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::: All hashes have been recovered
Input.Mode: Dict (A0.M0.word) Index.....: 1/1 (segment), 102 (words), 2769 (bytes) Recovered.: 102/102 hashes, 1/1 salts Speed/sec.: - plains, 101 words Progress..: 102/102 (100.00%) Running...: 00:00:00:01 Estimated.: --:--:--:--
Started: Wed Dec 16 04:41:18 2015 Stopped: Wed Dec 16 04:41:20 2015
¡La ejecución anterior podría recuperar con éxito 102 hashes! ¿Fantástico no? Por supuesto, descifrar hashes en el mundo real no será tan simple, pero este es un gran primer paso.