いくつかの悪意のあるコードを含むPDFファイルです。開いたとき、プロセッサの使用率は最大になり、ファンはフルrpmで動作します。 pdfid.py
は、次の出力を生成します。
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
は、JavaScriptコードが1つあることを示し、/AA
および/OpenAction
は、JavaScriptコードを起動するコードがあることを示します。
ただし pdf-parser.py
ツール、キーワードjavascript
を検索しても一致しません:
python ./pdf-parser.py --search javascript ./document.pdf
ただし、キーワードOpenScript
を検索すると、1つの一致が返されます。
python ./pdf-parser.py --search openaction --raw ./document.pdf
結果:
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
>>
実行中:
python ./pdf-parser.py --reference 33412 --raw ../document.pdf
結果:
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]
>>
ついに実行
python ./pdf-parser.py --object 4368 --raw --filter ./document.pdf
解凍できないバイナリ出力を生成します。
誰かが私の間違いを指摘したり、JavaScriptとOpenActionコードを表示するために抽出する方法を教えたりできますか?
任意の Hex Editor を使用して、PDFファイル(別名画像、テキスト、JavaScriptコードなど)のコンテンツを分割して開きます。これ以降、ファイルのコンテンツを検証し、フィルターできますJavaScriptまたは不審なコード。