Usar John the Ripper para Descifrar Archivos RAR

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, explorará el proceso de descifrado de archivos RAR protegidos con contraseña utilizando una potente herramienta llamada John the Ripper. RAR (Roshal Archive) es un formato de archivo de archivo propietario que admite compresión de datos, recuperación de errores y expansión de archivos. Si bien los archivos RAR ofrecen sólidas funciones de compresión y seguridad, las contraseñas débiles pueden hacerlos vulnerables a ataques de fuerza bruta.

John the Ripper es una herramienta gratuita y de código abierto para descifrar contraseñas. Está diseñado para detectar contraseñas débiles de Unix, pero también admite varios otros tipos de hash, incluidos los de archivos RAR. Al final de este laboratorio, comprenderá cómo crear un archivo RAR protegido con contraseña, extraer su hash usando rar2john y luego usar John the Ripper para intentar recuperar la contraseña. También obtendrá información sobre las diferencias entre descifrar archivos RAR y ZIP y aprenderá sobre las mejores prácticas para proteger sus archivos RAR.

Crear un archivo RAR protegido con contraseña

En este paso, creará un archivo de texto simple y luego lo comprimirá en un archivo RAR protegido con contraseña. Este archivo RAR servirá como nuestro objetivo para el descifrado de contraseñas en pasos posteriores.

Primero, cree un nuevo directorio llamado rar_test y navegue hacia él:

mkdir ~/project/rar_test
cd ~/project/rar_test

A continuación, cree un archivo de texto llamado secret.txt con algún contenido. Usaremos nano para esto.

nano secret.txt

Escriba el siguiente contenido en el editor nano:

This is a secret message.
The password is 'labex'.

Presione Ctrl+S para guardar el archivo y Ctrl+X para salir de nano.

Ahora, cree un archivo RAR protegido con contraseña llamado secret.rar a partir de secret.txt. Usaremos la contraseña labex.

rar a -p labex secret.rar secret.txt

La opción a significa "agregar archivos al archivo" y -p se usa para especificar la contraseña. Debería ver una salida similar a esta:

RAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
Shareware version         Type 'rar -?' for help

Creating archive secret.rar

Adding    secret.txt                                               OK
Done

Para verificar que el archivo está efectivamente protegido con contraseña, intente extraerlo sin proporcionar una contraseña:

unrar e secret.rar

Se le pedirá una contraseña:

UNRAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
secret.rar

Extracting from secret.rar

Enter password (will not be echoed) for secret.txt:

Presione Ctrl+C para cancelar la extracción.

Extraer Hash de un Archivo RAR usando rar2john

En este paso, utilizará la utilidad rar2john, que forma parte de la suite John the Ripper, para extraer el hash de la contraseña del archivo secret.rar. Este hash es una representación de la contraseña que John the Ripper puede intentar descifrar.

Asegúrese de que todavía se encuentra en el directorio ~/project/rar_test:

cd ~/project/rar_test

Ahora, ejecute rar2john en su archivo secret.rar y redirija su salida a un nuevo archivo llamado rar_hash.txt:

rar2john secret.rar > rar_hash.txt

Este comando procesa el archivo secret.rar y envía el hash extraído a la salida estándar, que luego se guarda en rar_hash.txt.

Puede ver el contenido del archivo rar_hash.txt usando cat:

cat rar_hash.txt

La salida se verá algo así (el valor real del hash será diferente):

secret.rar:$rar5$16$...

Esta línea contiene la información necesaria para que John the Ripper comience a descifrar la contraseña. El formato $rar5$... indica que es un hash RAR5.

Descifrar Hash RAR con John the Ripper

En este paso, utilizará John the Ripper para descifrar el hash de contraseña extraído en el paso anterior. Utilizaremos un ataque simple de lista de palabras (wordlist attack), que es efectivo para contraseñas débiles.

Asegúrese de que todavía se encuentra en el directorio ~/project/rar_test:

cd ~/project/rar_test

John the Ripper viene con una lista de palabras predeterminada. Para este laboratorio, crearemos una pequeña lista de palabras personalizada que incluya nuestra contraseña conocida (labex) para asegurar un descifrado rápido.

Cree un archivo llamado wordlist.txt con el siguiente contenido:

nano wordlist.txt

Escriba las siguientes contraseñas en el editor nano, cada una en una línea nueva:

password
123456
labex
john

Presione Ctrl+S para guardar el archivo y Ctrl+X para salir de nano.

Ahora, ejecute John the Ripper utilizando el archivo rar_hash.txt y su wordlist.txt personalizado:

john --wordlist=wordlist.txt rar_hash.txt

John the Ripper comenzará a procesar el hash. Dado que labex está en nuestra lista de palabras, debería encontrar la contraseña rápidamente. La salida mostrará la contraseña descifrada:

Using default input encoding: UTF-8
Loaded 1 password hash from rar_hash.txt (RAR5)
Cost 1 (iteration count) is 262144 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
labex            (secret.rar)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s labex
Session completed.

La línea labex (secret.rar) indica que se encontró la contraseña labex para el archivo secret.rar.

También puede verificar las contraseñas descifradas que John the Ripper ha encontrado y almacenado:

john --show rar_hash.txt

Este comando mostrará cualquier contraseña que se haya descifrado y almacenado con éxito en el archivo "pot" interno de John:

secret.rar:labex

1 password hash cracked, 0 left

Esto confirma que John the Ripper descifró correctamente la contraseña RAR.

Comparar el Descifrado de RAR y ZIP

En este paso, compararemos brevemente el proceso de descifrar archivos RAR con el de descifrar archivos ZIP, destacando algunas diferencias clave. Ambos formatos son comunes para la compresión, pero sus mecanismos de cifrado y las herramientas utilizadas para descifrarlos pueden variar.

Primero, creemos un archivo ZIP protegido con contraseña para comparar. Asegúrese de estar en ~/project/rar_test:

cd ~/project/rar_test

Cree un nuevo archivo de texto para el archivo ZIP:

nano zip_secret.txt

Agregue algo de contenido:

This is a secret message for ZIP.
The password is 'zip_pass'.

Guarde y salga de nano (Ctrl+S, Ctrl+X).

Ahora, cree un archivo ZIP protegido con contraseña llamado zip_secret.zip con la contraseña zip_pass:

zip -P zip_pass zip_secret.zip zip_secret.txt

La opción -P se utiliza para especificar la contraseña directamente.

  adding: zip_secret.txt (deflated 29%)

De manera similar a rar2john, existe una utilidad zip2john para extraer hashes de archivos ZIP.

zip2john zip_secret.zip > zip_hash.txt

Vea el hash ZIP extraído:

cat zip_hash.txt

La salida será diferente del hash RAR, típicamente comenzando con zip_secret.zip:$zip$...:

zip_secret.zip:$zip2$*0*1*0*...

Ahora, intentemos descifrarlo con John the Ripper utilizando una lista de palabras que incluya zip_pass:

nano zip_wordlist.txt

Agregue el siguiente contenido:

password
zip_pass
123456

Guarde y salga de nano.

john --wordlist=zip_wordlist.txt zip_hash.txt

John the Ripper descifrará la contraseña ZIP:

Using default input encoding: UTF-8
Loaded 1 password hash from zip_hash.txt (PKZIP)
Cost 1 (iteration count) is 1024 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
zip_pass         (zip_secret.zip)
1g 0:00:00:00 DONE (2023-10-27 10:35) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s zip_pass
Session completed.

Diferencias Clave:

  • Formato del Hash: Los archivos RAR y ZIP utilizan diferentes cifrados internos y formatos de hash, lo que requiere utilidades *2john específicas (rar2john vs. zip2john).
  • Fuerza del Cifrado: El cifrado RAR moderno (RAR5) se considera generalmente más fuerte que el cifrado ZIP estándar (ZipCrypto), especialmente cuando se utiliza AES-256. Esto significa que descifrar RAR5 puede ser más intensivo computacionalmente y llevar más tiempo para contraseñas fuertes.
  • Herramientas: Si bien John the Ripper puede manejar ambos, los módulos subyacentes de extracción y descifrado de hashes son distintos. Otras herramientas como fcrackzip están diseñadas específicamente para ZIP, mientras que rarcrack es para RAR.

Esta comparación demuestra que, si bien el enfoque general (extraer hash, descifrar con lista de palabras) es similar, los detalles del manejo de diferentes formatos de archivo varían.

Mejores Prácticas para la Seguridad de RAR

En este paso, discutiremos las mejores prácticas para asegurar sus archivos RAR y evitar que sean descifrados fácilmente. Comprender estas prácticas es crucial para proteger sus datos sensibles.

La facilidad con la que desciframos el archivo secret.rar en este laboratorio resalta la importancia de las contraseñas seguras. Aquí hay algunas mejores prácticas para la seguridad de RAR:

  1. Utilice Contraseñas Fuertes y Únicas:

    • Longitud: Apunte a contraseñas que tengan al menos 12-16 caracteres de longitud. Las contraseñas más largas son exponencialmente más difíciles de descifrar.
    • Complejidad: Incluya una combinación de letras mayúsculas, minúsculas, números y caracteres especiales. Evite palabras comunes, nombres o secuencias fáciles de adivinar (como "123456" o "password").
    • Unicidad: Nunca reutilice contraseñas en diferentes cuentas o archivos. Si una contraseña se ve comprometida, las otras permanecen seguras.
  2. Utilice Gestores de Contraseñas:

    • Los gestores de contraseñas pueden generar y almacenar contraseñas complejas y únicas para usted, lo que facilita seguir las recomendaciones anteriores sin tener que memorizarlas todas.
  3. Habilite Cifrado Fuerte (RAR5 con AES-256):

    • Al crear archivos RAR, asegúrese de estar utilizando el último formato RAR (RAR5) que utiliza cifrado AES-256 por defecto. Esto es significativamente más seguro que los formatos RAR más antiguos o los algoritmos de cifrado más débiles. La mayoría de las herramientas rar modernas utilizan RAR5 por defecto.
  4. Evite Almacenar Contraseñas Cerca de los Archivos:

    • Nunca almacene la contraseña de un archivo en un archivo de texto o una nota adhesiva junto al archivo mismo. Esto anula el propósito de la protección con contraseña.
  5. Limite el Acceso a los Archivos:

    • Almacene sus archivos RAR protegidos con contraseña en ubicaciones seguras con acceso restringido. Incluso con una contraseña fuerte, si un atacante obtiene acceso físico a su dispositivo o red, podría tener más oportunidades de intentar descifrarla.
  6. Tenga Cuidado con el Phishing y la Ingeniería Social:

    • Los atacantes pueden intentar engañarlo para que revele sus contraseñas a través de correos electrónicos falsos, sitios web o comunicación directa. Siempre sea sospechoso de las solicitudes no solicitadas de información confidencial.

Siguiendo estas mejores prácticas, puede mejorar significativamente la seguridad de sus archivos RAR y proteger sus datos del acceso no autorizado. Recuerde, el eslabón más débil en cualquier cadena de seguridad suele ser el elemento humano o una contraseña débil.

Resumen

En este laboratorio, adquirió experiencia práctica en el descifrado de archivos RAR protegidos con contraseña utilizando John the Ripper. Comenzó creando un archivo RAR de muestra con una contraseña conocida. Luego, aprendió a extraer el hash RAR utilizando la utilidad rar2john, que convierte la información de la contraseña del archivo en un formato que John the Ripper puede entender.

Posteriormente, utilizó con éxito John the Ripper con una lista de palabras personalizada para descifrar la contraseña del archivo RAR, demostrando la vulnerabilidad de los archivos protegidos por contraseñas débiles o comunes. También exploró las diferencias entre descifrar archivos RAR y ZIP, observando los distintos formatos de hash y las fortalezas de cifrado.

Finalmente, el laboratorio concluyó con una discusión sobre las mejores prácticas para la seguridad de RAR, enfatizando la importancia de contraseñas fuertes y únicas, el uso de cifrado moderno y la práctica de una buena higiene de seguridad para proteger sus datos sensibles almacenados en archivos. Este laboratorio proporciona una comprensión fundamental de las técnicas de descifrado de contraseñas y la necesidad crítica de políticas de contraseñas sólidas.