Aprenda cómo puede usar pikepdf, pdf2john y otras herramientas para descifrar archivos PDF protegidos con contraseña en Python.
Supongamos que tiene un archivo PDF protegido con contraseña y es su trabajo de máxima prioridad acceder a él, pero desafortunadamente, pasó por alto la contraseña. Entonces, en esta etapa, buscará la mejor manera que pueda darle un resultado instantáneo. En este tutorial, aprenderá a:
- Archivos PDF de fuerza bruta que utilizan la biblioteca pikepdf en Python.
- Extraiga el hash de la contraseña de PDF y descifrelo con la utilidad John the Ripper .
- Descifre la contraseña de PDF con el programa iSeePassword Dr.PDF .
Para comenzar, instale las dependencias requeridas:
pip3 install pikepdf tqdm
Descifrando la contraseña de PDF usando pikepdf
pikepdf es una biblioteca de Python que nos permite crear, manipular y reparar archivos PDF. Proporciona una envoltura Pythonic alrededor de la biblioteca QPDF de C ++ .
Sin embargo, no usaremos pikepdf para eso, solo tendremos que abrir el archivo PDF protegido con contraseña, si tiene éxito, eso significa que es una contraseña correcta y generará una PasswordErrorexcepción de lo contrario:
import pikepdf
from tqdm import tqdm
# load password list
passwords = [ line.strip() for line in open("wordlist.txt") ]
# iterate over passwords
for password in tqdm(passwords, "Decrypting PDF"):
try:
# open PDF file
with pikepdf.open("foo-protected.pdf", password=password) as pdf:
# Password decrypted successfully, break out of the loop
print("[+] Password found:", password)
break
except pikepdf._qpdf.PasswordError as e:
# wrong password, just continue in the loop
continue
Primero, cargamos una lista de contraseñas del wordlist.txt archivo en el directorio actual, obténgala aquí . También puede usar rockyou list o cualquier otra lista de palabras grande.
A continuación, iteramos sobre la lista e intentamos abrir el archivo con cada contraseña, pasando el password argumento al pikepdf.open() método, esto surgirá pikepdf._qpdf.PasswordError si es una contraseña incorrecta.
Usamos tqdm aquí solo para imprimir el progreso de cuántas palabras quedan, mira mi resultado:
Decrypting PDF: 43%|████████████████████████████████████████▏ | 2137/5000 [00:06<00:08 320.70it="" abc123="" code="" found:="" password="" s="">00:08>
La contraseña se encontró después de 2137 intentos, que tomaron aproximadamente 6 segundos. Como puede ver, va a unas 320 palabras / s , veremos cómo aumentar esta tasa.
Cómo descifrar la contraseña de un PDF con John The Ripper
John the Ripper es una herramienta de software gratuita y rápida para descifrar contraseñas que está disponible en muchas plataformas. Sin embargo, usaremos el sistema operativo Kali Linux aquí, ya que ya viene preinstalado.
Primero, necesitaremos una forma de extraer el hash de la contraseña del archivo PDF para que sea adecuado para descifrar la utilidad john. Afortunadamente para nosotros, hay un script de Python pdf2john.py que hace eso, vamos a descargarlo:
Coloque su PDF protegido con contraseña en el directorio actual, se llama al mío foo-protected.pdf y ejecute el siguiente comando:
[email protected]:~/pdf-cracking# python3 pdf2john.py foo-protected.pdf | sed "s/::.*$//" | sed "s/^.*://" | sed -r 's/^.{2}//' | sed 's/.\{1\}$//' > hash
Esto extraerá el hash de la contraseña de PDF en un nuevo archivo llamado hash, aquí está mi resultado:
Después de que salvé el hash de la contraseña en hash el archivo, solía cat comando para imprimir a la pantalla.
Finalmente, usamos este archivo hash para descifrar la contraseña:
Simplemente usamos el comando "john [hashfile]" . Como puede ver, la contraseña es 012345 y se encontró con la velocidad de 4503p / s .
Relacionado: Cómo usar algoritmos hash en Python usando hashlib.
Cómo descifrar la contraseña de PDF usando iSeePassword Dr.PDF
No todos los usuarios se sienten cómodos con la codificación en Python o con el uso de comandos en Linux. Por lo tanto, si está buscando un programa eficaz para descifrar contraseñas de PDF en Windows, iSeePassword Dr.PDF es una de las mejores opciones.
Este descifrado de contraseñas PDF tiene una interfaz de usuario fácil de entender, por lo que incluso los principiantes saben cómo usar este programa. Además, ofrece tres potentes algoritmos para descifrar contraseñas, que incluyen Diccionario , Fuerza bruta y Fuerza bruta con máscara. Puede establecer varios tipos de parámetros para mejorar el rendimiento.
Actualmente, la velocidad de descifrado de contraseñas es de hasta 100K por segundo, lo que lo convierte en uno de los programas más rápidos para descifrar contraseñas de PDF.
Conclusión
Así que eso es todo, nuestro trabajo está hecho y hemos descifrado con éxito la contraseña del PDF utilizando tres métodos: pikepdf , John The Ripper e iSeePassword Dr.PDF. El primer método toma mucho tiempo para romper la contraseña, pero es bastante intuitivo para los programadores de Python, mientras que los otros métodos son el método definitivo para obtener la contraseña de un archivo PDF en un corto período de tiempo. Asegúrese de usar esto para uso ético y propio.
Aprenda también: Cómo aplicar la fuerza bruta a las contraseñas de archivos ZIP en Python .