Was macht Analysieren bösartiger PDFs mit peepdf?
Verwendung
- Bei der Untersuchung verdächtiger PDF-Anhänge aus Phishing-E-Mails
- Während der Analyse von PDF-basierten Exploit-Dokumenten in der Schadsoftwareanalyse
- Beim Extrahieren eingebetteter JavaScripts, Shellcodes oder ausführbarer Dateien aus PDFs
- Für die forensische Untersuchung von manipulierten Dokumentartefakten
- Beim Erstellen von Erkennungssignaturen für PDF-basierte Bedrohungen
Voraussetzungen
- Python 3.8+ mit installiertem peepdf-3 (
pip install peepdf-3)
- pdfid.py und pdf-parser.py aus der Didier Stevens Suite
- Isolierte Analyseumgebung (VM oder Sandbox)
- Optional: PyV8 für die JavaScript-Emulation in peepdf
- Optional: Pylibemu für Shellcode-Analyse
Arbeitsablauf
- Erstbewertung mit pdfid: PDF auf verdächtige Schlüsselwörter überprüfen (/JS, /JavaScript, /OpenAction, /Launch, /EmbeddedFile).
- Interaktive Analyse: PDF im interaktiven Modus von peepdf öffnen, um die Objektstruktur zu untersuchen.
- Verdächtige Objekte identifizieren: Objekte mit JavaScript, Streams oder kodierten Daten lokalisieren.
- Inhalte extrahieren: Verdächtige Streams ausgeben und Filter dekodieren (FlateDecode, ASCIIHexDecode).
- JavaScript entschleiern: Extrahiertes JS auf Shellcode, Heap-Sprays oder Exploit-Code analysieren.
- VirusTotal prüfen: Datei-Hash mit peepdf
vtcheck gegen Antiviren-Erkennungen abgleichen.
- IOCs generieren: URLs, Domains, Hashes und Shellcode-Signaturen extrahieren.
Wichtige Konzepte
| Konzept | Beschreibung |
|---|
/OpenAction | Automatische Aktion, die beim Öffnen der PDF ausgeführt wird |
/JavaScript /JS | Eingebetteter JavaScript-Code in PDF-Objekten |
/Launch | Aktion, die externe Anwendungen startet |
/EmbeddedFile | In die PDF-Struktur eingebettete Datei |
| FlateDecode | zlib-Komprimierungsfilter, der zum Verbergen von Inhalten verwendet wird |
| Objekt-Streams | In komprimierten Streams gespeicherte PDF-Objekte |
Werkzeuge und Systeme
| Werkzeug | Zweck |
|---|
| peepdf / peepdf-3 | Interaktive PDF-Analyse mit JS-Emulation |
| pdfid.py | Schnelle Erstbewertung auf verdächtige Schlüsselwörter |
| pdf-parser.py | Tiefgehende objektbasierte PDF-Analyse |
| VirusTotal | Hash-Abgleich und Abgleich mit Antiviren-Erkennungen |
| CyberChef | Dekodierung und Transformation extrahierter Payloads |
Ausgabeformat
Analysebericht: PDF-MAL-[DATUM]-[NR]
Datei: [dateiname.pdf]
SHA-256: [Hash]
Verdächtige Schlüsselwörter: [/JS, /OpenAction, etc.]
Objekte mit JavaScript: [Objekt-IDs]
Extrahierte URLs: [Liste]
Shellcode erkannt: [Ja/Nein]
Eingebettete Dateien: [Anzahl und Typen]
VirusTotal Erkennungen: [X/Y Engines]
Risikostufe: [Kritisch/Hoch/Mittel/Niedrig]