PDF-Parser, tratando documentos PDF
Para revisar rápidamente un documento PDF, por ejemplo por si quieres saber si es malicioso o no, no hace falta que lancemos el documento a una sandbox, esperar los resultados.. o Usar herramientas como PeePDF para analizar el archivo a fondo.
Hay herramientas con 5,6 u 7 opciones que cumplen perfectamente su propósito. La herramienta se llama PDF-Parser y está desarrollada por Didier Stevens.
La descargamos y la ejecutamos:
Usage: pdf-parser.py [options] pdf-file|zip-file|url pdf-parser, use it to parse a PDF document Options: --version show program's version number and exit -h, --help show this help message and exit -s SEARCH, --search=SEARCH string to search in indirect objects (except streams) -f, --filter pass stream object through filters (FlateDecode, ASCIIHexDecode, ASCII85Decode, LZWDecode and RunLengthDecode only) -o OBJECT, --object=OBJECT id of indirect object to select (version independent) -r REFERENCE, --reference=REFERENCE id of indirect object being referenced (version independent) -e ELEMENTS, --elements=ELEMENTS type of elements to select (cxtsi) -w, --raw raw output for data and filters -a, --stats display stats for pdf document -t TYPE, --type=TYPE type of indirect object to select -v, --verbose display malformed PDF elements -x EXTRACT, --extract=EXTRACT filename to extract malformed content to -H, --hash display hash of objects -n, --nocanonicalizedoutput do not canonicalize the output -d DUMP, --dump=DUMP filename to dump stream content to -D, --debug display debug info -c, --content display the content for objects without streams or with streams without filters --searchstream=SEARCHSTREAM string to search in streams --unfiltered search in unfiltered streams --casesensitive case sensitive search in streams --regex use regex to search in streams pdf-parser, use it to parse a PDF document Source code put in the public domain by Didier Stevens, no Copyright Use at your own risk https://DidierStevens.com
Como veis no tiene tantas opciones como podría tener una herramienta como PeePDF, pero nos servirá perfectamente para nuestro propósito.
Una de las cosas útiles es la búsqueda de strings dentro del PDF
obj 1 0 Type: /Page Referencing: 3 0 R, 5 0 R << /MediaBox [0 0 1 1] /Type /Page /Contents 3 0 R /Parent 5 0 R >> obj 21 0 Type: Referencing: 20 0 R, 8 0 R << /DA ( /Helv 0 Tf 0 g ) /Fields [20 0 R] /XFA 8 0 R >>
Otra de las cosas, es crear un HASH de cada objeto del PDF:
PDF Comment '%PDF-1.6\n' PDF Comment '%\xe2\xe3\xcf\xd3\n' obj 1 0 len: 66 md5: c09a1afdd6c38c7025bafe2db92ed3c7 obj 5 0 len: 40 md5: 79cc9fb019440d01626fc4824d071d36 obj 8 0 len: 12542 md5: d5201efb9cc38c51ca16186d1e432ebd obj 18 0 len: 178 md5: 1f03ab4b814aa37b845837020f294bf4 obj 19 0 len: 57 md5: 666830794a4356a123bfe3ce5d4c3777 obj 20 0 len: 44 md5: 66048dce99fa175fb4798e69e6d6cc4b obj 23 0 len: 51 md5: bda86f1b801166db11da84508f58b128 obj 21 0 len: 57 md5: 281431b0d6e4f6497571bcfa692d2ce4 xref trailer << /Size 22 /Root 230R >> startxref 17175 PDF Comment '%%EOF\r\n'
Mas opciones que podremos usar es búsqueda por regex, por si queremos extarer dominios e ip's por ejemplo. O dumpear la información a un fichero.
[+]PDF-parser