
Collecte les métadonnées des objets Active Directory, les appartenances aux groupes, les sessions, les ACL et les relations d'approbation pour alimenter la cartographie des chemins d'attaque de BloodHound lors des évaluations de sécurité.
La dernière version de SharpHound se trouvera toujours ici.
Pour déterminer la version de SharpHound compatible avec une instance BloodHound CE déployée, connectez-vous à l'interface web de BloodHound CE et cliquez sur ⚙️ (Settings) → Download Collectors. Cliquez ensuite soit sur le bouton « Download SharpHound » dans l'interface utilisateur, soit utilisez la version de SharpHound affichée pour télécharger le binaire de version approprié. Vous pouvez également compiler un binaire SharpHound à partir du commit correspondant de la version.
Veuillez consulter la section SharpHound, qui fait partie de la documentation de BloodHound Community Edition.
Pour compiler ce projet à l'aide d'un SDK .NET, exécutez les commandes suivantes :
dotnet restore
dotnet build
Par défaut, le projet compile contre la prochaine préversion -dev de la bibliothèque SharpHoundCommon (suivant la branche v4).
Si vous souhaitez compiler contre une copie locale de la bibliothèque, assurez-vous que les propriétés _CommonLibPath et _RPCPath pointent vers les DLL correctes, puis exécutez dotnet build -p:CommonSource=Local.
Si CommonLibsVersion contient déjà un tag de préversion (p. ex. 4.6.0-rc1), cette version exacte est utilisée telle quelle pour les sources Stable et Dev.
dotnet build # Dev (default)
dotnet build -p:CommonSource=Stable
dotnet build -p:CommonSource=Local
dotnet build --tl:off # To view CommonLib resolution logs
SharpHound est conçu pour cibler .Net 4.7.2. SharpHound doit être exécuté dans le contexte d'un utilisateur de domaine, soit directement via une connexion, soit via une autre méthode telle que RUNAS.
La liste ci-dessous détaille les arguments CLI pris en charge par SharpHound. Des détails supplémentaires sur ces options sont disponibles dans la documentation de collecte BloodHound CE.
-c, --collectionmethods (Default: Default) Collection Methods: Container, Group, LocalGroup, GPOLocalGroup,
Session, LoggedOn, ObjectProps, ACL, ComputerOnly, Trusts, Default, RDP, DCOM, DCOnly, UserRights,
CARegistry, DCRegistry, CertServices, WebClientService, NTLMRegistry,SMBInfo,LdapServices
-d, --domain Specify domain to enumerate
-s, --searchforest (Default: false) Search all available domains in the forest
--stealth Stealth Collection (Prefer DCOnly whenever possible!)
-f Add an LDAP filter to the pregenerated filter.
--distinguishedname Base DistinguishedName to start the LDAP search at
--computerfile Path to file containing computer names to enumerate
--outputdirectory (Default: .) Directory to output file too
--outputprefix String to prepend to output file names
--cachename Filename for cache (Defaults to a machine specific identifier)
--memcache Keep cache in memory and don't write to disk
--rebuildcache (Default: false) Rebuild cache and remove all entries
--randomfilenames (Default: false) Use random filenames for output
--zipfilename Filename for the zip
--nozip (Default: false) Don't zip files
--trackcomputercalls (Default: false) Adds a CSV tracking requests to computers
--zippassword Password protects the zip with the specified password
--prettyprint (Default: false) Pretty print JSON
--ldapusername Username for LDAP
--ldappassword Password for LDAP
--domaincontroller Override domain controller to pull LDAP from. This option can result in data loss
--ldapport (Default: 0) Override port for LDAP
--secureldap (Default: false) Connect to LDAP SSL instead of regular LDAP
--disablecertverification (Default: false) Disable certificate verification for secure LDAP
--disablesigning (Default: false) Disables Kerberos Signing/Sealing
--skipportcheck (Default: false) Skip checking if 445 is open
--portchecktimeout (Default: 500) Timeout for port checks in milliseconds
--skippasswordcheck (Default: false) Skip PwdLastSet age check when checking computers
--excludedcs (Default: false) Exclude domain controllers from session/localgroup enumeration (mostly for
ATA/ATP)
--throttle Add a delay after computer requests in milliseconds
--jitter Add jitter to throttle (percent)
--threads (Default: 50) Number of threads to run enumeration with
--skipregistryloggedon Skip registry session enumeration
--overrideusername Override the username to filter for NetSessionEnum
--realdnsname Override DNS suffix for API calls
--collectallproperties Collect all LDAP properties from objects
-l, --Loop Loop computer collection
--loopduration Loop duration (hh:mm:ss - 05:00:00 is 5 hours, default: 2 hrs)
--loopinterval Add delay between loops (hh:mm:ss - 00:03:00 is 3 minute)
--statusinterval (Default: 30000) Interval in which to display status in milliseconds
--localadminsessionenum Specify if you want to use a dedicated LOCAL user for session enumeration
--localadminusername Specify the username of the localadmin for session enumeration
--localadminpassword Specify the password of the localadmin for session enumeration
-v (Default: 2) Enable verbose output. Lower is more verbose
--help Display this help screen.
--version Display version information.
CommonSource (défaut : Dev) | Paquet résolu |
|---|
Dev | Préversion (p. ex. 4.6.0-rc1) ou prochain patch -dev* (p. ex. 4.6.1-dev*) |
Stable | CommonLibsVersion actuelle (p. ex. 4.6.0) |
Local | DLL SharpHoundCommon locales |