Con el hash de un determinado archivo no se puede recuperar el archivo original, por este motivo, una buena práctica de seguridad es almacenar los hashes de las contraseñas en las bases de datos, para que nadie pueda obtener la información en texto plano. No obstante, para crackear este «hash» lo que se hace es probar miles de combinaciones y comparar si los hashes son iguales.
Otros usos que se le puede dar a un hash, es comprobar la integridad de un archivo, es decir, saber si ha sido modificado o no. La huella hash de cada archivo es única, en caso de detectar que dos archivos o datos diferentes generan el mismo hash, se considera que ha ocurrido una colisión, y que este algoritmo de hashing utilizado no es seguro.
El hash acostumbra a ser de menor tamaño que el dato original. Esto es así porque el hashing simplemente genera un código de determinada longitud fija, aunque existen funciones hash que su salida es variable. El hash añade una capa de protección a la hora de almacenar contraseñas, ya que no es posible descifrarlo a no ser que lo ataques por fuerza bruta o diccionario. Existe una herramienta denominada Hashcat que te permitirá descifrar contraseñas utilizando los principales algoritmos de hash para almacenar contraseñas. En esta ocasión, te mostraremos un paso a paso para instalar esta herramienta en Windows 10, aunque también es compatible con sistemas operativos Linux y macOS.
¿Por qué querría contar con una herramienta como esta en mi ordenador? Tanto profesionales en seguridad informática como entusiastas, utilizan esta herramienta para corroborar lo protegidas que se encuentran las distintas contraseñas. Sin embargo, como toda herramienta de este tipo, puede tener sus usos con fines maliciosos de parte de los cibercriminales. De todas formas, consideramos que es importante que todos tengan acceso a herramientas con estas utilidades con fines tanto educativos como profesionales.
Cómo instalar Hashcat en Windows 10
Lo que haremos en primer lugar es ingresar al portal oficial de Hashcat y descargar el archivo en formato binario. Considera esta captura como referencia:
Se descargará el archivo de forma comprimida. De paso, para poder descomprimir y gestionar en general todo archivo comprimido utiliza el programa 7-Zip. Descomprime la carpeta en un lugar práctico de localizar y entra en dicha carpeta. Verás múltiples archivos y, antes de empezar, vamos a copiar un acceso directo al Símbolo de Sistema (línea de comandos) para poder acceder más fácilmente a Hashcat siempre que necesitemos:
Una vez que hayamos localizado el ejecutable cmd, lo copiamos y lo pegamos en la carpeta que descargamos de Hashcat.
Una vez que hayamos pegado el cmd en la carpeta, podemos comenzar a usar Hashcat mediante el Símbolo del Sistema
Abrimos el cmd y directamente empezaremos a utilizar la herramienta desde la ubicación de la carpeta que descargamos.
Un comando sencillo que nos ayudará a corroborar que la herramienta se ejecuta correctamente es el siguiente:
hashcat64.exe --help
Si nuestro sistema operativo es de 32 bits, usamos el siguiente comando:
hashcat32.exe --help
Aparecerá un listado extenso de argumentos de los comandos, y toda la información necesaria para aprovechar Hashcat en distintos escenarios.
Ejecutando ataque de fuerza bruta
Siempre en la misma carpeta, vamos a crear dos archivos .txt para simular nuestro ataque de fuerza bruta. En el primer archivo, vamos a almacenar nuestra contraseña cifrada y en el otro archivo la contraseña ya crackeada.
En este ejemplo, para almacenar la contraseña cifrada le llamo al archivo contrasena_hash y en donde estará la contraseña crackeada se llamará simplemente crackeo.
Para poder cifrar nuestra contraseña, podemos encontrar múltiples generadores de hashes. El que hemos utilizado es este, el cual ofrece una amplia variedad de algoritmos de cifrado. Simplemente, debes introducir el texto a cifrar y en tiempo real genera el hash. A medida que vas agregando más palabras al texto, el hash generado se actualiza automáticamente.
Una vez que hayas generado el hash, vas a almacenarlo en el archivo que creamos recientemente para almacenar la contraseña cifrada. Nuestro ejemplo: contrasena_hash. Luego, volvemos a la línea de comandos de Hashcat para poder llevar a cabo el proceso de crackear nuestra contraseña cifrada.
La estructura del comando es sencilla y variará de acuerdo a lo que queremos hacer. En suma, debemos tener en cuenta que, de acuerdo al algoritmo de cifrado que usamos para cifrar los datos y el tipo de ataque, el uso de CPU puede aumentar considerablemente. En consecuencia, debemos garantizar que no se sobrecaliente nuestro ordenador por crackear contraseñas.
Una buena práctica es contar con programas que monitoricen la temperatura de nuestro ordenador y el uso de la CPU, y tenerla abierta al mismo tiempo que Hashcat. De esta manera, podremos prevenir cualquier eventualidad. Por ejemplo, el pantallazo azul.
Comando para ataque de fuerza bruta a hash MD5
hashcat64.exe -m0 -o crackeo.txt contrasena_hash.txt
El comando que vemos más arriba tiene diferentes argumentos que significan lo siguiente:
- hashcat64.exe – el archivo ejecutable de Hashcat
- -m0 — el algoritmo de cifrado que se va a crackear (MD5)
- -o — el tipo de ataque a realizar, que será el de fuerza bruta
- crackeo.txt – el archivo donde se va a almacenar la contraseña crackeada
- contrasena_hash.txt – el archivo donde tenemos la contraseña a crackear
Por supuesto, esto aplica también al crackeo de contraseñas en forma masiva. Es decir, en un mismo archivo podemos contar con cientos miles o millones de contraseñas. Es bueno reforzar el hecho de que esto requerirá un buen consumo de recursos. Por lo que recomendamos sumo cuidado a la hora de utilizar esta solución.
Una vez que ejecutes este comando, no debes hacer nada más. Si está todo en orden, es cuestión de esperar unos minutos hasta que de el «output» de si el proceso de crackeo fue exitoso o no exitoso. Este es un ejemplo de si el crackeo se dio con éxito:
¿Quienes usan Hashcat?
Originalmente, esta solución fue creada para su uso con fines legítimos. Sobre todo, para fines profesionales. Por ejemplo, un administrador de sistemas puede valerse de Hashcat para corroborar la seguridad de las contraseñas de los usuarios que forman parte de una red. Si logró crackearlo por su cuenta, un cibercriminal podrá hacerlo también.
Otro contexto en el que se puede aplicar es en el pentesting. El pentester tiene como objetivo principal encontrar la mayor cantidad de agujeros de seguridad posible, de manera que sus clientes puedan aplicar mayor cantidad de medidas de seguridad para proteger sus sistemas. Tanto en el contexto profesional como académico, herramientas de este tipo pueden ser aprovechadas.
No es posible evitar que cibercriminales utilicen este tipo de herramientas para atacar y apropiarse de datos de millones de personas alrededor del mundo. Sin embargo, quienes lo usen con fines legítimos ganarán conciencia de la importancia de no solamente contar con contraseñas seguras, sino también, la importancia de almacenarlas con el mayor nivel de protección posible.
Se podría pensar que Hashcat es una herramienta que hace prácticamente inútil que utilicemos algoritmos de hashing para nuestras contraseñas, incluso con los algoritmos más robustos como SHA3. ¿No sería mejor optar por almacenarlo todo en texto plano y ya está? No, igualmente es obligatorio que organizaciones que precisen de contraseñas para acceder a sus servicios, las almacenen de forma segura, de tal forma que se preserve la seguridad y la privacidad en mayor medida.
Fuente obtenida de: https://www.redeszone.net/tutoriales/seguridad/hashcat-descifrar-contrasenas/