Cómo descifrar hashes criptográficos

El hash es un algoritmo que genera una cadena de longitud fija a partir de una entrada.

Hay muchos algoritmos hash diferentes con diferentes propiedades, por ejemplo, SHA-256.

Puede usar openssl para generar un hash SHA-256:

La salida es el hash:

Los hash tienen una propiedad especial: son fáciles de calcular pero difíciles de revertir: dado el hash anterior, es difícil encontrar su origen, “secreto”.

Esto hace que los hash sean un buen método para ver r ify contraseñas: en lugar de almacenar la contraseña en sí y correr el riesgo de que la roben, almacena el hash de la contraseña y cuando un usuario proporciona una contraseña, calcula hash y compárelo con el valor almacenado, si coinciden, significa que el usuario ingresó la contraseña correcta.

Cómo descifrar un hash SHA-256

Pero los hashes pueden revertirse usando un método llamado fuerza bruta que básicamente prueba muchas entradas hasta que encuentra una que coincide con el hash. Esto, por supuesto, no es muy eficiente, pero, con suficiente poder de cómputo, a menudo funciona.

Veamos un ejemplo:

Suponga que le dieron el hash anterior y desea encontrar su origen. Para hacer eso, puede utilizar una herramienta llamada hashcat.

Primero debes instalarlo. Utilicé los siguientes pasos para instalarlo en macOS Catalina (requiere git y make que puede obtener con brew ):

A continuación, debe encontrar el identificador (modo Hash o tipo Hash) de su algoritmo hash. Para SHA-256 es 1400. Puede ver todos los códigos en esta página.

Ahora ejecute:

Y después de un rato, debería obtener:

Puede ver que el estado es “Cracked” y el “secreto” original justo encima.

Cómo descifrar un hash HMAC SHA-256

Probemos con un ejemplo un poco más avanzado. Esta vez usaremos un algoritmo hash diferente llamado HMAC-SHA-256 que requiere no solo la cadena de entrada sino también otra clave secreta.

Primero, generemos el hash de “Lucy en el cielo de diamantes” con una clave secreta “secret”:

Esto generará el hash:

Ahora intentemos revertirlo. El modo Hash de HMAC-SHA-256 es 1450. Pasamos una cadena que comprende el hash y el texto original separados por dos puntos:

Después de un minuto más o menos, debería obtener el resultado, que es la clave secreta “secreta”:

Algunos trucos más avanzados con hashcat

Cada línea del archivo debe tener la forma de “hash” para SHA-256 o “hash: texto original” para HMAC-SHA-256.

2. Puede usar conjuntos de caracteres y patrones personalizados, por ejemplo, este comando busca secretos con solo seis letras minúsculas:

3. Después de descifrar con éxito un hash, hashcat lo almacena en ~ / .hashcat / hashcat.potfile. Si desea ejecutar el mismo crack nuevamente, debe eliminar el resultado de este archivo; de lo contrario, hashcat simplemente devolverá el resultado en caché.

Por último, hablemos de seguridad

En primer lugar, una advertencia obligatoria: ¡no use esto de manera maliciosa!

Ahora, ¿cómo puede protegerse contra atacantes malintencionados:

Consejo : Wolfram Alpha proporciona una buena herramienta para comprobar la seguridad de la contraseña.

¡Disfruta!

Reuven