Skip to content

K3lgy/Forensic-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForensicTools — Acquisition, artefacts et analyse

⚠️ Ce projet réalise des opérations sensibles (accès disque bas niveau, capture mémoire, collecte de journaux/registre/historiques). Il est destiné à des opérateurs habilités, dans un cadre légal défini. Ce README documente aussi les limites de chaque mécanisme — à lire avant tout usage sur une scène réelle.

Ce que fait le projet

Étape (ordre de volatilité) Windows Linux macOS
1. État volatil live (réseau, ARP, routes, sessions, processus, services, tâches planifiées) live_artifacts_win.py live_artifacts_lin.py intégré à forensic_mac.py
2. Capture RAM forensic_win.py (winpmem / fallback) forensic_lin.py (LiME / kcore / /dev/mem / proc-mem) non tentée (SIP/Apple Silicon — voir plus bas)
3. Copie bit-à-bit disque forensic_win.py forensic_lin.py forensic_mac.py (/dev/rdiskN)
4. Artefacts persistants (event logs, registre, prefetch, MFT/$LogFile / journald, syslog, historiques navigateur/shell) persistent_artifacts_win.py persistent_artifacts_lin.py intégré à forensic_mac.py (unified logs, FSEvents)
5. Analyse (volatility3, plaso, YARA, Sleuth Kit) analysis/run_analysis.py (multi-plateforme, outils tiers à installer) idem idem
Chaîne de custody opérateur, lieu, horodatage NTP vérifié, manifeste signé (common/custody.py) — appliqué sur toutes les plateformes
Gestion de dossier / rapport common/case_manager.py — CASE.json + RAPPORT.html, sur toutes les plateformes

forensic_tools/common/ contient les briques partagées : write-blocking logiciel, vérification d'intégrité des outils tiers, ordre de volatilité, chaîne de custody, gestion de dossier.

Usage rapide

# Linux — tout, dans l'ordre de volatilité, avec identité opérateur
sudo python3 forensic_lin.py --live --ram --disk /dev/sda --persistent \
    --operator "J. Dupont" --location "Bureau 3, Paris" --case-ref "2026-0472"

# Windows (PowerShell admin)
python forensic_win.py --live --ram --disk \\.\PhysicalDrive0 --persistent ^
    --operator "J. Dupont" --location "Site client" --case-ref "2026-0472"

# macOS (sudo)
sudo python3 forensic_tools/macos/forensic_mac.py --live --persistent --disk /dev/rdisk0

# Menu interactif (recommandé pour un premier usage) — applique l'ordre de
# volatilité automatiquement quel que soit l'ordre choisi dans le menu
sudo python3 forensic_lin.py
python forensic_win.py

# Analyse post-acquisition (outils tiers à installer, voir analysis/README.md)
python forensic_tools/analysis/run_analysis.py forensic_output --ram forensic_output/ram_dump_xxx.raw

Limites connues (à lire avant usage réel)

  1. Write-blocking : FILE_FLAG_NO_BUFFERING/O_DIRECT contournent le cache, ce ne sont pas des bloqueurs d'écriture. common/write_protect.py ajoute une protection logicielle best-effort (blockdev --setro sous Linux, stratégie registre sous Windows) mais ne remplace pas un bloqueur d'écriture matériel certifié, requis pour une procédure légale stricte.
  2. Intégrité des outils tiers : winpmem.exe est vérifié contre un hash de référence (common/TOOL_HASHES.json), mais ce hash a été calculé au packaging de ce projet, pas vérifié indépendamment auprès de Velocidex. Revalidez-le avant usage sur scène.
  3. Chaîne de custody : custody.py signe le manifeste (RSA si le paquet cryptography est installé, sinon HMAC) et horodate via NTP quand le réseau est disponible. Cela renforce la traçabilité technique mais ne remplace pas scellés physiques, témoins, ou les exigences propres à votre juridiction.
  4. macOS : la capture RAM complète n'est pas tentée — SIP et les protections Apple Silicon bloquent l'accès mémoire brut sans compromettre l'intégrité de la scène (désactivation de SIP). Seuls disque, état live et artefacts persistants (dont FSEvents et unified logs) sont couverts.
  5. Analyse : run_analysis.py orchestre volatility3/plaso/YARA/Sleuth Kit s'ils sont installés séparément — rien n'est bundlé (taille et licences). Voir forensic_tools/analysis/README.md.
  6. Outils userland vs rootkits noyau : la collecte live/persistante s'appuie sur des utilitaires système (netstat, ps, tasklist...) qui peuvent être trompés par un rootkit actif. Croiser systématiquement avec l'analyse de la RAM.

Structure du projet

forensic_win.py / forensic_lin.py   — points d'entrée (identiques aux copies dans forensic_tools/)
forensic_tools/
  common/          — case_manager, custody, tool_integrity, write_protect, volatility_order
  windows/         — forensic_win.py, live_artifacts_win.py, persistent_artifacts_win.py, winpmem.exe
  linux/           — forensic_lin.py, live_artifacts_lin.py, persistent_artifacts_lin.py
  macos/           — forensic_mac.py
  analysis/        — run_analysis.py (orchestration volatility3/plaso/YARA/Sleuth Kit)
  lime-builder/    — build LiME pour Linux (inchangé)
  build.py         — compilation PyInstaller (inchangé)

About

ForensicTools automatise l’acquisition forensique multi-plateforme (Windows, Linux, macOS) : collecte d’artefacts volatils et persistants, capture mémoire, copie bit-à-bit des disques, chaîne de custody, gestion des dossiers d’enquête et orchestration d’outils d’analyse (Volatility3, Plaso, YARA, Sleuth Kit).

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors