
Active Directory Forensic Toolkit : Détecter et reconstruire les attaques AD à partir des journaux d'événements Windows (EVTX)
ADFT est un toolkit d’investigation offline pour environnements Active Directory / Windows avec GUI locale intégrée.
Cette release officielle publie une seule surface produit cohérente :
ADFT ingère des preuves exportées, convertit toutes les sources supportées vers un format canonique JSONL, applique des détections et corrélations déterministes, calcule un score d’exposition AD observée, reconstruit la progression d’attaque et génère des artefacts d’investigation et de hardening exploitables.
ADFT v1.0 supporte :
Installation simple recommandée :
./install_adft.sh
Installation recommandée pour une vraie validation EVTX :
./install_adft.sh --run-demo
Installation manuelle :
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e ".[full]"
Installation développement :
pip install -e ".[full,dev]"
Le détail des dépendances est documenté dans docs/DEPENDENCIES.md.
Note dépôt : pyproject.toml est la source de vérité pour le packaging. install_adft.sh est le chemin officiel d’installation complète pour v1.0, et requirements-dev.txt reste disponible pour les contributeurs et la CI.
adft convert test_logs -o converted_inputs
adft investigate test_logs/attack.json -o reports_core --format html json csv --export-events-jsonl
adft summary -o reports_core
adft alerts -o reports_core --full
adft score -o reports_core
adft story -o reports_core --full
adft attack-chain -o reports_core
adft attack-path -o reports_core
adft reconstruct -o reports_core --full
adft harden -o reports_core --dry-run --export-scripts reports_core/remediation
adft report -o reports_core
Lancement :
adft ui -o reports_gui --host 127.0.0.1 --port 8765
Puis ouvrir :
http://127.0.0.1:8765
La GUI est pilotée par le backend : upload, conversion, investigation, alertes, timeline, reconstruction, graphe, benchmark, hardening et exports lisent l’état réel du moteur ADFT au lieu de rejouer une logique métier dans le navigateur.
adft_report.htmladft_report.jsonadft_report.csvattack_navigator_layer.jsonadft_replay.jsonattack_graph.mmdadft_integrity.json.adft_last_run.jsonconverted_inputs/conversion_manifest.jsonhardening_scripts.zip après export GUI ou CLIEVTX reste dans le périmètre supporté.
À l’exécution, le parsing EVTX nécessite python-evtx.
Sans cette dépendance, une conversion EVTX ne peut pas aboutir. La voie d’installation recommandée pour la release officielle est donc :
pip install -e ".[full]"
Cette release embarque 34 rules dans un pipeline déterministe et explicable.
adft/
cli/ points d’entrée CLI
core/ ingestion, normalisation et modèles de données
detection/ rulepack déterministe et pipeline de détection
correlation/ corrélation et regroupement des signaux
timeline/ reconstruction chronologique
graph/ graphe d’entités et attack paths
investigation/ narration et reconstruction de compromission
analysis/ scoring et qualité de données
harden/ logique de remédiation
reporting/ rapports JSON, CSV et HTML standalone
exports/ exports Navigator et replay
ui_server.py serveur HTTP intégré et pont backend GUI
webui_dist/ assets packagés de la GUI
datasets/ jeux de données de démo
frontend_source/
src/ source React/Vite de la GUI intégrée
pytest -q
python3 main.py investigate adft/datasets/ransomware_pre_encryption_campaign.json -o /tmp/adft_release_reports --format html json csv --export-events-jsonl
python3 main.py ui -o /tmp/adft_release_reports --host 127.0.0.1 --port 8765
Voir aussi :
docs/TESTING.mddocs/ARCHITECTURE.mddocs/DEPENDENCIES.mdRELEASE_VALIDATION.mdLa GUI intégrée inclut un switch persistant FR/EN dans la barre haute. Le choix est stocké localement dans le navigateur et s’applique à la navigation principale, aux écrans et aux libellés analyste.
ADFT v1.0 embarque adft/datasets/ad_prod_investigation_post_siem_demo_1000_events et adft/datasets/ad_prod_investigation_post_siem_demo_1000_events.zip pour une démonstration bout en bout d'une attaque ransomware réaliste couvrant la conversion, la timeline, le graphe, les alertes et les exports.