CET OUTIL EST MAINTENANT DÉPRÉCIÉ AU PROFIT DE SHARPHOUND. LES DONNÉES COLLECTÉES AVEC CETTE MÉTHODE NE FONCTIONNERONT PAS AVEC BLOODHOUND 4.1+
SharpHound – Réécriture en C# de l'Ingestor BloodHound
Obtenir SharpHound
La version la plus récente de SharpHound se trouve toujours dans le dépôt BloodHound ici
Instructions de compilation
SharpHound est écrit en utilisant les fonctionnalités de C# 9.0. Pour compiler facilement ce projet, utilisez Visual Studio 2019.
Si vous souhaitez compiler sur des versions antérieures de Visual Studio, vous pouvez installer le package NuGet Microsoft.Net.Compilers.
La construction du projet génère un exécutable ainsi qu’un script PowerShell qui encapsule l’exécutable. Toutes les dépendances sont intégrées dans le binaire.
Prérequis
SharpHound est conçu pour cibler .Net 4.5. SharpHound doit être exécuté dans le contexte d’un utilisateur de domaine, directement via une session ou par une autre méthode telle que RUNAS.
Utilisation
Options d’énumération
- CollectionMethod – La méthode de collecte à utiliser. Ce paramètre accepte une liste de valeurs séparées par des virgules. Valeurs possibles (par défaut : Default) :
- Default – Effectue la collecte des appartenances aux groupes, la collecte des approbations de domaine, la collecte des groupes locaux, la collecte des sessions, la collecte des ACL, la collecte des propriétés des objets et la collecte des cibles SPN
- Group – Effectue la collecte des appartenances aux groupes
- LocalAdmin – Effectue la collecte des administrateurs locaux
- RDP – Effectue la collecte des utilisateurs du Bureau à distance
- DCOM – Effectue la collecte des utilisateurs DCOM distribués
- PSRemote – Effectue la collecte des utilisateurs de gestion à distance
- GPOLocalGroup – Effectue la collecte des administrateurs locaux via les objets de stratégie de groupe
- Session – Effectue la collecte des sessions
- ComputerOnly – Effectue la collecte des administrateurs locaux, RDP, DCOM et des sessions
- LoggedOn – Effectue la collecte des sessions privilégiées (nécessite des droits administrateur sur les systèmes cibles)
- Trusts – Effectue l’énumération des approbations de domaine
- ACL – Effectue la collecte des ACL
- Container – Effectue la collecte des conteneurs
- DcOnly – Effectue la collecte en utilisant uniquement LDAP. Inclut Group, Trusts, ACL, ObjectProps, Container et GPOLocalGroup.
- ObjectProps – Effectue la collecte des propriétés des objets telles que LastLogon ou PwdLastSet
- All – Effectue toutes les méthodes de collecte sauf GPOLocalGroup
- Domain – Recherche un domaine particulier. Utilise votre domaine actuel si nul (par défaut : null)
- Stealth – Effectue des méthodes de collecte furtives. Toutes les options furtives sont monotâches.
- ExcludeDomainControllers – Exclut les contrôleurs de domaine de l’énumération (évite les alertes Microsoft ATA :) )
- ComputerFile – Spécifie un fichier pour charger les noms/IP des ordinateurs
- LdapFilter – Filtre LDAP à ajouter à la recherche
- OverrideUserName – Remplace le nom d’utilisateur pour l’énumération des sessions (avancé)
Options de boucle
- Loop – Boucle les collectes d’ordinateurs
- LoopDuration – Durée de la boucle
- LoopInterval – Durée d’attente entre les boucles
Options de connexion
- DomainController – Spécifie le contrôleur de domaine auquel se connecter (par défaut : null)
- LdapPort – Spécifie le port LDAP (par défaut : 0)
- SecureLdap – Se connecter à AD via LDAP sécurisé au lieu du LDAP standard. Se connecte par défaut au port 636.
- LdapUsername – Nom d’utilisateur pour se connecter à LDAP. Nécessite le paramètre LDAPPassword (par défaut : null)
- LdapPassword – Mot de passe pour l’utilisateur LDAP. Nécessite le paramètre LDAPUser (par défaut : null)
- DisableKerberosSigning – Désactive le chiffrement LDAP. Déconseillé.
- PortScanTimeout – Spécifie le délai d’attente des requêtes ping en millisecondes (par défaut : 2000)
- SkipPortScan – Indique à SharpHound d’ignorer les requêtes ping pour vérifier si les systèmes sont actifs
- Throttle – Ajoute un délai après chaque requête vers un ordinateur. Valeur en millisecondes (par défaut : 0)
- Jitter – Ajoute un pourcentage de gigue au throttle (par défaut : 0)
Options de sortie
- OutputDirectory – Dossier dans lequel stocker les fichiers JSON (par défaut : .)
- OutputPrefix – Préfixe à ajouter aux fichiers JSON (par défaut : "")
- NoZip – Ne pas compresser les fichiers JSON dans le fichier zip. Laisse les fichiers JSON sur le disque (par défaut : false)
- EncryptZip – Ajoute un mot de passe généré aléatoirement au fichier zip.
- ZipFileName – Spécifie le nom du fichier zip
- RandomizeFilenames – Randomise les noms des fichiers de sortie
- PrettyJson – Affiche le JSON avec une indentation sur plusieurs lignes pour améliorer la lisibilité. Inconvénient : taille de fichier accrue.
- DumpComputerStatus – Affiche les codes d’erreur liés à la connexion aux ordinateurs
Options de cache
- CacheFileName – Nom du fichier du cache SharpHound (par défaut : .bin)
- NoSaveCache – Ne pas enregistrer le fichier cache sur le disque. Sans ce drapeau, .bin sera placé sur le disque
- InvalidateCache – Invalide le fichier cache et en construit un nouveau
Options diverses
- StatusInterval – Intervalle d’affichage de la progression lors de l’énumération en millisecondes (par défaut : 30000)