Proteger sus documentos PDF importantes con una contraseña puede ser una buena manera de garantizar que su privacidad permanezca intacta, hasta que pierda u olvide la contraseña.

pdfcrack es una sencilla utilidad de línea de comandos que intentará descifrar la contraseña de cualquier archivo PDF con un solo comando, si se utiliza de la manera correcta, y en los archivos que tiene permiso para descifrar.

Descargo de responsabilidad

Descifrar contraseñas de PDF puede no ser legal en su país; siempre debe comprobar las leyes y la legislación antes de intentar hacer algo de este tipo.

Además, pdfcrack está pensado para ser utilizado en archivos que son de su propiedad o en los que ha obtenido permiso para crackear del propietario. Nunca debes utilizar un software de crackeo de contraseñas como éste para obtener las contraseñas de documentos protegidos para los que no tienes permisos o para medios ilegales.

La siguiente información se proporciona únicamente con fines educativos, para ayudar a los usuarios a recuperar los documentos que poseen o que han obtenido permiso para descifrar. El autor o cualquier otra persona que represente a Make Tech Easier no se hace responsable de la forma en que los lectores utilicen la información aquí proporcionada.

Uso

pdfcrack está disponible en los principales repositorios de la mayoría de las distribuciones de Linux. En los derivados de Debian (y por tanto de Ubuntu), puedes instalarlo con

sudoapt-get install pdfcrack

Para descifrar la contraseña de un archivo PDF del que seas propietario o tengas permiso, puedes utilizar el comando

pdfcrack -f nombrearchivo.pdf

pdfcrack intentará descifrar su archivo con una serie de palabras (combinaciones de caracteres) que pueden llevar mucho tiempo, especialmente porque parece ser un proceso de un solo hilo que utiliza sólo un núcleo de la CPU, independientemente de su configuración.

Además de utilizar un solo núcleo, la CPU funcionará al cien por cien durante toda la duración del cracking.

pdfcrack-htop

Para acelerar el proceso, puede alimentar a pdfcrack con un subconjunto de caracteres para probar, utilizando la opción -c. El siguiente ejemplo utilizaría las letras ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’ y los números ‘0’, ‘1’, ‘2’, ‘3’, ‘4’.

pdfcrack -f nombrearchivo.pdf -c abcdef01234

Esto podría ayudarte si tienes una idea aproximada de cómo es tu contraseña, por ejemplo, cuando utilizas varias contraseñas regulares para asegurar tus archivos, pero no estás seguro de cuál es, o temes haber escrito mal una (dos veces) en el momento de configurarla.

Si temes que tu CPU se dañe por el uso intensivo, puedes cancelar el proceso en cualquier momento (Ctrl + C). pdfcrack intentará guardar el estado del proceso,

pdfcrack-save-state

y más tarde puede reanudar el crack desde el archivo guardado con el interruptor -l. El nombre de archivo por defecto para guardar es «savedstate.sav».

pdfcrack -f nombrearchivo.pdf -l estadoguardado.sav

pdfcrack-resume

También puede establecer una longitud mínima o máxima para las contraseñas intentadas. Esto es útil cuando sabes que siempre utilizas una contraseña más larga o más corta que una longitud determinada.

Para establecer la longitud mínima, utilice la bandera -n=LENGTH. Por ejemplo, para comprobar sólo las contraseñas de más de cinco caracteres puede utilizar

pdfcrack -f nombrearchivo.pdf -n=5

Para establecer la longitud máxima, utilice la opción -m=LENGTH. Por ejemplo, para comprobar sólo las contraseñas de menos de diez caracteres, puede utilizar

pdfcrack -f nombrearchivo.pdf -m=10

Por supuesto, puede combinar las opciones. Para buscar contraseñas de menos de diez caracteres pero de más de cinco y que sólo contengan las letras «a, b, c, d, e, f», utilice

pdfcrack -f nombrearchivo.pdf -m=10-n=5-c abcdef

El uso de estas opciones tiene el potencial de dar un considerable aumento de rendimiento si se utiliza de la manera correcta.

Otras opciones incluyen el uso de una lista de palabras (-w), trabajar con una contraseña de propietario (-o) o una contraseña de usuario (-u, aunque este es el comportamiento por defecto), o proporcionar una contraseña de usuario para facilitar el proceso de obtención de una contraseña de propietario (-p). La permutación (-s) se limita actualmente a cambiar el primer carácter a mayúsculas.

También puedes usar -b para realizar un benchmark para tener una idea de lo bien que puede funcionar pdfcrack

pdfcrack-benchmark

Para ver cómo funcionan todas las opciones, simplemente escriba pdfcrack, y se imprimirá su uso.

pdfcrack-options-print

Rendimiento

Para las pruebas, se creó un pequeño archivo PDF de muestra con LibreOffice Writer 4.4 en dos versiones. La primera versión tenía una contraseña aleatoria de diecisiete caracteres con una combinación de letras mayúsculas y minúsculas, números y caracteres no alfanuméricos. El tipo de contraseña que hasta el más paranoico de los expertos en seguridad consideraría «aceptable».

pdfcrack procedió a intentar descifrar la contraseña durante muchos minutos.

pdfcrack-run

Desgraciadamente, la prueba tuvo que ser cancelada porque la temperatura de la CPU llegó a los 69°C/156°F a pesar de todos los intentos de refrigeración (ventiladores de gran tamaño, agua, cerveza fría), y cualquier daño para el chipset de AMD a esa temperatura se consideró indigno para ver lo bien que podría funcionar pdfcrack.

Para el segundo intento se dio una contraseña más corta y mucho más simple – «crackme» -. pdfcrack entregó el resultado en menos de quince minutos.

En el tercer intento se especificó un subconjunto de caracteres – «a,c,d,e,k,m,r,p,t»- que contenía todos los caracteres de la contraseña real y algunos más. El resultado fue casi instantáneo.

pdfcrack-especificar-caracteres

Por supuesto, es bueno pecar de exceso de caracteres. Si no proporcionas los suficientes, la contraseña nunca podría ser descifrada, y los caracteres que faltan nunca se intentarían.

El último intento probablemente represente un escenario más realista en el que usted conoce el tipo de contraseñas que suele utilizar para sus documentos, pero ha olvidado con cuál estaba protegido el PDF (si es su propio documento, probablemente debería conocer esos detalles), y puede ayudar al descifrador de contraseñas a adivinarlas por usted.

Un pequeño truco para acelerar aún más las cosas

pdfcrack es de un solo hilo, lo que significa que no podrá utilizar varios núcleos de la CPU, aunque puedes utilizar bash para ejecutar varias instancias simultáneamente. Si no estás seguro de qué opciones usar, o si tienes varias conjeturas sobre la configuración correcta, este truco te ahorrará algo de tiempo y esfuerzo.

En el siguiente ejemplo, se inician tres instancias a la vez. Una es un simple comando sin opciones, la segunda incluye un subconjunto de letras (que por supuesto incluye todas las letras de la contraseña «crackme»), y la última utiliza un subconjunto diferente de caracteres con una opción para comprobar sólo las palabras de más de cinco caracteres. La ejecución simultánea (múltiples procesos, no múltiples hilos) se consigue con el operador &.

pdfcrack -f testpdf.pdf & pdfcrack -f testpdf.pdf -c rkmetacti & pdfcrack -f testpdf.pdf -c hjktr -n=5

Esto iniciará tres procesos que se ejecutan en tres núcleos distintos

pdfcrack-multi-htop

Como muestra la instantánea de abajo, uno de los comandos ha encontrado la contraseña correcta muy rápidamente, pero los otros dos siguieron intentándolo, así que vale la pena vigilar la salida.

pdfcrack-multiproceso

Otra forma de asegurarse de que esto ocurra sería filtrar la salida de top/htop/atop para que sólo muestre pdfcrack. Cuando uno de los procesos desaparece, probablemente significa que ha encontrado una contraseña.

Una vez que haya encontrado la contraseña, o si desea terminar la ejecución, debe asegurarse de que todos los procesos iniciados mueran. La forma más fácil de asegurarse de esto sería utilizar

killall pdfcrack

desde otra ventana de terminal.

Conclusión

pdfcrack es una herramienta sencilla para recuperar las contraseñas perdidas de tus archivos PDF o de los archivos que tengas permiso para crackear (si las normas lo permiten, claro). No se puede utilizar para alterar los permisos establecidos en el PDF, sino sólo para descifrar una contraseña. Aunque eventualmente descubrirá la contraseña más elaborada, esto podría llevar mucho tiempo. Con un poco de conocimiento (de sus propios hábitos de configuración de contraseñas) y estableciendo las opciones apropiadas, el proceso podría configurarse considerablemente.

Así que, tanto si has olvidado como si has escrito mal tu contraseña al configurarla, puedes recuperarla fácilmente con este único comando.