Uso del Potfile para Gestionar Hashes Descifrados

Kali LinuxBeginner
Practicar Ahora

Introducción

Hashcat es una herramienta potente y popular para la recuperación de contraseñas. Una de sus características clave para un funcionamiento eficiente es el "potfile". El potfile (abreviatura de "pot of gold file" o archivo de la olla de oro) es un archivo donde hashcat almacena automáticamente los hashes descifrados con éxito y sus correspondientes textos planos. Esto evita que hashcat pierda tiempo y recursos intentando volver a descifrar hashes que ya se han resuelto en sesiones anteriores.

En este laboratorio, aprenderá los fundamentos de la gestión de hashes descifrados utilizando el potfile de hashcat. Aprenderá a localizar el potfile, ver su contenido y utilizar indicadores (flags) específicos de hashcat para consultarlo o incluso ignorarlo cuando sea necesario.

Comprender el Propósito del Potfile

En este paso, aprenderá sobre el papel fundamental del potfile de hashcat.

El potfile es una de las características más importantes de hashcat para la eficiencia. Cada vez que hashcat descifra un hash con éxito, guarda el resultado en el potfile. El propósito principal de esto es construir una base de datos de hashes resueltos.

Antes de iniciar una nueva sesión de descifrado, hashcat compara los hashes de su archivo de entrada con las entradas del potfile. Si un hash ya está presente en el potfile, hashcat lo omitirá, mostrando un estado de "Removed" (Eliminado). Esto garantiza que no desperdicie valiosos ciclos de CPU/GPU en trabajo que ya se ha realizado.

El formato estándar para las entradas en el potfile es simple y efectivo:

HASH:PLAINTEXT

Este paso es puramente conceptual para construir su comprensión. No hay comandos que ejecutar. Puede proceder al siguiente paso para encontrar la ubicación de este archivo.

Localizar el hashcat.potfile por Defecto

En este paso, localizará el potfile por defecto creado por hashcat.

Por defecto, hashcat no crea el potfile en su directorio de trabajo actual. En su lugar, lo coloca en una carpeta dedicada de hashcat dentro del directorio principal del usuario para mantenerlo persistente a través de diferentes sesiones y proyectos de descifrado. La ubicación por defecto en un sistema Linux es ~/.local/share/hashcat/.

Verifiquemos la existencia del archivo. Utilice el comando ls -l para listar el contenido del directorio de hashcat.

ls -l ~/.local/share/hashcat/

Debería ver el hashcat.potfile en la salida, junto con otros posibles archivos relacionados con la sesión.

total 4
-rw-r--r-- 1 labex labex 42 May 20 10:30 hashcat.potfile

Ahora que ha localizado el archivo, el siguiente paso será ver su contenido.

Ver el Contenido del Potfile

En este paso, inspeccionará el contenido del hashcat.potfile para ver cómo se almacenan los hashes descifrados.

Dado que el potfile es un archivo de texto plano, puede utilizar cualquier visor de texto estándar de la línea de comandos como cat, less o more para ver lo que contiene. Para un archivo pequeño como el nuestro, cat es perfecto.

Ejecute el siguiente comando en su terminal para mostrar el contenido del potfile por defecto:

cat ~/.local/share/hashcat/hashcat.potfile

La salida mostrará el hash que fue descifrado durante la configuración del laboratorio, seguido de dos puntos (:), y luego la contraseña en texto plano.

5f4dcc3b5aa765d61d8327deb882cf99:password

Este simple formato HASH:PLAINTEXT hace que el archivo sea fácil de leer y analizar, tanto para los humanos como para el propio hashcat.

Usar la Opción --show para Consultar el Potfile

En este paso, aprenderá a usar la opción --show para consultar eficientemente el potfile en busca de hashes descifrados.

Si bien puede usar cat y grep manualmente en el potfile, hashcat proporciona una forma mucho más elegante e integrada de verificar si los hashes de un archivo determinado ya han sido descifrados. La opción --show se utiliza para este propósito. Toma un archivo de hashes como entrada e imprime los textos planos descifrados para cualquier hash encontrado en el potfile.

Usemosla para verificar nuestro archivo hashes.txt.

hashcat -m 0 --show hashes.txt

Analicemos el comando:

  • hashcat: El programa en sí.
  • -m 0: Especifica el modo de hash. 0 es para MD5, que es el tipo de hash en nuestro archivo hashes.txt. Esto es necesario para que --show funcione correctamente.
  • --show: Esta opción le indica a hashcat que realice una operación de consulta en lugar de una sesión de descifrado.
  • hashes.txt: El archivo de entrada que contiene los hashes que desea verificar.

El comando producirá la siguiente salida, que es idéntica al contenido del potfile porque nuestro hash fue encontrado.

5f4dcc3b5aa765d61d8327deb882cf99:password

Este comando es extremadamente útil cuando tiene una lista grande de hashes y desea ver rápidamente cuáles se han recuperado previamente.

Eliminar Hashes Descifrados de la Entrada con --potfile-disable

En este paso, aprenderá cómo hashcat evita automáticamente volver a descifrar hashes y cómo puede anular este comportamiento con la opción --potfile-disable.

Primero, veamos qué sucede cuando intenta ejecutar el mismo trabajo de descifrado nuevamente. Dado que el hash ya está en el potfile, hashcat debería reconocer esto y finalizar instantáneamente.

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

Observe la salida. Hashcat informará que todos los hashes se encontraron en el potfile y no los reprocesará.

...
All hashes found in potfile!

NOTE: All hashes loaded from file hashes.txt are already cracked and were skipped.
To re-crack these hashes, you need to remove them from the potfile.
...

Ahora, ¿qué pasa si quiere volver a descifrar el hash, quizás con fines de benchmarking o para probar un modo de ataque diferente? Puede usar la opción --potfile-disable. Esto le indica a hashcat que ignore por completo el potfile tanto para leer como para escribir.

Ejecute el comando nuevamente, pero esta vez agregue la opción:

hashcat -m 0 -a 0 hashes.txt wordlist.txt --force --potfile-disable

Esta vez, hashcat realizará la operación de descifrado completa porque está ignorando el potfile. Verá el progreso del estado y un estado "Cracked" (Descifrado) al final.

...
Session..........: hashcat
Status...........: Cracked
...
Cracked (1/1) hashes, (1/1) digests
...

Usar --potfile-disable es una herramienta específica para situaciones específicas. En la mayoría de los casos, querrá aprovechar el potfile para ahorrar tiempo.

Resumen

En este laboratorio, ha aprendido las habilidades esenciales para gestionar hashes descifrados con el potfile de hashcat.

Ahora comprende que el potfile es una característica crucial para la eficiencia, que actúa como una base de datos de hashes resueltos. Ha aprendido a:

  • Localizar el potfile predeterminado en ~/.local/share/hashcat/hashcat.potfile.
  • Ver su contenido utilizando comandos estándar de Linux como cat.
  • Consultar el potfile para hashes específicos de un archivo de entrada utilizando la opción --show.
  • Anular la funcionalidad del potfile para casos de uso específicos con la opción --potfile-disable.

Dominar el uso del potfile es un paso fundamental para convertirse en un usuario competente de hashcat, lo que le permitirá ejecutar tareas de recuperación de contraseñas más efectivas y eficientes.