Una función hash es el resultado de convertir un valor en otro con un algoritmo. Cuando nosotros tenemos que almacenar una contraseña en una base de datos o en un sistema, realmente no almacenamos la contraseña, sino que almacenamos el hash de dicha contraseña. El motivo es que una función hash solo funciona en un sentido, hasheamos la contraseña y almacenamos el hash de dicha clave.
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.
Qué es Hashcat
Para empezar, antes de pasar a usar este tipo de herramienta, hay que tener en cuenta que Hashcat es un programa de recuperación o cracking de contraseñas. De hecho, lo cierto es que nos encontramos ante una de las herramientas más completas. Y todo porque este software en particular puede soportar más de 300 algoritmos de hashing.
Además de lo anterior, hay que señalar que este programa es utilizado de manera habitual por auditores de seguridad, siempre con el objetivo de evaluar la robustez de una contraseña o también para los trabajos de pentesting. De aquí que este software en concreto sea una de las opciones más usadas y conocidas dentro del sector IT. Y todo porque es un cracker o descifrado de contraseñas.
Entre los usos más destacables de este programa se encuentra forzar una contraseña, espionaje para transacciones criminales o prueba y revisión de los sistemas de control internos. En términos generales, hay que tener en cuenta que este programa en particular lo pueden usar tanto dentro del sector de la ciberseguridad como atacantes ilegales.
Ventajas y desventajas de Hashcat
Lo que hay que recordar acerca de Hashcat es que originalmente fue diseñado para sistemas empresariales y el hardware asociado que sería ejecutado en estos y por lo tanto, no es una solución rápida si tenemos un hardware limitado, ni hará que nuestra GPU sea más rápida de repente y sin más, pero lo que sí hará por nosotros, es brindarnos una plataforma profesional para el descifrado de hash distribuido junto con lo que debe describirse como el método de instalación y despliegue más fácil de cualquier herramienta que vaya a encontrar.
Todo se hace para que nosotros desde una configuración de back-end y que podamos sacar de nuestro camino lo tedioso de jugar con los controladores y configuraciones de nuestros controladores y hacérnoslo un poco más fácil.
Dicho esto, podemos ver que hay una serie de puntos a favor y en contra para esta herramienta hash en concreto. De estos, pro ejemplo, se pueden destacar que entre las principales ventajas se encuentran las siguientes:
- Fácil instalación (realmente no puedes equivocarte a menos que nunca haya usado Linux), y aunque así fuese, puedes ir más arriba en este artículo para ver el tutorial de instalación en cualquier momento.
- Portal web intuitivo y funcional.
- API fácil de integrar.
- Absolutamente escalable horizontalmente, podremos agregar nuevos nodos de cómputo en minutos.
- Excelente manejo de errores incorporado y recuperación de sistemas detenidos/reiniciados.
- Amplio uso de archivos de registro para una fácil depuración.
- Excelente manual si es necesario y, por supuesto, soporte.
Al contrario de lo que hemos indicado hasta ahora, también tiene algunas desventajas entre las que podríamos destacar las siguientes:
- Hace un uso intensivo de nuestro hardware por lo que necesita consumir bastante energía energía.
- Requiere SSD y cantidades saludables de RAM en el nodo de control.
- Necesitarás más RAM en los nodos de cómputo que un usuario de hashcat de cli de vainilla. (aunque no deberías tener muy poco de todos modos).
- Como expone una interfaz web, debemos asegurarnos de que nuestra seguridad esté configurada correctamente con respecto al acceso a Internet, las contraseñas utilizadas y el acceso ssh local, etc. encriptación en todas las máquinas, recomendamos que ni siquiera intentes esto si no tiene SSD en todas partes y suficiente potencia de CPU para enc/de/cryption).
Por tanto, dentro de sus características en sí, se pueden encontrar esta serie de puntos a favor y en contra con las que puedes tener una idea más clara de los beneficios y desventajas de utilizar esta herramienta en particular.
Usos de Hashcat
Esta herramienta tiene muchas vías de uso, entre ellas, los usos legítimos. Aunque, por el contrario, también se puede emplear con una finalidad criminal y de espionaje. Por esto mismo es importante conocer a fondo este tipo de software.
Una de las utilidades, dentro del marco legal, está el claro ejemplo del administrador de sistemas. Puede querer utilizar esta herramienta en concreto con el objetivo de revisar la seguridad de las diferentes contraseñas que usan distintos usuarios, y todo como medida preventiva. Y es que, si un ciberatacante puede descrifrarlas, esta herramienta puede servir como advertencia para salir de dudas.
En cualquier caso, se puede sacar partido de esta herramienta para diferentes fines. Como, por ejemplo, forzar una contraseña para verificar la robustez de estas ante posibles ataques. Sin embargo, también está el caso de espionaje a los propios ciberdelincuentes para controlar las transacciones ilegales que van realizando. Por otra parte, está el hecho de que sirve para probar los sistemas de control interno de las empresas.
Hashcat para empresas
Antes de saber cómo funciona Hashcat, es posible que se nos vengan a la cabeza ideas para poder implementarlo en algún sistema. Tales como puede ser una empresa. Y lo cierto es que sería una herramienta muy útil en muchos aspectos diferentes, pero es algo que puede llegar a ser problemático. Incluso en algunos casos, potencialmente peligroso.
Lo primero que debemos saber, es que Hashcat puede ir en contra de las políticas de privacidad de algunas empresas. Lo cual, sin ninguna duda, pone en riesgo la seguridad de la misma. Por lo general las compañías tienen sus propias políticas, las cuales establecen prohibiciones a los empleados para poder acceder a algunos lugares o información más explícita. Con el uso de Hashcat para obtener contraseñas de otros usuarios, o incluso de sistemas sin autorización puede resultar en importantes sanciones disciplinarias. En algunos casos, dependiendo de la empresa, puede acarrear un despido procedente.
Por otro lado, utilizar Hashcat puede llegar a ser considerado como una técnica de hacking. Lo cual va directamente contra las normas de muchas leyes diferentes. Luego, dependiendo de cada país, se aplicarían unas medidas u otras. Pero lo cierto es que su uso puede ser muy peligroso para la seguridad de la red de la empresa. Si un empelado lo utilizara para conseguir algún acceso para el que, por lo general, no está autorizado, puede dejar rastros en forma de vulnerabilidades dentro de los sistemas. Lo cual dejaría la información confidencial al alcance de otros posibles atacantes. En ese caso, la empresa podría estar en un grave problema, ya que se puede poner en riesgo no solo información de la propia organización, sino de los clientes de la misma.
Por lo cual, es importante que las empresas establezcan las medidas de seguridad y políticas adecuadas. Incluso incorporando políticas muy claras sobre el uso de herramientas de este tipo. Todos los empleados deben ser conscientes de que utilizar herramientas como Hashcat, está prohibido, y cualquier actividad de hacking que se realiza puede tener consecuencias muy graves.
Cómo instalar Hashcat en Windows 10 y 11
Una vez que se tienen en cuenta las principales características y uso de esta herramienta en concreto, podemos pasar a conocer los pasos necesarios para llevar a cabo su instalación en Windows 10 y 11. 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. Desde este momento, ya podremos poner a prueba esta herramienta por nuestra cuenta desde el equipo con Windows 10 u 11.
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:
¿Es legal crackear contraseñas?
Ahora que ya sabes más sobre este tipo de herramientas y funciones, es posible que te pregunte si es legal crackear contraseñas. Y lo cierto es que no, no es legal realizar este tipo de actividades. Pero como casi todo en informática, hay algunos casos en los que sí se puede hacer. El cracking de contraseñas, es una actividad ilegal de por sí, y es considerada un delito en gran cantidad de países diferentes, entre los que podemos encontrar: España, Reino Unido, España, y muchos más.
Hay que tener en cuenta que esta técnica en particular consiste en obtener accesos no autorizados, por lo cual se responde prácticamente sola la pregunta. Esto es algo que viola la privacidad de los usuarios, y atenta directamente contra los sistemas. Cuando accedemos sin autorización, se puede acceder a información privada, dañar archivos y programas, así como utilizar técnicas de ingeniería inversa. Por lo que es un aspecto que se debe tener en cuenta en todo momento al usar esta herramienta.
Pero, también debemos hablar de las excepciones que mencionamos. Y es que no siempre es ilegal realizar un crackeo de contraseñas. En muchas ocasiones, esto es algo que se realiza como parte de una auditoría de seguridad, por ejemplo, pero en este caso es siempre con la autorización firmada del propietario de la contraseña. Los expertos en seguridad informática, pueden ser contratados para tratar de robar la información que se les indique, y así en el momento que encuentre un posible fallo del cual aprovecharse, subsanarlo y que ya no se pueda utilizar más. Pero se debe recalcar, que esto es algo que solo es legal si se cuenta con el permiso de los propietarios. También se debe disponer de un acuerdo, que tenga en cuenta todas las leyes y regulaciones qu se pueden aplicar en estos casos.
Por lo cual, salvo que nos dediquemos a la seguridad informática y podamos obtener los permisos necesarios, lo mejor será que no procedamos con este tipo de actividades. Las penas por llevarlas a cabo, pueden ser desde multas, a penas de prisión.
¿Quiénes 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. De esta manera se puede llevar a cabo una acción preventiva con la que evitar que cualquier ciberdelincuente pueda hacerse con dicha contraseña y realizar diferentes transacciones no autorizadas en nombre del usuario en cuestión al que ha creackeado la clave.
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.
Alternativas a Hashcat
Aunque algunas de ellas están más pensadas para recuperar contraseñas, y otras para descubrirlas, todas ellas pueden tener la función que deseas, sea legal, o no, por lo que eso ya dependerá de ti, siendo ilegal, como ya explicamos, sin autorización del propietario.
- John the Ripper: Es una de las alternativas más populares. Permite realizar ataques de diccionario, fuerza bruta y combinados, soportando una gran variedad de formatos de hash, incluidos NTLM, MD5 y SHA-1. Además, no solo es compatible con Windows, sino también con Linux o macOS.
- oclHashcat: Como su nombre indica, es una versión antigua de Hashcat, y aunque la nueva obviamente es mejor, sigue siendo eficaz en sistemas con hardware más antiguo y puede ser útil para aquellos que no necesitan las últimas funciones avanzadas que trae el actual software.
- CrackStation: En este caso hablamos de una herramienta en línea. Permite recuperar contraseñas utilizando tablas arcoiris, que contienen hashes precomputado. Es decir, su utilidad reside en lograr, de forma muy sencilla, claves, sin embargo, estas también deben serlo, ya que no será capaz de lograr nada con otras más complejas.
- Cain & Abel: Permite realizar ataques de diccionario, fuerza bruta y captura de hashes en la red (algo similar al anterior método pero con un programa instalado). Además de la recuperación de contraseñas, Cain & Abel también puede capturar contraseñas almacenadas localmente y en la memoria de los sistemas.
- L0phtCrack está orientado a la auditoría de contraseñas en redes empresariales, especialmente en entornos Windows. Permite realizar auditorías de contraseñas en equipos locales y dominios, detectando contraseñas débiles. Esta orientado, sobre todo, a empresas que quieran comprobar si sus claves podrían ser atacadas de forma sencilla, o requieren de algo más sofisticado para ello.