domingo, 7 de febrero de 2016

Utilizando Hashcat para descifrar contraseñas

Hashcat, es una herramienta que nos permite obtener contraseñas a partir del hash de las mismas. Una pequeña ayuda que nos facilitará el trabajo cuando nos encontremos con una base de datos o un archivo que contenga credenciales de usuarios cifradas.


Imagen 1: Descifrando contraseñas con Hashcat


Aunque antes de la aparición de Hashcat ya existían diferentes tipos de software (como "PasswordsPro" o "John the Ripper") que cumplían la misma función, esta herramienta se diferencia principalmente en que nos permite hacer uso de los múltiples núcleos de una CPU moderna, o lo que es lo mismo, incluye soporte para "multiprocesamiento".

Entre las principales características podemos destacar las siguientes:
  • Optimizada y precompilada para Linux, Windows y OSX, dispone de versiones para 32 y 64 bits, evitando cualquier tipo de retraso o problema en la compilación.
  • Es vastante ligera. Los hilos que se encargan de la parte pesada del trabajo corren a una prioridad baja, por lo que podemos seguir haciendo uso del equipo mientras se está realizando el proceso. 
  • Su versatilidad. Tiene soporte multihilo, soporta muchos algoritmos (más de 50) y permite utilizar técnicas avanzadas utilizando reglas o tablas de permutación, entre otros. 
  • Como ya hemos comentado anteriormente, posee una versión que hace uso de la tarjeta gráfica (GPU) para las operaciones de cómputo, lo que acelera mucho el tiempo de proceso para la obtención de las contraseñas. 


Os podéis descargar la herramienta y buscar más información desde su página web (la que usa la CPU). Y por otro lado para GPU tenemos disponibles dos versiones: oclhashcat-plus, más amplia y con soporte para más métodos de cifrado, y oclhashcat-lite, algo más simple. La única “pega” como nos destacan desde "Securityartwork", es que esta versión no la tenemos disponible para OSX.

Aquí puedes ver una línea de órdenes genérica para lanzar la herramienta:

<ejecutable -hashcat> [opciones] fichero-hash [mascara|diccionario|directorio]

Como archivo ejecutable vamos a elegir el que corresponda con la versión que hemos elegido,     (por ejemplo: hashcat-cli32.bin o oclHashcat-plus64.exe).


En la versión clásica de la aplicación tienes muchas opciones, pero en este caso veremos las más comunes, que nos serán más que suficiente para la mayoría de ocasiones. Entre todas las opciones que posee la herramienta podemos destacar las siguientes: 

-m <num> Tipo de hash a descifrar. El listado completo aparece al mostrar la ayuda. 

-n <num> Número de hilos a utilizar (solo versión para CPU).

-a <num> Tipo de ataque a realizar. Generalmente utilizaremos ataque por diccionario (por defecto, a=0) o por fuerza bruta (a=3). Listado completo en la ayuda. 

-c <num> Tamaño de la caché en RAM del diccionario, en MB. 

-o <fich> Fichero donde guardar los hash descifrados. 

-[1-4] <valor> Definición de conjuntos de caracteres personalizados, si queremos acotar los posibles caracteres que tendrá la aplicación. En la ayuda aparece un listado completo de las combinaciones.


El parámetro "fichero-hash" será el que contenga los hash que queramos descifrar, uno por línea. El último parámetro podrá ser, o bien una máscara de caracteres si vamos a realizar un ataque por fuerza bruta, o por el contrario un fichero o directorio que incluirá los  diccionarios sobre los que podemos realizar las pruebas.

Por último aquí tienes un par de ejemplos de su ejecución:

$ ./hashcat-cli32.bin - Ejecutable de 32 bits bajo Linux. 

-n 2 - Vamos a utilizar 2 cores de nuestra CPU. 

-a 3 - Modo fuerza bruta. 

-m 400 - Tipo de hash: phpass, MD5(WordPress), MD5(phpBB3). 

-o wp.pass - Fichero de salida. 

wordpress.hash - Fichero que contiene los hash a descifrar. 

?l?l?l?l?l?l?l - Máscara, hasta 7 caracteres en minúsculas.


No hay comentarios:

Publicar un comentario