Estrai codice dannoso dal file PDF

5

Ho un file PDF che contiene codice dannoso; quando viene aperto, l'utilizzo del processore è al massimo e le ventole girano a pieno regime. Il pdfid.py produce il seguente risultato:

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 che c'è un codice JavaScript e /AA e /OpenAction indicano che esiste un codice che avvierà il codice JavaScript.

Tuttavia, utilizzando lo strumento pdf-parser.py , la ricerca della parola chiave javascript non produce corrispondenze:

python ./pdf-parser.py --search javascript ./document.pdf

Ma la ricerca della parola chiave OpenScript restituisce una corrispondenza.

python ./pdf-parser.py --search openaction --raw ./document.pdf

Risultati:

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
  >>

Esecuzione:

python ./pdf-parser.py --reference 33412 --raw ../document.pdf

Risultati:

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 in esecuzione

python ./pdf-parser.py --object 4368 --raw --filter ./document.pdf

produce un output binario che non riesco a decomprimere.

Qualcuno può indicare il mio errore o dirmi come estrarre il codice JavaScript e OpenAction per la visualizzazione?

    
posta zindarod 30.04.2018 - 11:42
fonte

1 risposta

1

Utilizza qualsiasi Editor esadecimale , per dividere i contenuti del file PDF (ovvero immagine, testo, codice javascript, ecc. ). Puoi convalidare i contenuti del tuo file d'ora in poi e filtrare il codice javascript o sospetto.

    
risposta data 03.05.2018 - 11:50
fonte

Leggi altre domande sui tag