Usar John the Ripper para Descifrar Documentos PDF

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, explorará el proceso de descifrado de documentos PDF protegidos con contraseña utilizando la potente herramienta de descifrado de contraseñas de código abierto, John the Ripper. Aprenderá a crear un PDF seguro, extraer su hash e intentar descifrar la contraseña. Este laboratorio también cubrirá diferentes tipos de cifrado de PDF y proporcionará las mejores prácticas para asegurar sus documentos PDF. Comprender estos conceptos es crucial tanto para los profesionales de la ciberseguridad como para cualquier persona que maneje información sensible en formato PDF.

Crear un Documento PDF Protegido con Contraseña

En este paso, creará un archivo de texto simple y lo convertirá en un documento PDF protegido con contraseña. Utilizaremos los comandos enscript y ps2pdf para este propósito. enscript convierte archivos de texto a PostScript, y ps2pdf convierte PostScript a PDF.

Primero, cree un archivo de texto simple llamado secret.txt en su directorio ~/project.

echo "This is a secret document." > ~/project/secret.txt
cat ~/project/secret.txt

A continuación, convierta secret.txt a un archivo PostScript.

enscript -p ~/project/secret.ps ~/project/secret.txt
ls -l ~/project/secret.ps

Ahora, convierta el archivo PostScript a un PDF protegido con contraseña. Estableceremos tanto la contraseña de usuario como la contraseña de propietario a labex123. La contraseña de usuario restringe la apertura del documento, mientras que la contraseña de propietario restringe permisos como la impresión o la edición.

ps2pdf -sOwnerPassword=labex123 -sUserPassword=labex123 ~/project/secret.ps ~/project/protected.pdf
ls -l ~/project/protected.pdf

Ha creado con éxito un documento PDF protegido con contraseña.

Extraer Hash de PDF usando pdf2john

En este paso, extraerá el hash del documento PDF protegido con contraseña utilizando pdf2john.py. pdf2john.py es un script de Python que viene con John the Ripper y está diseñado para extraer hashes descifrables de archivos PDF.

Primero, localice el script pdf2john.py. Generalmente se encuentra en el directorio run de la instalación de John the Ripper.

find /usr/share/john -name pdf2john.py

Ahora, use pdf2john.py para extraer el hash de ~/project/protected.pdf y guárdelo en un archivo llamado pdf_hash.txt.

python3 /usr/share/john/pdf2john.py ~/project/protected.pdf > ~/project/pdf_hash.txt
cat ~/project/pdf_hash.txt

La salida mostrará una cadena de hash que John the Ripper puede intentar descifrar. El formato generalmente incluye información sobre la versión del PDF, el tipo de cifrado y el hash real.

Descifrar Hash de PDF con John the Ripper

En este paso, utilizará John the Ripper para descifrar el hash de PDF extraído. Usaremos una lista de palabras simple para esta demostración.

Primero, cree un archivo de lista de palabras llamado wordlist.txt en su directorio ~/project. Incluya labex123 (la contraseña correcta) y algunas otras contraseñas comunes.

echo -e "password\n123456\nlabex123\nqwerty" > ~/project/wordlist.txt
cat ~/project/wordlist.txt

Ahora, use John the Ripper con wordlist.txt para descifrar el hash en pdf_hash.txt.

john --wordlist=~/project/wordlist.txt ~/project/pdf_hash.txt

John the Ripper procesará el hash y la lista de palabras. Si encuentra una coincidencia, mostrará la contraseña descifrada.

Después de descifrar, puede ver las contraseñas descifradas que John ha encontrado y almacenado.

john --show ~/project/pdf_hash.txt

Debería ver labex123 como la contraseña descifrada para protected.pdf.

Comprender los Tipos de Cifrado de PDF

En este paso, aprenderá sobre los diferentes tipos de cifrado de PDF y cómo afectan la seguridad de un documento PDF. El cifrado de PDF ha evolucionado con el tiempo, y las versiones más nuevas ofrecen una protección más sólida.

El cifrado de PDF utiliza típicamente algoritmos como RC4 o AES. La longitud de la clave también varía, y las claves más largas proporcionan más seguridad.

  • RC4 40-bit: Este es un método de cifrado más antiguo y débil, fácilmente descifrable.
  • RC4 128-bit: Un estándar más antiguo y común, pero aún vulnerable a técnicas de descifrado modernas.
  • AES 128-bit: Un estándar de cifrado más fuerte, más resistente a los ataques de fuerza bruta.
  • AES 256-bit: El cifrado más fuerte disponible actualmente para PDFs, que ofrece una protección robusta.

Puede usar exiftool para inspeccionar los detalles de cifrado de un PDF. Verifiquemos el protected.pdf que creamos.

exiftool ~/project/protected.pdf | grep "Encryption"

La salida mostrará detalles como Encryption : RC4 128-bit o AES 256-bit, dependiendo de las herramientas y versiones utilizadas para crear el PDF. Nuestro comando ps2pdf típicamente usa RC4 128-bit por defecto para compatibilidad con versiones anteriores. Un cifrado más fuerte requiere opciones específicas o herramientas de creación de PDF más nuevas.

Comprender el tipo de cifrado es crucial porque impacta directamente el esfuerzo requerido para descifrar una contraseña. Los tipos de cifrado más débiles son mucho más rápidos de descifrar.

Asegurar Documentos PDF Correctamente

En este paso, aprenderá las mejores prácticas para asegurar documentos PDF y prevenir el acceso no autorizado y el descifrado. Si bien herramientas como John the Ripper pueden descifrar contraseñas débiles, medidas de seguridad sólidas pueden hacerlo extremadamente difícil o imposible.

Aquí hay recomendaciones clave para asegurar sus documentos PDF:

  1. Use Contraseñas Fuertes: Este es el paso más crítico. Una contraseña fuerte debe ser:

    • Larga (al menos 12-16 caracteres).
    • Compleja (mezcla de mayúsculas, minúsculas, números y símbolos).
    • Única (no utilizada para ninguna otra cuenta o documento).
    • Aleatoria (evite palabras de diccionario o información personal).
  2. Use Algoritmos de Cifrado Fuertes: Elija siempre el estándar de cifrado más alto disponible, preferiblemente AES 256-bit. Al crear PDFs, asegúrese de que su software esté configurado para usar cifrado moderno.

  3. Establezca Contraseñas de Usuario y de Propietario:

    • Contraseña de Usuario: Restringe la apertura del documento. Esta es la protección principal.
    • Contraseña de Propietario: Restringe permisos como imprimir, copiar contenido, editar o agregar comentarios. Incluso si se conoce la contraseña de usuario, la contraseña de propietario puede prevenir ciertas acciones.
  4. Evite Almacenar Contraseñas con Documentos: Nunca almacene la contraseña de un PDF en la misma ubicación o en el mismo sistema que el PDF en sí.

  5. Actualice el Software Regularmente: Asegúrese de que su software de creación y visualización de PDF esté actualizado para beneficiarse de los últimos parches de seguridad y estándares de cifrado.

  6. Considere Firmas Digitales: Para autenticidad e integridad, las firmas digitales pueden verificar el origen del documento y asegurar que no ha sido manipulado.

Siguiendo estas prácticas, puede mejorar significativamente la seguridad de sus documentos PDF y proteger información sensible del acceso no autorizado.

Resumen

En este laboratorio, ha adquirido experiencia práctica en el descifrado de documentos PDF protegidos con contraseña utilizando John the Ripper. Aprendió a crear un PDF protegido con contraseña, extraer su hash usando pdf2john.py y luego descifrar la contraseña con éxito. Además, exploró diferentes tipos de cifrado de PDF y comprendió sus implicaciones para la seguridad. Finalmente, revisó las mejores prácticas esenciales para asegurar adecuadamente los documentos PDF, enfatizando la importancia de contraseñas fuertes y estándares de cifrado modernos. Este conocimiento es vital para proteger información sensible y comprender las posibles vulnerabilidades en los archivos PDF.