Instalación de Hashcat y Benchmark del Sistema

LinuxBeginner
Practicar Ahora

Introducción

Hashcat es ampliamente reconocido como una de las herramientas de recuperación de contraseñas más rápidas y avanzadas. Soporta una gran variedad de algoritmos de hashing y puede aprovechar tanto las CPUs como las GPUs para acelerar el proceso de descifrado de contraseñas.

En este laboratorio, recorrerás los pasos fundamentales para comenzar a utilizar Hashcat en un sistema Linux. Aprenderás a instalarlo usando el gestor de paquetes estándar, verificar que la instalación fue exitosa y, lo más importante, ejecutar una prueba de rendimiento (benchmark) para comprender las capacidades de rendimiento de tu sistema. Este es un primer paso crucial para cualquier persona interesada en pruebas de penetración (penetration testing), auditoría de seguridad de sistemas o análisis de rendimiento.

Al finalizar este laboratorio, te sentirás cómodo con la configuración inicial y la evaluación de Hashcat.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 91%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Instalar Hashcat usando el gestor de paquetes apt

En este paso, instalarás Hashcat en tu sistema Ubuntu. Utilizaremos el gestor de paquetes apt, que es la herramienta estándar para gestionar software en distribuciones Linux basadas en Debian como Ubuntu.

Primero, es una buena práctica actualizar la lista de paquetes de tu sistema para asegurar que obtienes las versiones más recientes del software. Ejecuta el siguiente comando en tu terminal:

sudo apt update

Verás cómo se descargan las listas de paquetes desde los repositorios.

A continuación, puedes instalar Hashcat. La bandera -y se utiliza para responder automáticamente "sí" a cualquier solicitud durante el proceso de instalación, haciéndolo no interactivo.

sudo apt install hashcat -y

El sistema ahora descargará e instalará Hashcat y sus dependencias. Verás una salida detallando el progreso de la instalación. Una salida de ejemplo podría verse así (los paquetes y versiones exactos pueden variar):

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  hashcat-data ocl-icd-libopencl1
The following NEW packages will be installed:
  hashcat hashcat-data ocl-icd-libopencl1
0 upgraded, 3 newly installed, 0 to remove and XX not upgraded.
Need to get X,XXX kB of archives.
After this operation, XX.X MB of additional disk space will be used.
...
Setting up hashcat-data (X.X.X+ds1-1) ...
Setting up ocl-icd-libopencl1:amd64 (X.X.X-1) ...
Setting up hashcat (X.X.X+ds1-1) ...
Processing triggers for man-db (X.X.X-1) ...
Processing triggers for libc-bin (X.X.X-0ubuntu1) ...

Una vez que el prompt de comandos regrese, Hashcat estará instalado en tu sistema.

Verificar la instalación de Hashcat con 'hashcat --version'

En este paso, verificarás que Hashcat se instaló correctamente y es accesible desde tu terminal. Una forma común de comprobar si una herramienta de línea de comandos está instalada y funcionando es solicitar su número de versión.

Ejecuta el siguiente comando para mostrar la versión instalada de Hashcat:

hashcat --version

Si la instalación fue exitosa, el comando imprimirá el número de versión del binario de Hashcat. La salida debería ser similar a esta:

vX.X.X

Ver el número de versión confirma que el sistema operativo puede encontrar y ejecutar el programa hashcat.

Listar dispositivos de cómputo disponibles con 'hashcat -I'

En este paso, identificarás los dispositivos de cómputo que Hashcat puede utilizar para sus operaciones. Hashcat está diseñado para aprovechar la potencia de procesamiento paralelo del hardware moderno, incluyendo tanto las Unidades Centrales de Procesamiento (CPU) como las Unidades de Procesamiento Gráfico (GPU).

Para ver una lista de todos los dispositivos OpenCL compatibles en tu sistema, puedes usar la bandera -I (i mayúscula).

Ejecuta el siguiente comando:

hashcat -I

Este comando escaneará tu sistema y listará todos los dispositivos que puede usar, junto con sus detalles. En este entorno virtual, es probable que solo veas listada la CPU. Si estuvieras ejecutando esto en una máquina con una tarjeta gráfica dedicada, también la verías listada.

La salida se verá algo así:

hashcat (vX.X.X) starting...

OpenCL Info:
============

Platform ID #1
  Vendor  : ...
  Name    : ...
  Version : OpenCL X.X ...

  Device ID #1
    Type           : CPU
    Vendor ID      : XXX
    Vendor         : ...
    Name           : Intel(R) Xeon(R) ...
    Version        : OpenCL X.X ...
    Processor(s)   : X
    Clock          : XXXX MHz
    ...

Esta información es útil para saber qué dispositivos utilizará Hashcat y para seleccionar dispositivos específicos para una tarea si hay múltiples disponibles.

Ejecutar una prueba de rendimiento del sistema para MD5 con 'hashcat -b -m 0'

En este paso, ejecutará una prueba de rendimiento (benchmark) para medir el desempeño de su sistema para un tipo específico de hash. Este es un paso crítico para entender la rapidez con la que su sistema puede intentar descifrar contraseñas.

Utilizaremos el modo de prueba de rendimiento incorporado de Hashcat. El comando utiliza dos indicadores (flags) importantes:

  • -b o --benchmark: Esto le indica a Hashcat que ejecute su modo de prueba de rendimiento en lugar de una sesión de descifrado real.
  • -m 0: Esto especifica el tipo de hash a evaluar. El número 0 corresponde al algoritmo MD5. MD5 es un algoritmo de hashing muy común y relativamente rápido.

Ahora, ejecute el comando de prueba de rendimiento en su terminal:

hashcat -b -m 0

Hashcat comenzará el proceso de benchmark. Probará el algoritmo especificado (MD5) en todos los dispositivos detectados e informará la velocidad. El proceso puede tardar un minuto en completarse. La salida será detallada, pero la parte más importante es el resumen de velocidad al final.

hashcat (vX.X.X) starting in benchmark mode...

... (initialization messages) ...

Benchmark relevant options:
===========================
* Hash-Type: 0 (MD5)

... (device information) ...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

... (status updates) ...

Benchmark.Final:
================
* Hash-Type: 0 (MD5)

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

...

Espere a que la prueba de rendimiento finalice antes de continuar con el siguiente paso.

La línea Speed.Dev.#1. muestra el rendimiento de su dispositivo principal (la CPU en este caso).

Interpretar los resultados de velocidad de la prueba de rendimiento

En este paso final, analizaremos la salida del benchmark que acaba de ejecutar. Este es un paso conceptual sin nuevos comandos para ejecutar.

Vuelva a consultar la salida del comando hashcat -b -m 0 del paso anterior. La pieza clave de información es la línea que comienza con Speed.

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

Vamos a desglosar esto:

  • Speed.Dev.#1.: Esto se refiere a la velocidad del Dispositivo n.º 1, que identificó en el Paso 3 (probablemente su CPU).
  • XXX.X MH/s: Esta es la métrica más importante. Significa "Mega Hashes por segundo" (Mega Hashes per second). Un valor de 100.0 MH/s significa que su sistema puede calcular y verificar 100 millones de hashes MD5 cada segundo. Cuanto mayor sea este número, más rápido podrá su sistema realizar un ataque de fuerza bruta o de diccionario.
  • (XX.XXms): Este valor indica la latencia o el tiempo necesario para un lote de operaciones, lo cual es más relevante para el ajuste de rendimiento (performance tuning). Para un benchmark básico, el valor H/s es el indicador principal del rendimiento.

La velocidad que ve es específica para el algoritmo MD5 (-m 0). Si tuviera que evaluar el rendimiento de un algoritmo más complejo como bcrypt (-m 3200), la velocidad sería drásticamente menor (medida en H/s o kH/s en lugar de MH/s) porque bcrypt está diseñado intencionalmente para ser lento de calcular.

Comprender la velocidad de benchmark de su sistema es esencial para estimar el tiempo requerido para una tarea de descifrado de contraseñas.

Resumen

¡Felicidades! Has completado con éxito este laboratorio sobre la instalación y el benchmark de Hashcat.

En este laboratorio, has adquirido las siguientes habilidades:

  • Instalar la herramienta Hashcat en un sistema Linux utilizando el gestor de paquetes apt.
  • Verificar una instalación de software comprobando su versión.
  • Identificar los dispositivos de cómputo (CPU y GPU) disponibles que Hashcat puede utilizar.
  • Ejecutar una prueba de rendimiento del sistema para un algoritmo de hash específico (MD5).
  • Interpretar los resultados del benchmark para comprender las capacidades de descifrado de hash de tu sistema.

Estas habilidades fundamentales son esenciales para cualquiera que desee utilizar Hashcat para auditorías de seguridad, recuperación de contraseñas o evaluación del rendimiento del sistema. Ahora estás listo para explorar las características más avanzadas de Hashcat.