Analizar Estadísticas de Cracking en Tiempo Real

Kali LinuxBeginner
Practicar Ahora

Introducción

Hashcat es una herramienta potente y popular para la recuperación de contraseñas. Al ejecutar una sesión de cracking, especialmente una que pueda llevar mucho tiempo, es crucial monitorizar su progreso y rendimiento. Hashcat proporciona una pantalla de estado detallada en tiempo real que le ofrece información sobre la velocidad del ataque, el tiempo estimado para su finalización, el rendimiento del hardware y mucho más.

En este laboratorio, aprenderá a iniciar una sesión básica de Hashcat e interpretar sus estadísticas en tiempo real. Al finalizar, podrá monitorizar eficazmente sus tareas de cracking de contraseñas para asegurarse de que se están ejecutando de manera óptima.

Inicio de una Sesión de Hashcat

En este paso, comenzará una sesión de cracking de contraseñas utilizando Hashcat. Utilizaremos un archivo de hash preconfigurado y una lista de palabras (wordlist) ubicados en su directorio ~/project.

Primero, examinemos los archivos que utilizaremos. El archivo hashes.txt contiene un único hash MD5, y wordlist.txt contiene una pequeña lista de posibles contraseñas.

El comando básico para iniciar un ataque de diccionario con Hashcat es hashcat -m <hash_type> -a <attack_mode> <hash_file> <wordlist_file>.

  • -m 0 especifica que el tipo de hash es MD5.
  • -a 0 especifica que el modo de ataque es un ataque "Straight" o de diccionario.

Ahora, abra una terminal y ejecute el siguiente comando para iniciar la sesión. Hashcat se inicializará y comenzará a intentar descifrar el hash.

hashcat -m 0 -a 0 hashes.txt wordlist.txt

Verá una salida similar a la siguiente mientras Hashcat se inicia. No se preocupe por todos los detalles por ahora; simplemente déjelo ejecutarse.

hashcat (v6.2.x) starting...

...

OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-skylake-avx512, 2047/4095 MB (1023 MB allocatable), 2MCU

...

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 0/1 (0.00%) Digests
Progress.........: 0/5 (0.00%)
Rejected.........: 0/0 (0.00%)
Restore.Point....: 0/1 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: password -> hashcat
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A

[s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>

Deje la sesión en ejecución y continúe con el siguiente paso.

Presione 's' para Ver la Pantalla de Estado

En este paso, aprenderá a solicitar manualmente una actualización del estado de su sesión de Hashcat en ejecución.

Mientras Hashcat se está ejecutando, escucha la entrada del teclado para controlar la sesión. En la parte inferior de la salida, verá un indicador como [s]tatus [p]ause [b]ypass [c]heckpoint [q]uit =>. Esto indica los comandos disponibles.

Para obtener las últimas estadísticas, simplemente presione la tecla s en su teclado y luego presione Enter. Hashcat imprimirá inmediatamente una pantalla de estado actualizada en la terminal.

Adelante, presione s ahora.

s

Verá un nuevo bloque de texto que se parece mucho al informe de estado inicial. Esta es la pantalla de estadísticas en tiempo real, que desglosaremos en los siguientes pasos.

Session..........: hashcat
Status...........: Running
Hash.Name........: MD5
Hash.Target......: hashes.txt
Time.Started.....: ...
Time.Estimated...: ...
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   XX.X kH/s (X.XXms) @ Accel:X Loops:X Thr:X Vec:X
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 4/5 (80.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/5 (80.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: labex -> labex
Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A

Observe que algunos valores, como Recovered y Progress, han cambiado.

Interpretar los Campos de Velocidad, Progreso y ETA

En este paso, nos centraremos en tres de las métricas más importantes de la pantalla de estado: Velocidad (Speed), Progreso (Progress) y ETA. Comprender estos campos le ayuda a evaluar el rendimiento y la duración de su sesión de cracking.

Veamos una línea de estado de ejemplo para cada uno:

  • Speed.Dev.#1.........: XX.X kH/s (X.XXms)

    • Velocidad (Speed): Esta línea muestra la velocidad de cracking de cada dispositivo de procesamiento (CPU, GPU, etc.), identificado por #1, #2, etc. La velocidad se mide en hashes por segundo (H/s, kH/s, MH/s). Un número mayor es mejor. En nuestro caso, la VM está utilizando la CPU.
  • Progress.........: 4/5 (80.00%)

    • Progreso (Progress): Esto muestra cuántas contraseñas candidatas se han probado del total en el espacio de claves (keyspace). En este ejemplo, 4/5 significa que se han probado 4 de las 5 palabras de nuestro archivo wordlist.txt.
  • Time.Estimated...: 0 secs

    • ETA (Tiempo Estimado de Llegada - Estimated Time of Arrival): Este campo, etiquetado como Time.Estimated, proporciona una estimación de cuándo finalizará el ataque actual. Esto se calcula en función de la velocidad actual y el trabajo restante en el campo Progress. Para tareas muy cortas como la nuestra, rápidamente se convertirá en 0 segundos.

Estas tres métricas le brindan una visión general rápida y de alto nivel de cómo está funcionando su sesión de cracking.

Comprender los Contadores de Rechazados y Restaurados

En este paso, examinaremos algunos otros campos útiles en la pantalla de estado: Recovered, Rejected y Restore.Point.

Veamos nuevamente la salida de ejemplo:

  • Recovered........: 1/1 (100.00%) Digests

    • Recuperados (Recovered): Este es el campo más crítico para los resultados. Le indica cuántos hashes se han descifrado con éxito. Aquí, 1/1 significa que el hash en nuestro archivo de destino ha sido encontrado. Una vez que esto sucede, Hashcat imprimirá la contraseña descifrada en la terminal.
  • Rejected.........: 0/4 (0.00%)

    • Rechazados (Rejected): Este contador rastrea cuántos candidatos a contraseña de su lista de palabras (wordlist) o conjunto de reglas (ruleset) fueron omitidos. Una contraseña puede ser rechazada si no cumple con los requisitos de longitud o caracteres para un tipo de hash específico. Para un ataque simple de MD5 y diccionario, este valor suele ser cero.
  • Restore.Point....: 4/5 (80.00%)

    • Punto de Restauración (Restore Point): Esto indica la posición exacta en la lista de palabras (o espacio de claves - keyspace) donde Hashcat está trabajando actualmente. Si detiene y luego reanuda la sesión, Hashcat utiliza este punto de restauración para continuar desde donde lo dejó, ahorrándole tener que empezar de nuevo.

Al monitorear estos campos, puede seguir los descifrados exitosos y diagnosticar posibles problemas con sus listas de palabras.

Monitorear la Temperatura y Utilización del Hardware

En este último paso, aprenderá sobre la sección de monitoreo de hardware de la pantalla de estado de Hashcat y cómo salir correctamente de la sesión.

El cracking de contraseñas es una tarea muy intensiva que puede llevar su hardware al límite. Hashcat incluye monitoreo incorporado para ayudarle a vigilar la salud de su sistema.

Observe la línea Hardware.Mon en la salida de estado:

  • Hardware.Mon.#1..: Temp: N/A Util: N/A Core: N/A Mem: N/A Bus: N/A
    • Temp (Temperatura): Muestra la temperatura del dispositivo en Celsius.
    • Util (Utilización): Muestra el porcentaje de utilización del dispositivo (qué tan ocupado está).
    • Core/Mem (Núcleo/Memoria): Muestran las velocidades de reloj del núcleo y la memoria del dispositivo.

Nota: En nuestro entorno de laboratorio virtualizado, estos valores aparecen como N/A (No Aplicable) porque Hashcat no puede acceder directamente a los sensores de hardware del host. En una máquina física con una GPU dedicada, estos campos mostrarían datos en tiempo real, lo cual es fundamental para prevenir el sobrecalentamiento y garantizar un rendimiento estable.

Ahora que nuestra breve sesión ha finalizado y hemos analizado la pantalla de estado, es hora de salir de Hashcat. Para hacer esto, presione q y luego Enter.

q

Hashcat detendrá la sesión y lo devolverá al prompt de comandos.

Resumen

¡Felicitaciones por completar este laboratorio!

Ha aprendido a monitorear eficazmente una sesión de Hashcat en ejecución. Ahora sabe cómo:

  • Iniciar un ataque de diccionario básico con Hashcat.
  • Usar el comando s para ver la pantalla de estado en tiempo real.
  • Interpretar métricas clave de rendimiento como Velocidad (Speed), Progreso (Progress) y Tiempo Estimado de Finalización (ETA).
  • Comprender el significado de los contadores de Recuperados (Recovered), Rechazados (Rejected) y Punto de Restauración (Restore Point).
  • Reconocer los campos de monitoreo de hardware y su importancia.

Estas habilidades son fundamentales para gestionar cualquier tarea de cracking de contraseñas, permitiéndole seguir el progreso, diagnosticar problemas y asegurar que su hardware funcione de manera segura y eficiente.