PDF-Parser, tratando documentos PDF

malicious_pdfPara 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

>>

&nbsp;

&nbsp;

obj 21 0

Type:

Referencing: 20 0 R, 8 0 R

&nbsp;

<<

/DA (

/Helv 0 Tf 0 g )

/Fields [20 0 R]

/XFA 8 0 R

>>

&nbsp;

Otra de las cosas, es crear un HASH de cada objeto del PDF:


PDF Comment '%PDF-1.6\n'

&nbsp;

PDF Comment '%\xe2\xe3\xcf\xd3\n'

&nbsp;

obj 1 0

len: 66 md5: c09a1afdd6c38c7025bafe2db92ed3c7

&nbsp;

obj 5 0

len: 40 md5: 79cc9fb019440d01626fc4824d071d36

&nbsp;

obj 8 0

len: 12542 md5: d5201efb9cc38c51ca16186d1e432ebd

&nbsp;

obj 18 0

len: 178 md5: 1f03ab4b814aa37b845837020f294bf4

&nbsp;

obj 19 0

len: 57 md5: 666830794a4356a123bfe3ce5d4c3777

&nbsp;

obj 20 0

len: 44 md5: 66048dce99fa175fb4798e69e6d6cc4b

&nbsp;

obj 23 0

len: 51 md5: bda86f1b801166db11da84508f58b128

&nbsp;

obj 21 0

len: 57 md5: 281431b0d6e4f6497571bcfa692d2ce4

&nbsp;

xref

&nbsp;

trailer

<<

/Size 22

/Root 230R

>>

&nbsp;

startxref 17175

&nbsp;

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

Subir