Extraer código malicioso del archivo PDF

5

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?

    
pregunta zindarod 30.04.2018 - 11:42
fuente

1 respuesta

1

Utilice cualquier Hex Editor , para dividir el contenido del archivo PDF (también conocido como imagen, texto, código javascript, etc.) ). Puede validar el contenido de su archivo a partir de ahora y filtrar el javascript o el código sospechoso.

    
respondido por el Penguine 03.05.2018 - 11:50
fuente

Lea otras preguntas en las etiquetas