Tengo un archivo PDF que contiene algún código malicioso; cuando se abre, el uso del procesador es máximo y los ventiladores funcionan a plena velocidad. El pdfid.py
produce el siguiente resultado:
PDF Header: %PDF-1.7
obj 8598
endobj 8598
stream 8001
endstream 8001
xref 0
trailer 0
startxref 2
/Page 594
/Encrypt 0
/ObjStm 981
/JS 1
/JavaScript 0
/AA 2
/OpenAction 1
/AcroForm 0
/JBIG2Decode 0
/RichMedia 0
/Launch 0
/EmbeddedFile 0
/XFA 0
/URI 0
/Colors > 2^24 0
/JS
indica que hay un código JavaScript y /AA
y /OpenAction
indican que hay un código que iniciará el código JavaScript.
Sin embargo, al utilizar la herramienta pdf-parser.py
, buscar la palabra clave javascript
no produce coincidencias:
python ./pdf-parser.py --search javascript ./document.pdf
Pero la búsqueda de la palabra clave OpenScript
devuelve una coincidencia.
python ./pdf-parser.py --search openaction --raw ./document.pdf
resultado:
obj 33412 0
Type: /Catalog
Referencing: 37640 0 R, 4364 0 R, 37641 0 R, 33413 0 R, 18188 0 R, 33259 0 R, 33264 0 R, 18275 0 R, 37642 0 R
<</MarkInfo 37640 0 R/Metadata 4364 0 R/Names 37641 0 R/OpenAction 33413 0 R/Outlines 18188 0 R/PageLabels 33259 0 R/PageLayout/SinglePage/PageMode/UseNone/Pages 33264 0 R/StructTreeRoot 18275 0 R/Type/Catalog/ViewerPreferences 37642 0 R>>
<<
/MarkInfo 37640 0 R
/Metadata 4364 0 R
/Names 37641 0 R
/OpenAction 33413 0 R
/Outlines 18188 0 R
/PageLabels 33259 0 R
/PageLayout /SinglePage
/PageMode /UseNone
/Pages 33264 0 R
/StructTreeRoot 18275 0 R
/Type /Catalog
/ViewerPreferences 37642 0 R
>>
Ejecutando:
python ./pdf-parser.py --reference 33412 --raw ../document.pdf
resultado:
obj 37639 0
Type: /XRef
Referencing: 33410 0 R, 33412 0 R
Contains stream
<<
/DecodeParms
<<
/Columns 5
/Predictor 12
>>
/Filter /FlateDecode
/ID [<0B1CC64D68284D90BD0A295FADB0972A><08CB936A1AF9EB42A906D26EC2F80EFA>]
/Index [33411 15558]
/Info 33410 0 R
/Length 7901
/Prev 15523287
/Root 33412 0 R
/Size 48969
/Type /XRef
/W [1 3 1]
>>
obj 4368 0
Type: /XRef
Referencing: 33410 0 R, 33412 0 R
Contains stream
<<
/DecodeParms
<<
/Columns 5
/Predictor 12
>>
/Filter /FlateDecode
/ID [<0B1CC64D68284D90BD0A295FADB0972A><08CB936A1AF9EB42A906D26EC2F80EFA>]
/Info 33410 0 R
/Length 8135
/Root 33412 0 R
/Size 33411
/Type /XRef
/W [1 3 1]
>>
Finalmente ejecutándose
python ./pdf-parser.py --object 4368 --raw --filter ./document.pdf
produce una salida binaria que no puedo descomprimir.
¿Alguien puede señalar mi error o decirme cómo extraer el código de JavaScript y OpenAction para verlo?