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 0especifica que el tipo de hash es MD5.-a 0especifica 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.
- Velocidad (Speed): Esta línea muestra la velocidad de cracking de cada dispositivo de procesamiento (CPU, GPU, etc.), identificado por
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/5significa que se han probado 4 de las 5 palabras de nuestro archivowordlist.txt.
- Progreso (Progress): Esto muestra cuántas contraseñas candidatas se han probado del total en el espacio de claves (keyspace). En este ejemplo,
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 campoProgress. Para tareas muy cortas como la nuestra, rápidamente se convertirá en 0 segundos.
- ETA (Tiempo Estimado de Llegada - Estimated Time of Arrival): Este campo, etiquetado como
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/1significa 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.
- Recuperados (Recovered): Este es el campo más crítico para los resultados. Le indica cuántos hashes se han descifrado con éxito. Aquí,
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
spara 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.


