← retour aux outils back to tools

# 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/plaso

## Overview

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 `-q` quiet 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 `-q` pour 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