Liberada peepdf v0.3

Después de mucho tiempo sin liberar una nueva release, ya está aquí la versión 0.3 de peepdf. No es que no se haya trabajado en el proyecto, sino que después de añadir la opción de actualizar la herramienta desde línea de comandos, la liberación de nuevas versiones ha quedado relegada a un segundo plano. Además, a partir de enero de 2014 Google eliminó la opción de añadir nuevas descargas de los proyectos alojados en Google Code, así que tenía que pensar en una alternativa. Desde ahora los nuevos archivos se alojarán en eternal-todo.com, en la sección de releases.

 

Las diferencias con la versión 0.2 son notables: se han añadido nuevos comandos y funcionalidades, se han actualizado librerías, se cambió el motor de ejecución de Javascript, se añadió detección para varias vulnerabilidades, y, por supuesto, se han corregidos muchos bugs. Esta es la lista de los cambios más importantes (changelog completo aquí):

 

  • Cambio de Spidermonkey por PyV8 como motor Javascript (ver por qué aquí).

  • Nuevo comando vt_check para mostrar la detección en VirusTotal (API key incluida). El archivo no se envía a VT, sólo los hashes.

  • Detección de CVE-2010-0188, CVE-2010-2883, CVE-2013-0640, CVE-2013-2729 y CVE-2013-3346.

  • Actualización de la librería colorama a la versión 3.1.

  • Nueva opción para evitar la ejecución automática de código Javascript (-m). Útil para evitar bucles infinitos relacionados con heap spraying.

  • Nuevo comando js_jjdecode para decodificar código Javascript que usa el algoritmo jjencode.

  • Nuevo comando js_vars para listar las variables del contexto de ejecución de Javascript y mostrar sus valores.

  • Descripción más completa de los exploits encontrados.

 

peepdf detecting CVE-2013-0640

 

Otro de los cambios que ha habido es la eliminación del comando “set output” para redirigir la salida y poder extraer contenido a variables y archivos en disco. Hace tiempo que el uso de la redirección tipo consola de comandos (">", ">>", "$>" y "$>>") estaba activa, pero no ha sido hasta ahora que se ha eliminado la anterior forma de extraer contenido, un poco más aparatosa.

 

Además de esto, es importante mencionar que se arregló un bug que hacía que el prompt de la consola interactiva se comportara de forma un tanto rara, truncando caracteres, mezclando saltos de línea, etc. Era un fallo que se daba en entornos Unix, dejando fuera a los sistemas Windows, y era debido al uso de la librería GNU Readline y un fallo de ésta al manejar prompts con colores. En sistemas Linux se solucionó correctamente, pero en Mac OS X parece que el comportamiento continúa, debido a que no se usa la librería GNU Readline si no Editline. Hasta el momento no he encontrado una forma de solucionar este problema en este sistema operativo, así que si alguien sabe cómo le agradecería que se pusiera en contacto conmigo ;)

 

Para la próxima versión intentaré incluir la detección de más vulnerabilidades/exploits, salida en formato JSON (parece que XML está un poco desfasado ;p), mejoras en la ejecución de código Javascript y solución de todos los fallos que vayan saliendo.

 

Si no tenéis ya peepdf en vuestro sistema podéis descargar el paquete desde aquí (ZIP o TAR.GZ). Como siempre, espero vuestro feedback para seguir mejorando la herramienta. Muchas gracias!