Que fait Analyse de PDF malveillants avec peepdf ?
Quand l'utiliser
- Lors du triage de pièces jointes PDF suspectes provenant d'emails de phishing
- Pendant l'analyse de logiciels malveillants sur des documents PDF exploitables
- Lors de l'extraction de JavaScript, shellcode ou exécutables embarqués dans des PDF
- Pour l'examen forensique d'artefacts de documents militarisés
- Lors de la création de signatures de détection pour les menaces basées sur les PDF
Prérequis
- Python 3.8+ avec peepdf-3 installé (
pip install peepdf-3)
- pdfid.py et pdf-parser.py de la suite Didier Stevens
- Environnement d'analyse isolé (VM ou sandbox)
- Optionnel : PyV8 pour l'émulation JavaScript dans peepdf
- Optionnel : Pylibemu pour l'analyse de shellcode
Workflow
- Triage avec pdfid : Analyser le PDF pour détecter les mots-clés suspects (
/JS, /JavaScript, /OpenAction, /Launch, /EmbeddedFile).
- Analyse interactive : Ouvrir le PDF en mode interactif peepdf pour explorer la structure objet.
- Identifier les objets suspects : Localiser les objets contenant du JavaScript, des flux ou des données encodées.
- Extraire le contenu : Vider les flux suspects et décoder les filtres (FlateDecode, ASCIIHexDecode).
- Désobfusquer le JavaScript : Analyser le JS extrait pour détecter du shellcode, des heap sprays ou du code d'exploitation.
- Vérifier VirusTotal : Utiliser
peepdf vtcheck pour recouper le hash du fichier avec les détections antivirales.
- Générer les IOCs : Extraire les URLs, domaines, hashes et signatures de shellcode.
Concepts clés
| Concept | Description |
|---|
/OpenAction | Action automatique exécutée à l'ouverture du PDF |
/JavaScript /JS | Code JavaScript embarqué dans les objets PDF |
/Launch | Action qui lance des applications externes |
/EmbeddedFile | Fichier intégré dans la structure du PDF |
| FlateDecode | Filtre de compression zlib utilisé pour masquer le contenu |
| Object Streams | Objets PDF stockés dans des flux compressés |
Outils et systèmes
| Outil | Objectif |
|---|
| peepdf / peepdf-3 | Analyse interactive de PDF avec émulation JS |
| pdfid.py | Analyse rapide pour détection de mots-clés suspects |
| pdf-parser.py | Analyse approfondie au niveau objet du PDF |
| VirusTotal | Recherche de hash et recoupement avec les détections AV |
| CyberChef | Décodage et transformation des charges utiles extraites |
Format de sortie
Rapport d'analyse : PDF-MAL-[DATE]-[SEQ]
Fichier : [nom_fichier.pdf]
SHA-256 : [hash]
Mots-clés suspects : [/JS, /OpenAction, etc.]
Objets avec JavaScript : [IDs des objets]
URLs extraites : [Liste]
Shellcode détecté : [Oui/Non]
Fichiers embarqués : [Nombre et types]
Détections VirusTotal : [X/Y moteurs]
Niveau de risque : [Critique/Élevé/Moyen/Faible]