Identificando el tipo de hash

Identificar qué tipo de hash es una cadena de caracteres , es una de las tareas más comunes cuando estamos realizando ya sea un proceso de pentest, un desafío, un ctf o cualquier actividad relacionada con la seguridad informática, si no realizas este proceso de identificación de forma adecuada, te puedes volver un poco loco intentando romper un hash con un método que no corresponde, por eso esta labor inicial  es tan importante.

Existen muchas formas de identificar un tipo de hash, muchas veces, si el hash lo extraemos de algún paquete de software conocido, como un cms, un foro o una aplicación de escritorio, es probable que la documentación de dicho software nos diga como almacena los passwords y qué algoritmo de firma se ha utilizado, pero si estás leyendo este artículo, es probable que este recurso ya lo hayas agotado y necesites otra manera de identificar el tipo de hash que tienes en tu poder, para poder intentar realizar distintos procesos sobre él.

Identificando el tipo de hash
Identificando el tipo de hash

¿Cuáles son las características que definen una cadena de caracteres como un hash?

Las personas que llevan mucho tiempo en seguridad, aprenden a identificar patrones a simple vista que les permite definir con una probabilidad alta, a que tipo de hash se están enfrentando, pero también existen distintas herramientas que nos ayudan en esta tarea y vamos a enumerar a continuación algunas de ellas:

La primera herramienta de la que hablaremos es HashID, esta viene instalada por defecto en algunas distribuciones destinadas a la seguridad informática, como Kali Linux o Parrot, pero si no la tienes instalada, podemos obtenerla del repositorio (https://github.com/psypanda/hashID) y la ejecutamos así:

python3 hashid.py AQUIELHASH

hashid herramienta escrita en python para identificar el tipo de hash, pasándole una cadena de caracteres hashid herramienta escrita en python para identificar el tipo de hash, pasándole una cadena de caracteres

Esta herramienta aparte de identificarnos con un porcentaje alto de certeza el tipo de hash que le hemos pasado como argumento, también nos permite identificar los módulos que debemos usar en herramientas que nos permiten crackear los hashes como Hashcat (-m) y John The Ripper (-j) si queremos usarlas juntas sería así:

python3 hashid.py -jm AQUIELHASH

identificar el módulo para crackear un hash, utilizando hashcat o john the ripper identificar el módulo para crackear un hash, utilizando hashcat o john the ripper

La segunda herramienta de la que nos gustaría hablar y que nos permite identificar los tipos de hash, se llama hash-identifier, es una herramienta sencilla escrita en python que por lo general viene integrada en varias distribuciones de GNU-Linux:

hash-identifier

Identificando el tipo de hash

hash-identifier es una buena herramienta, pero carece de funcionalidades que pueden llegar a ser necesarias en un proceso de auditoría, como por ejemplo identificar de forma masiva un listado de hash, y que soluciones como hashid tiene integradas solo pasándole como parámetro un archivo con un hash por línea

hashid.py -jm archivoconhash.txt

Es por eso que existen herramientas que nos ayudarán también en el proceso de identificar un tipo de hash, como HashTag. La podemos descargar de su repositorio en (https://github.com/SmeegeSec/HashTag), su uso es relativamente sencillo, para ver qué tipo de algoritmo tiene un hash usamos el parámetro (-sh), como se puede ver a continuación:

python HashTag.py -sh AQUIELHASH
identificar masivamente tipo de hash
hashtag, herramienta para identificar tipos de hash

Ahora si queremos hacerlo de forma masiva lo lanzamos con el parámetro -f esto lo que hará será crearnos una carpeta con un archivo adentro el cual tendrá la salida de la herramienta:

python HashTag.py -f AQUIARCHIVOCONHASH.txt

función criptográfica hash

 

Crackeando el hash

Una vez, hemos identificado el hash, podríamos crackearlo usando una tabla rainbow o podemos buscarlo en los miles de bases de datos que hay online.

Una herramienta que nos permite hacer esto es HashCat esta nos da un plus ya que tiene soporte para una gran cantidad de hash y constantemente están añadiendo nuevos, además al hacer el crackeo se puede configurar para que use la potencia de nuestra GPU (Unidad de Procesamiento Gráfico) para descifrar el hash.

Esto ayuda mucho porque la diferencia en tiempos de crackeo al usar la GPU son muy notables. Esta herramienta por lo general viene instalada en algunas distribuciones de Linux pero sino está instalada en tu sistema operativo, la puedes descargar de su repositorio oficial (https://github.com/hashcat/hashcat) debemos guiarnos de la ayuda ya que esta herramienta cuenta con un gran número de módulos para acceder a las opciones de ayuda lo hacemos con --help:

hashcat --help

función hash

Para iniciar el crackeo de un hash tenemos que saber qué tipo de hash es para esto nos vamos al módulo de ayuda y buscamos el tipo de algoritmo que usa el hash.

función informática hash

En este caso usaremos el algoritmo MD5 ya que este es el que usa nuestro hash a crackear. Para lanzar Hashcat lo ejecutamos con el # del módulo en este caso -m 0 y le pasamos el archivo con los hashes y el diccionario a utilizar, así:

hashcat -m 0 ARCHIVOCONHASH.txt DICCIONARIO.txt

Identificando el tipo de hash

Herramienta John The Ripper para crackear un hash

Existe otra herramienta que tiene mucho más tiempo de antigüedad y es de las más usadas para crackear hashes, esta es la conocidísima John The Ripper que también utiliza diferentes tipos de módulos, pero podemos lanzarlo y tiene la ventaja si no le pasamos un tipo de hash como parámetro, el intenta identificar el hash e inicia el proceso de crackeo.

Entonces le pasamos el archivo con el hash y con el parámetro --wordlist le pasamos el diccionario:

john ARCHIVOCONHASH.txt --wordlist=DICCIONARIO.txt
función criptográfica hash
identificando el tipo de hash con john the ripper

Herramientas para identificar el tipo de hash y crackearlo online

Para realizar el proceso de identificado y cracking de un hash, también existen plataformas online que aparte de identificar el tipo de hash, también realiza una búsqueda en diferentes bases de datos a ver si ya ha sido crackeado y nos muestra su valor inicial en texto claro, además de su algoritmo de firmado.

Una de las plataformas más completas es Hashes.com (https://hashes.com/en/decrypt/hash), su funcionamiento es muy sencillo, solo pones el listado de hash, uno por línea y el no solo nos muestra su tipo, sino el valor en texto claro si este está en su base de datos.

identificar tipo de hash online
identificar y crackear hash online

CrackStation es otra herramienta que lleva un poco más de tiempo en el mercado, pero sigue vigente y nos permite identificar el tipo de hash, como también nos entregaría su valor en texto claro si se encuentra en su base de datos de conocimiento, para su uso solo es necesario visitar (https://crackstation.net), ingresar un hash por línea (solo se pueden 20 por petición) y resolver el captcha, si todo sale bien, nos dará no solo el tipo de hash, sino también el valor al que corresponde en texto claro.

CrackStation herramienta de crackeo de hash online
cracking e identificación de hash online
Índice

    Identificando el tipo de hash con herramientas de forma masiva

    hashes.com y CrackStation, son solo 2 de los cientos de servicios online que permiten identificar y crackear un hash, realizar la búsqueda en todos estos sitios puede ser una tarea aburrida y monótona, por eso queremos hablarles de una herramienta llamada Search That Hash , esta herramienta escrita en python, automatiza la búsqueda de nuestro hash en los siguientes sitios:

    • https://www.nitrxgen.net/md5db/
    • http://md5.my-addr.com/
    • http://rainbowtables.it64.com/
    • https://www.cmd5.org/
    • https://cracker.okx.ch
    • https://hashdecryption.com/decrypt.php
    • https://md5.gromweb.com/
    • https://md5decrypt.net/
    • https://sha1.gromweb.com/

    evitándonos la búsqueda manual en cada uno de ellos y mostrando los resultados de esta búsqueda de forma amigable en la consola, la herramienta no está por defecto en la mayoría de las distribuciones, pero podemos descargarla desde su repositorio oficial (https://github.com/HashPals/Search-That-Hash) y se instala con:

    pip3 install search-that-hash o pip install search-that-hash

    Veamos la ayuda que nos arroja:

    sth --help
    búsqueda de hash online en distintas bases de datos
    búsqueda de hash online en distintas bases de datos

    Al usarlo en un solo hash podemos hacerlo con -t:

    std -t HASHAQUI

    Identificando el tipo de hash

    Podríamos hacerlo de forma masiva con -f:

    sth -f ARCHIVOCONHASH.txt

    Busqueda masiva de hash

    Espero que este contenido sea de tu agrado, te dejamos nuestras redes sociales para que podamos interactuar por medio de ellas:

    Finalmente, te invito a que nos aportes un comentario, para nuestro equipo de trabajo es muy valioso ya que les permite mejorar y ampliar mucho más este tipo de información.

    Escrito por Santiago Martinez para La Comunidad DragonJAR

    Subir