
AD-PathFinder v1.2.0
Cartographie des chemins d'attaque pour Active Directory, ADCS, SCCM, et MSSQL en utilisant BloodHound CE + données OpenGraph.
ADPathFinder
ADPathFinder est un outil de cartographie des attaques pour les pentesters et les red teamers. Il analyse les données de SharpHound et les unifie avec les plugins OpenGraph pour mettre en évidence les chemins d'attaque vers des cibles de grande valeur telles que les administrateurs de domaine et les contrôleurs de domaine, à partir d'utilisateurs et d'ordinateurs à faibles privilèges. MSSQLHound et ConfigManBearPig sont pris en charge nativement, étendant la couverture à AD, ADCS, SCCM et MSSQL.
Blog : Cartographie des chemins d'attaque OpenGraph dans BloodHound CE
Accéder à : Démarrage rapide · Couverture · Fonctionnement · Rapports · Configuration · Contributeurs
Couverture
| Domaine | Exemples |
|---|---|
| AD de base | Chemins d'escalade, délégation, droits d'administrateur, BadSuccessor, sessions de haute valeur exposées |
| Mots de passe | Mots de passe faibles, mots de passe vides, réutilisation, similarité de noms d'utilisateur, utilisation de hachages LM, exposition Kerberoast et AS-REP associée à des mots de passe faibles |
| ADCS | Risques liés aux modèles de certificats de type ESC et aux autorités de certification |
| MSSQL (données OpenGraph MSSQLHound) | Connexions, serveurs liés, imitation, relais et chemins d'escalade de privilèges |
| SCCM (données OpenGraph ConfigManBearPig) | Chemins de prise de contrôle et de relais, points de distribution compatibles PXE et récupération de politiques de points de gestion |
| Inter-domaines | Relations d'approbation, mots de passe partagés et chemins d'escalade entre domaines |
Prérequis
- Python 3.9 ou ultérieur.
- BloodHound CE et Neo4j disponibles localement par défaut à
neo4j://localhost:7687. - Identifiants API BloodHound CE pour les opérations d'import et de suppression.
- Un zip BloodHound CE / SharpHound pour la couverture d'audit AD.
- Zips de plugins OpenGraph optionnels provenant de MSSQLHound et ConfigManBearPig pour la couverture MSSQL et SCCM.
- Extraction de hachages NTDS et fichier potfile hashcat optionnels pour les audits de mots de passe.
Démarrage rapide
Installer à partir des sources
git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Configurer l'accès à l'API BloodHound
adpathfinder --setup-bloodhound-api
Ceci enregistre les paramètres de l'API BloodHound CE utilisés pour les opérations d'import et de suppression.
Importer les données SharpHound
adpathfinder --import SharpHound.zip
Plusieurs fichiers zip SharpHound et plugins OpenGraph peuvent être importés en une seule commande :
adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip
Importer les données et exécuter un audit complet
adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
Utilisez uniquement les fichiers zip dont vous disposez. La valeur --pwd n'est pas le domaine AD ; c'est une liste séparée par des virgules de termes de société, de marque ou d'organisation à signaler dans les mots de passe craqués.
Exécuter un audit de domaine
adpathfinder --ad
Exécuter un audit de mots de passe
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
Utilisez --unsafe-report uniquement lorsque les rapports doivent inclure des mots de passe en clair.
Écrire les diagnostics
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics
Fonctionnement
| Étape | Ce qui se passe |
|---|---|
| Ingestion | Fusionne les zips SharpHound et OpenGraph pris en charge en un seul graphe. Les données MSSQLHound et ConfigManBearPig sont prises en charge directement |
| Cartographie | Trouve les chemins les plus courts des utilisateurs et ordinateurs vers les cibles de grande valeur. Vous pouvez configurer l'ensemble des arêtes pour supprimer les arêtes bruyantes comme HasSession |
| Regroupement | Regroupe les comptes qui partagent un chemin, de sorte que les chemins répétés sont rapportés comme une seule constatation au lieu de nombreuses quasi-duplications |
| Appariement | Compare les hachages NTDS et les fichiers potfile hashcat avec les données du graphe pour montrer quels chemins sont utilisables pendant l'évaluation |
| Superposition | Signale des constatations indépendantes telles que la signature SMB désactivée ou les groupes privilégiés par défaut, et augmente la sévérité lorsque le même hôte ou groupe se trouve également sur un chemin vers des cibles de grande valeur |
| Rendu | Écrit des rapports HTML avec des graphiques de chemins SVG, des notes d'atténuation, des étapes de validation PowerShell et un suivi de l'état corrigé, ainsi que des sorties texte, JSON et diagnostics |
Rapport HTML AD
Rapport HTML d'audit de mots de passe
Configuration
ADPathFinder lit config.ini dans le répertoire de travail. Les valeurs peuvent également être définies avec les variables d'environnement ADPF_*.
Exécutez ceci pour configurer l'accès à l'API BloodHound CE pour les importations et suppressions :
adpathfinder --setup-bloodhound-api
Voir Configuration sur le wiki pour toutes les options, les paramètres de connexion Neo4j, les permissions de fichiers et les exemples de configurations. Voir Relations exclues pour filtrer les résultats des chemins d'attaque.
Sorties
Les rapports sont écrits dans report_<domain>/, par exemple report_training.local/.
| Sortie | Objectif |
|---|---|
<domain>_AD_report.html | Rapport HTML pour les clients avec constatations groupées, graphiques de chemins, notes d'atténuation, étapes de validation et suivi de l'état corrigé |
<domain>_domain_audit.txt / <domain>_domain_audit.json | Sorties d'audit de domaine en texte et JSON pour examen, automatisation et analyse ultérieure |
<domain>_password_audit.html / <domain>_password_audit.txt / <domain>_password_audit.json | Sorties d'audit de mots de passe lorsque les hachages NTDS et un fichier potfile hashcat sont fournis |
<domain>_*_unsafe.* | Rapports non sécurisés optionnels générés uniquement avec --unsafe-report ; ceux-ci peuvent inclure des mots de passe en clair |
diagnostics.json | Statistiques d'exécution optionnelles et données de débogage générées avec --diagnostics |
Traitez les données NTDS, les fichiers potfiles et les rapports générés comme des données d'évaluation sensibles. Le drapeau --unsafe-report écrit des mots de passe en clair dans les fichiers de sortie ; ne l'utilisez que lorsque vous avez spécifiquement besoin de texte en clair dans le rapport, et stockez les fichiers _unsafe résultants en conséquence.
Voir sample_reports/ pour des exemples de sorties d'audit de domaine et d'audit de mots de passe.
Contributeurs
Les vérifications sont de petites classes qui s'enregistrent avec un décorateur, déclarent leurs besoins en données et retournent des dictionnaires de constatations. Les vérifications de plateforme déclarent leur source de données, de sorte que les audits AD normaux ignorent les vérifications MSSQL ou SCCM lorsque les données OpenGraph correspondantes ne sont pas présentes.
Voir Ajouter de nouvelles vérifications, Travailler avec les plugins OpenGraph et le Guide du framework sur le wiki.
Tests
pip install -e ".[test]" puis pytest tests/ -m "not neo4j and not integration" exécute les tests rapides du framework sans Neo4j. Voir tests/README.md pour la suite de fixtures Neo4j et le workflow complet de tests locaux.
Remerciements
ADPathFinder s'appuie sur les données collectées par d'autres projets ; remercions leurs auteurs et l'équipe SpecterOps :
- BloodHound CE — les données du graphe Active Directory.
- MSSQLHound par Chris Thompson — collecte MSSQL.
- ConfigManBearPig par Chris Thompson — collecte SCCM.