plaso
Outil d'analyse de timeline en forensique numérique (log2timeline). Parse des centaines de types d'artefacts depuis des images disque et crée des bases de données de timeline unifiées pour l'investigation d'incidents. Digital forensics timeline analysis tool (log2timeline). Parses hundreds of artifact types from disk images and creates unified timeline databases for incident investigation.
↗ https://github.com/log2timeline/plasoOverview
plaso (Plaso Langar Að Safna Öllu) is the tool behind log2timeline — a digital forensics framework that creates super-timelines from disk images and evidence files. It parses over 100 artifact types (Windows event logs, browser history, registry, prefetch, shellbags, etc.) into a unified timeline for investigation.
Installation
pip3 install plaso
Or via Docker
docker pull log2timeline/plaso
Kali Linux
sudo apt install plaso
Basic Workflow
Step 1: Process disk image into timeline database
log2timeline.py plaso.db image.dd
Step 2: Filter/tag events
psort.py -o dynamic plaso.db | head -100
# Step 3: Export to readable format
psort.py plaso.db -o json > timeline.json
psort.py plaso.db -o l2tcsv > timeline.csv
Processing Sources
Process a raw disk image
log2timeline.py plaso.db /path/to/image.dd
Process a mounted partition
log2timeline.py plaso.db /mnt/evidence/
Process a single file
log2timeline.py plaso.db /path/to/evtx/file.evtx
Process a directory of files
log2timeline.py plaso.db /path/to/artifacts/
Process Windows registry hive
log2timeline.py plaso.db /path/to/NTUSER.DAT
Process memory dump (with Volatility integration)
log2timeline.py --storage-file plaso.db memory.dmp
Output Formats (psort.py)
Default output (human-readable)
psort.py plaso.db
CSV (Excel-compatible)
psort.py -o l2tcsv plaso.db -w timeline.csv
JSON (for Splunk/ELK)
psort.py -o json plaso.db -w timeline.json
Dynamic (flexible fields)
psort.py -o dynamic plaso.db
Elastic output (direct to Elasticsearch)
psort.py -o elastic --server localhost plaso.db
Timesketch (advanced web UI)
psort.py -o timesketch plaso.db
Filtering Events
Filter by date range
psort.py plaso.db "date > '2024-01-01' AND date < '2024-01-31'"
Filter by event type
psort.py plaso.db "data_type is 'windows:evtx:record'"
Filter by source hostname
psort.py plaso.db "hostname is 'VICTIM-PC'"
Filter by keyword
psort.py plaso.db "message contains 'password'"
Show only high-priority events
psort.py plaso.db "tag contains 'loginlogout'"
Common Parsers
See all available parsers
log2timeline.py --parsers list
# Key parsers for Windows investigations:
# winevt, winevtx — Windows Event Logs
# winreg — Windows Registry
# winprefetch — Prefetch files (execution evidence)
# shellbag — Shell Item Bags (folder access)
# lnk — LNK/shortcut files
# chrome_history — Chrome browser history
# firefox_history — Firefox history
# mft — NTFS Master File Table
# usnjrnl — NTFS USN Journal
Timesketch Integration
Timesketch = Web UI for timeline analysis Import plaso output to Timesketch:
psort.py -o timesketch \
--server timesketch.local \
--port 5000 \
--username admin \
--timeline-name "Case_001" \
plaso.db
Tips
- Processing large disk images can take hours — run overnight for large cases
- Use
-qquiet mode to suppress progress output for scripting - Filter by timeframe before the incident to establish baseline behavior
- Timesketch provides collaborative web-based timeline analysis — better than raw CSV
Help / Man page
log2timeline.py [options] <storage_file> <source>
--parsers LIST Comma-separated parser names
--hashers LIST File hashers to run
-q Quiet mode
--status-view Show processing status
psort.py [options] <storage_file> [filter]
-o FORMAT Output format
-w FILE Write to file
--analysis LIST Analysis modules
Vue d’ensemble
plaso (Plaso Langar Að Safna Öllu) est l’outil derrière log2timeline : un framework de forensique numérique qui crée des super-timelines à partir d’images disque et de fichiers de preuves. Il analyse plus de 100 types d’artefacts (journaux d’événements Windows, historique de navigateur, registre, prefetch, shellbags, etc.) pour produire une timeline unifiée destinée à l’investigation.
Installation
pip3 install plaso
# Ou via Docker
docker pull log2timeline/plaso
# Kali Linux
sudo apt install plaso
Workflow de base
# Étape 1 : traiter l'image disque dans une base de données de timeline
log2timeline.py plaso.db image.dd
# Étape 2 : filtrer/taguer les événements
psort.py -o dynamic plaso.db | head -100
# Étape 3 : exporter vers un format lisible
psort.py plaso.db -o json > timeline.json
psort.py plaso.db -o l2tcsv > timeline.csv
Traitement des sources
# Traiter une image disque brute
log2timeline.py plaso.db /path/to/image.dd
# Traiter une partition montée
log2timeline.py plaso.db /mnt/evidence/
# Traiter un seul fichier
log2timeline.py plaso.db /path/to/evtx/file.evtx
# Traiter un répertoire de fichiers
log2timeline.py plaso.db /path/to/artifacts/
# Traiter une ruche de registre Windows
log2timeline.py plaso.db /path/to/NTUSER.DAT
# Traiter un dump mémoire (intégration avec Volatility)
log2timeline.py --storage-file plaso.db memory.dmp
Formats de sortie (psort.py)
# Sortie par défaut (lisible par un humain)
psort.py plaso.db
# CSV (compatible Excel)
psort.py -o l2tcsv plaso.db -w timeline.csv
# JSON (pour Splunk/ELK)
psort.py -o json plaso.db -w timeline.json
# Dynamique (champs flexibles)
psort.py -o dynamic plaso.db
# Sortie Elastic (directement vers Elasticsearch)
psort.py -o elastic --server localhost plaso.db
# Timesketch (interface web avancée)
psort.py -o timesketch plaso.db
Filtrage des événements
# Filtrer par plage de dates
psort.py plaso.db "date > '2024-01-01' AND date < '2024-01-31'"
# Filtrer par type d'événement
psort.py plaso.db "data_type is 'windows:evtx:record'"
# Filtrer par nom d'hôte source
psort.py plaso.db "hostname is 'VICTIM-PC'"
# Filtrer par mot-clé
psort.py plaso.db "message contains 'password'"
# Afficher uniquement les événements prioritaires
psort.py plaso.db "tag contains 'loginlogout'"
Parsers courants
Voir tous les parsers disponibles
log2timeline.py --parsers list
# Parsers clés pour les investigations Windows :
# winevt, winevtx : journaux d'événements Windows
# winreg : registre Windows
# winprefetch : fichiers Prefetch (preuves d'exécution)
# shellbag : Shell Item Bags (accès aux dossiers)
# lnk : fichiers LNK/raccourcis
# chrome_history : historique du navigateur Chrome
# firefox_history : historique Firefox
# mft : table de fichiers maîtresse NTFS (MFT)
# usnjrnl : journal USN NTFS
Intégration avec Timesketch
Timesketch = interface web pour l’analyse de timeline. Importer la sortie de plaso dans Timesketch :
psort.py -o timesketch \
--server timesketch.local \
--port 5000 \
--username admin \
--timeline-name "Case_001" \
plaso.db
Conseils
- Le traitement de grandes images disque peut prendre des heures : lancez-le la nuit pour les affaires volumineuses
- Utilisez le mode silencieux
-qpour supprimer l’affichage de progression lors du scripting - Filtrez sur la période précédant l’incident pour établir un comportement de référence
- Timesketch offre une analyse de timeline collaborative via le web : bien mieux qu’un CSV brut
Aide / Page de manuel
log2timeline.py [options] <storage_file> <source>
--parsers LIST Comma-separated parser names
--hashers LIST File hashers to run
-q Quiet mode
--status-view Show processing status
psort.py [options] <storage_file> [filter]
-o FORMAT Output format
-w FILE Write to file
--analysis LIST Analysis modules