Cuando la CPU no es lo suficientemente rápida, deja que la GPU lo sea

John the Ripper es un clásico entre las herramientas de cracking de contraseñas, pero se basa principalmente en la CPU para realizar sus cálculos. En el entorno de cálculo moderno, este diseño tiene un límite de velocidad. Hashcat adopta una estrategia completamente diferente, delegando el trabajo de cracking de contraseñas a la GPU. Las GPU fueron diseñadas originalmente para la renderización gráfica y su arquitectura central está diseñada para manejar grandes cantidades de tareas paralelas simultáneamente. Una tarjeta gráfica moderna puede ejecutar miles de núcleos de procesamiento, y el cálculo de hashes de contraseñas es un tipo de tarea que puede ser completamente paralelizado. Esto permite que Hashcat tenga velocidades de cracking en el mismo hardware que pueden ser varios órdenes de magnitud más rápidas que las herramientas tradicionales basadas en CPU. Una GPU de gama media de 2023 puede intentar más de 10 mil millones de combinaciones de hashes MD5 por segundo. A esta velocidad, una contraseña de solo números de ocho dígitos puede ser completamente agotada en cuestión de milisegundos.

Modos de ataque soportados por Hashcat

Hashcat ofrece varios modos de ataque, enfocados en distintos tipos de debilidades de las contraseñas: Ataque de diccionario Intenta directamente desde archivos de diccionarios o listas de contraseñas, siendo el más rápido y efectivo para contraseñas comunes. Hashcat tiene una gran cantidad de diccionarios de contraseñas mantenidos por la comunidad de ciberseguridad, siendo el más conocido el diccionario RockYou, que contiene más de 14 millones de contraseñas recopiladas de varias filtraciones de datos. Ataque combinado Combina los términos de dos archivos de diccionarios, intentado contraseñas que se componen de dos palabras comunes, como sunflower y 2023, combinándolos para formar sunflower2023. Ataque por máscara Dirigido a situaciones donde se conoce la estructura de la contraseña, por ejemplo, si se sabe que la contraseña objetivo está compuesta de cuatro letras minúsculas seguidas de cuatro números, se puede definir esta máscara y solo intentar combinaciones que cumplan con esta estructura, reduciendo significativamente el espacio de búsqueda. Ataque híbrido Combina diccionario y máscara, añadiendo un prefijo o sufijo específico a cada término en

Aplicaciones prácticas en el trabajo de ciberseguridad

En entornos de pruebas de penetración con autorización legítima, Hashcat se encuentra comúnmente en las siguientes situaciones. Cuando los evaluadores obtienen la base de datos de hashes de contraseñas de un sistema y necesitan evaluar cuántas de estas contraseñas podrían ser crackeadas en un tiempo razonable en situaciones de ataque reales, Hashcat proporciona las herramientas necesarias para esta evaluación. Los resultados de esta prueba son utilizados directamente para respaldar recomendaciones sobre ajustes en las políticas de contraseñas de las empresas, como la imposición de longitudes mínimas de contraseñas, prohibición de contraseñas comunes o reducción de la vigencia de las contraseñas. En los ejercicios del equipo rojo de ciberseguridad de las empresas, Hashcat también es una de las herramientas estándar. El objetivo del equipo rojo es simular el comportamiento de los atacantes reales, intentando crackear los hashes de contraseñas en un escenario de invasión simulado, lo que es un componente crucial para evaluar el estado de la seguridad general de la empresa.

Infografía sobre la velocidad de Hashcat y la descripción de sus cuatro modos de ataque.

La realidad de las contraseñas que nos revela esta herramienta

La existencia de Hashcat y su velocidad de cálculo tienen un significado muy directo para el usuario promedio. Muchos al establecer sus contraseñas optan por una palabra significativa junto con algunos números y un símbolo, como Summer@2023, creyendo que esto es lo suficientemente complejo. Sin embargo, la palabra Summer está presente en todos los diccionarios comunes, 2023 es un sufijo anual común y el símbolo @ es uno de los sustitutos más comunes, lo que significa que toda la contraseña podría ser encontrada en cuestión de minutos durante una sesión de trabajo de Hashcat equipado con motor de reglas. Realmente, las contraseñas que tienen resistencia frente a herramientas como Hashcat son aquellas que tienen más de dieciséis caracteres, que utilizan combinaciones de caracteres realmente aleatorias y que no contienen ninguna estructura predecible. Este tipo de contraseñas son casi imposibles de recordar para los humanos, lo que es donde verdaderamente entra en valor un gestor de contraseñas, permitiendo que cada cuenta utilice una combinación de contraseñas fuertes generadas solo por máquinas, sin necesidad de que el cerebro humano lo recuerde.

Preguntas Frecuentes de los aprendices de ciberseguridad sobre Hashcat y el cracking de contraseñas con GPU

¿Cómo elegir entre Hashcat y John the Ripper? ¿Cuáles son las diferencias fundamentales?

La principal diferencia radica en la arquitectura de cálculo y los enfoques en el uso. John the Ripper utiliza la CPU como recurso principal de cálculo, tiene una larga historia y es notablemente versátil en términos de plataformas y formatos soportados, lo que lo hace muy práctico en entornos sin GPU dedicadas o donde se requiere comenzar rápidamente una tarea de cracking básica. Hashcat, en cambio, está diseñado para aprovechar la aceleración de GPU, mostrando ventajas de velocidad significativas en entornos con tarjetas gráficas dedicadas, soportando más de 300 formatos de hash y brindando una mayor flexibilidad en las combinaciones de modos de ataque. En entornos de trabajo de ciberseguridad, ambas herramientas no son opciones mutuamente excluyentes. Los profesionales de ciberseguridad a menudo deciden qué herramienta usar según la naturaleza de la tarea y el hardware disponible, y a veces incluso utilizan ambas herramientas en conjunto. Para aquellos que recién comienzan a aprender, John the Ripper tiene un umbral de entrada algo más bajo, mientras que Hashcat puede proporcionar capacidades de implementación más robustas después de haber entendido los conceptos básicos.

¿Puede la computación en la nube hacer que Hashcat sea más rápido?

Sí, y esta es actualmente una práctica utilizada en ciertas pruebas de penetración y entornos de investigación en ciberseguridad. AWS, Google Cloud y Azure ofrecen instancias de computación en la nube con GPU de alto rendimiento que se pueden alquilar según demanda. En comparación con el hardware personal, los clústeres de GPU en la nube pueden llevar la velocidad de cálculo de Hashcat a otro nivel, reduciendo las tareas de cracking que normalmente tomarían días a solo unas pocas horas o incluso menos. Esta realidad ilustra, desde otra perspectiva, por qué la longitud de las contraseñas es tan importante; a medida que los recursos de cálculo disponibles continúan aumentando, el umbral de longitud de contraseñas que alguna vez se consideró seguro también sigue moviéndose hacia arriba.

¿Qué tipo de hardware se necesita para usar Hashcat?

Hashcat soporta las principales GPU de NVIDIA y AMD, así como algunas tarjetas gráficas integradas de Intel. Funciona mejor en un entorno con GPU dedicada; se soportan tanto la plataforma CUDA de NVIDIA como la plataforma ROCm de AMD. Si no se dispone de GPU dedicada, Hashcat también puede ejecutarse en modo CPU, aunque la velocidad se verá significativamente reducida, alcanzando niveles de rendimiento similares a los de John the Ripper. Hashcat puede ejecutarse en Windows, Linux y macOS, con binarios precompilados disponibles en el sitio web oficial de Hashcat, hashcat.net, que se pueden descargar directamente sin necesidad de compilarlos. En el entorno de Kali Linux, Hashcat también es una de las herramientas preinstaladas y está disponible para su uso.

Una clave a tener en cuenta: Hashcat utiliza la capacidad de cálculo paralelo de las GPU para alcanzar una velocidad en la ruptura de contraseñas que es difícil de comprender de manera intuitiva para la persona promedio. Su insight más importante no es cuán poderosa es la herramienta, sino que, frente a esta capacidad de cálculo, nuestro juicio intuitivo sobre la fortaleza de las contraseñas suele ser mucho más optimista que la situación real.