
A Python based ingestor for BloodHound
BloodHound.py est un ingestor basé sur Python pour BloodHound, lui-même basé sur Impacket.
Le code de cette branche est uniquement compatible avec BloodHound 4.2 et 4.3. Pour BloodHound CE, consultez la branche bloodhound-ce
Il existe différentes méthodes d'installation pour BloodHound Community Edition (CE) et BloodHound legacy. Vous ne pouvez installer qu'un seul des deux outils à la fois, sauf si vous utilisez un environnement virtuel pour les deux outils, ou un gestionnaire de paquets comme pipx qui les configure automatiquement.
Les méthodes d'installation suivantes sont disponibles :
pip install bloodhoundpipx install bloodhoundgit clone https://github.com/dirkjanm/BloodHound.py puis en exécutant pip install . depuis le répertoire du projet.L'installation de BloodHound.py Legacy ajoutera un outil en ligne de commande bloodhound-python à votre PATH.
Les méthodes d'installation suivantes sont disponibles :
pip install bloodhound-cepipx install bloodhound-cegit clone https://github.com/dirkjanm/BloodHound.py, en basculant sur la branche CE git checkout bloodhound-ce puis en exécutant pip install . depuis le répertoire du projet.L'ingestor BloodHound.py CE ajoutera un outil en ligne de commande bloodhound-ce-python à votre PATH.
Pour utiliser l'ingestor, vous aurez besoin au minimum d'identifiants du domaine auquel vous vous connectez. Les identifiants peuvent être spécifiés sous forme de nom d'utilisateur + mot de passe, de hash NT ou de clés AES, ou d'un TGT Kerberos dans un fichier ccache.
Vous devrez spécifier l'option -u avec un nom d'utilisateur de ce domaine (ou username@domain pour un utilisateur d'un domaine approuvé). Si votre DNS est correctement configuré et que le domaine AD figure dans votre liste de recherche DNS, BloodHound.py détectera automatiquement le domaine pour vous. Sinon, vous devez le spécifier manuellement avec l'option -d.
Par défaut, BloodHound.py interroge LDAP et les ordinateurs individuels du domaine pour énumérer les utilisateurs, les ordinateurs, les groupes, les approbations, les sessions et les administrateurs locaux.
Si vous souhaitez restreindre la collecte, spécifiez le paramètre --collectionmethod, qui prend en charge les options suivantes (similaires à SharpHound) :
Plusieurs méthodes de collecte doivent être séparées par une virgule, par exemple : -c Group,LocalAdmin
Vous pouvez remplacer certaines options de détection automatique, comme le nom d'hôte du contrôleur de domaine principal si vous souhaitez utiliser un autre contrôleur de domaine avec -dc, ou spécifier votre propre catalogue global avec -gc.
BloodHound.py présente actuellement les limitations suivantes :
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python à l'intérieur du conteneur ; toutes les données seront stockées dans le chemin à partir duquel vous démarrez le conteneur.BloodHound.py a été initialement écrit par Dirk-jan Mollema, Edwin van Vliet et Matthijs Gielen de Fox-IT (NCC Group). BloodHound.py est actuellement maintenu par Dirk-jan Mollema de Outsider Security. L'implémentation et le modèle de données sont basés sur l'outil original de SpecterOps. Un grand merci à tous ceux qui ont contribué en testant, en soumettant des problèmes et des demandes de tirage au fil des ans.