Descifrar Archivos RAR Protegidos con Contraseña

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá el proceso de descifrar un archivo RAR protegido con contraseña. Esta es una tarea común en las pruebas de penetración y la forense digital. Utilizará una combinación de herramientas potentes y estándar de la industria disponibles en Linux: rar para crear el archivo, la suite John the Ripper (específicamente rar2john) para extraer un hash del archivo y Hashcat para descifrar el hash y revelar la contraseña original.

El proceso implica la creación de un archivo de muestra protegido, la extracción de su hash de contraseña, la identificación del tipo de hash correcto para la herramienta de descifrado y, finalmente, el lanzamiento de un ataque de diccionario para encontrar la contraseña. Este ejercicio práctico le proporcionará una comprensión fundamental de la mecánica del descifrado de contraseñas.

Crear un archivo RAR protegido con contraseña

En este paso, creará un archivo RAR protegido con contraseña. Este servirá como objetivo para nuestro ejercicio de descifrado de contraseñas. Utilizaremos la herramienta de línea de comandos rar. El entorno de laboratorio ya ha creado un archivo de muestra llamado secret.txt en su directorio actual, /home/labex/project.

Primero, usemos el comando rar para crear un archivo. La opción a significa "añadir al archivo" (add to archive), y el modificador -p se utiliza para especificar una contraseña directamente. Usaremos labex como contraseña para este ejercicio.

Ejecute el siguiente comando en su terminal para crear un archivo protegido con contraseña llamado secret.rar que contenga el archivo secret.txt.

rar a -plabex secret.rar secret.txt

Verá una salida que indica que el archivo se está añadiendo y que el archivo se está creando.

RAR 6.12   Copyright (c) 1993-2022 Alexander Roshal   17 May 2022
Trial version             Type 'rar -?' for help

Evaluation copy. Please register.

Creating archive secret.rar

Adding    secret.txt                                                      OK
Done

Ahora, verifique que el archivo secret.rar se ha creado en su directorio de proyecto utilizando el comando ls -l.

ls -l
total 12
-rw-r--r-- 1 labex labex  338 Dec 05 10:30 secret.rar
-rw-r--r-- 1 labex labex   25 Dec 05 10:28 secret.txt
-rw-r--r-- 1 labex labex   29 Dec 05 10:28 wordlist.txt

Ahora ha creado con éxito el archivo objetivo para este laboratorio.

Usar rar2john para extraer el hash del archivo RAR

En este paso, utilizará rar2john, una utilidad de la suite John the Ripper, para extraer el hash de contraseña del archivo secret.rar. Las herramientas de descifrado como Hashcat no funcionan directamente sobre el archivo RAR; necesitan un formato de hash específico que contenga la información necesaria para verificar una contraseña. rar2john está diseñado para este propósito exacto.

Ejecute el siguiente comando para procesar el archivo secret.rar:

rar2john secret.rar

El comando imprimirá una cadena larga en la terminal. Esta cadena es el hash.

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

Este hash contiene la sal (salt) del archivo, datos cifrados y otros metadatos requeridos para el proceso de descifrado. Para facilitar su uso, la mejor práctica es guardar este hash en un archivo de texto.

Utilice la redirección de salida (>) para guardar el hash en un archivo llamado rar_hash.txt.

rar2john secret.rar > rar_hash.txt

Este comando no producirá ninguna salida visible porque la salida se está redirigiendo al archivo. Puede confirmar que el archivo se creó y contiene el hash utilizando el comando cat.

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

Ahora tiene el hash RAR en un formato que las herramientas de descifrado de contraseñas pueden entender.

Identificar el modo de hash correcto para RAR3-hp o RAR5

En este paso, identificará el modo correcto que Hashcat debe utilizar al descifrar el hash. Hashcat soporta cientos de tipos de hash diferentes, y debe especificar el correcto utilizando un número de modo.

El hash que extrajo comienza con $RAR3$*.... Este prefijo le indica el tipo de cifrado RAR utilizado. Para encontrar el modo correspondiente en Hashcat, puede buscar en su menú de ayuda.

Utilice el siguiente comando para listar todos los modos de Hashcat y filtrar aquellos relacionados con "RAR". La bandera -i en grep hace que la búsqueda no distinga entre mayúsculas y minúsculas.

hashcat --help | grep -i "RAR"

La salida mostrará los diferentes modos RAR compatibles con Hashcat.

...
12500 | RAR3-hp                                      | Archives
13000 | RAR5                                         | Archives
...

De la salida, puede ver dos modos principales:

  • 12500 para RAR3-hp
  • 13000 para RAR5

Dado que nuestro hash comienza con $RAR3$, el modo correcto a utilizar es 12500. Identificar el modo de hash correcto es un paso crítico para un intento de descifrado exitoso.

Preparar el hash y la lista de palabras para el ataque

En este paso, preparará los archivos necesarios para el intento de descifrado. Un ataque de diccionario, que es lo que realizaremos, requiere dos entradas principales: el archivo que contiene el hash a descifrar y una lista de palabras (un archivo que contiene posibles contraseñas).

Ya ha completado la primera parte guardando el hash en rar_hash.txt. Revisemos rápidamente su contenido.

cat rar_hash.txt
secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0

A continuación, necesita la lista de palabras. Para este laboratorio, se creó una lista de palabras simple llamada wordlist.txt durante el proceso de configuración. En un escenario del mundo real, utilizaría una lista de palabras mucho más grande, como la famosa rockyou.txt. Examinemos el contenido de nuestra pequeña lista de palabras.

cat wordlist.txt
password
123456
labex
secret

Como puede ver, nuestra lista de palabras contiene algunas contraseñas comunes, incluida la correcta, labex. Con el archivo de hash y la lista de palabras listos, ahora está preparado para lanzar el ataque.

Ejecutar el ataque para encontrar la contraseña RAR

En este paso, ejecutará el ataque de diccionario utilizando Hashcat. Con el archivo de hash, la lista de palabras y el número de modo correcto identificados, tiene todo lo que necesita.

La sintaxis básica para un ataque de diccionario de Hashcat es: hashcat -m <modo> <archivo_hash> <archivo_lista_palabras>.

Ahora, ejecute el comando utilizando el modo 12500, su archivo de hash rar_hash.txt y su lista de palabras wordlist.txt.

hashcat -m 12500 rar_hash.txt wordlist.txt

Hashcat se inicializará, iniciará la sesión de descifrado y probará rápidamente las contraseñas de su lista de palabras contra el hash. Una vez que encuentre una coincidencia, el proceso finalizará y el estado mostrará Cracked.

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: RAR3-hp
Hash.Target......: secret.rar
Time.Started.....: ...
Time.Estimated...: 0 secs (0.00ms)
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:    24211 H/s (0.01ms) @ Accel:128 Loops:128 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 4/4 (100.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1
Candidate.Engine.: Optimized Kernel
Candidates.#1....: password -> secret
Hardware.Mon.#1..: Temp: 45c Fan: 30%
...

Hashcat guarda automáticamente las contraseñas descifradas en un archivo llamado "potfile" ubicado en ~/.hashcat/hashcat.potfile. Para ver la contraseña descifrada, puede usar la opción --show con su comando original.

hashcat -m 12500 rar_hash.txt --show

Esto mostrará el hash y su contraseña descifrada correspondiente.

secret.rar:$RAR3$*0*b51874e2d3731234*f82b2123456789012345678901234567:8:secret.txt:24:0:labex

La contraseña, labex, se muestra al final de la línea, separada por dos puntos. Ha descifrado con éxito la contraseña del archivo RAR.

Resumen

¡Felicitaciones por completar este laboratorio! Ha aprendido con éxito el proceso completo de descifrado de una contraseña de archivo RAR protegido.

En este laboratorio, practicó varias habilidades clave:

  • Creación de un archivo protegido con contraseña utilizando el comando rar.
  • Extracción de un hash descifrable de un archivo RAR con rar2john.
  • Identificación del tipo de hash correcto y su modo correspondiente en Hashcat.
  • Ejecución de un ataque de diccionario con Hashcat utilizando el hash extraído y una lista de palabras.
  • Visualización de la contraseña recuperada.

Estas técnicas son fundamentales en el campo de la ciberseguridad para la recuperación de contraseñas y la auditoría de seguridad. Es importante recordar que estas habilidades solo deben usarse de manera ética y legal, por ejemplo, en sistemas que tenga permiso explícito para probar.