¿Qué sucede exactamente después de proporcionar el hash del archivo pdf a John para descifrar la contraseña?
¿John extrae solo el hash de contraseña del archivo y trabaja en él, o hay algo más?
Generalmente, el hash de destino que desea romper en el caso de un PDF es el hash del usuario, que se deriva de la contraseña del usuario. Un PDF hará dos cosas cuando se ingrese una contraseña para un PDF encriptado -
PDF es extraño porque en realidad deriva la clave simétrica antes de calcular el hash, de hecho, la clave simétrica se usa en el cálculo del hash. El proceso de producción del hash es el siguiente:
Lo que supondría que hace John the Ripper es que introducirá las contraseñas (definidas por las reglas que usted le dé para generarlas) en el algoritmo anterior hasta que calcule un hash de usuario que coincida con el de los metadatos del documento (es decir, hash que proporcionaste). Dado que la derivación de hash solo utiliza MD5 y RC4 (y tampoco muchas rondas de ellos) es muy fácil probar muchas contraseñas en un corto período de tiempo, por lo que el PDF es bastante susceptible a ataques de fuerza bruta y diccionario. De hecho, todo el algoritmo es bastante extraño y no infunde mucha confianza en la seguridad de los archivos PDF protegidos con contraseña.
John trabaja en diferentes tipos de hashes.
Puede extraer el hash de un archivo pdf utilizando una utilidad como pdf2john
y luego comenzar a crackear con john
como siempre.
Relevante - ¿Cómo puedo extraer el hash dentro de una archivo PDF encriptado?
Editar: ¿Cómo funciona el craqueo de hash real?
La digestión de mensajes es un proceso de hacer hashes. Obtienes el mensaje en alguna función de digestión y obtienes hash. Este tipo de funciones se denominan funciones unidireccionales. Esto significa que una vez que digiere un mensaje, no puede recuperarlo del hash revertiendo esta función. La información sobre el mensaje original se pierde de forma irrecuperable en el proceso.
¿Qué puedes hacer entonces? Puede intentar reproducir el mensaje haciendo un hash de varias palabras y comparándolos con el hash del mensaje original. Si el hash generado es igual al hash del mensaje original, entonces sabrá que la palabra que usó para generar ese hash es igual al mensaje original.
Esto es esencialmente cómo funciona el craqueo de contraseñas en JohnTheRipper.
Las palabras utilizadas para el craqueo pueden generarse de forma incremental (fuerza bruta) o usar un diccionario.
Puedes leer sobre los modos de craqueo de john
aquí .
Puede leer sobre los hashes de contraseña en detalle aquí ¿Por qué las funciones hash son una forma? Si conozco el algoritmo, ¿por qué no puedo calcular su entrada?
Lea otras preguntas en las etiquetas brute-force password-cracking pdf