
Sammelt Active-Directory-Objektmetadaten, Gruppenmitgliedschaften, Sitzungen, ACLs und Vertrauensstellungen, um BloodHounds Angriffspfad-Mapping für Sicherheitsbewertungen zu speisen.
Die neueste Version von SharpHound ist immer hier zu finden.
Um die SharpHound-Version zu ermitteln, die mit einer bereitgestellten BloodHound-CE-Instanz kompatibel ist, melde dich in der Weboberfläche von BloodHound CE an und klicke auf ⚙️ (Einstellungen) → Download Collectors. Klicke dann entweder auf die Schaltfläche „Download SharpHound“ in der Benutzeroberfläche oder verwende die angezeigte SharpHound-Version, um das passende Release-Binary herunterzuladen. Alternativ kannst du ein SharpHound-Binary aus dem entsprechenden Release-Commit kompilieren.
Bitte lies den SharpHound-Abschnitt, Teil der Dokumentation der BloodHound Community Edition.
Um dieses Projekt zu erstellen, führe mit einem .NET-SDK Folgendes aus:
dotnet restore
dotnet build
Standardmäßig wird das Projekt gegen die nächste Vorabversion (-dev) der SharpHoundCommon-Bibliothek erstellt (die den v4-Branch verfolgt).
Wenn du gegen eine lokale Kopie der Bibliothek erstellen möchtest, stelle sicher, dass die Eigenschaften _CommonLibPath und _RPCPath auf die korrekten DLLs verweisen, und führe dotnet build -p:CommonSource=Local aus.
Wenn CommonLibsVersion bereits ein Vorabversions-Tag enthält (z. B. 4.6.0-rc1), wird diese genaue Version unverändert für sowohl Stable- als auch Dev-Quellen verwendet.
dotnet build # Dev (default)
dotnet build -p:CommonSource=Stable
dotnet build -p:CommonSource=Local
dotnet build --tl:off # To view CommonLib resolution logs
SharpHound ist für .Net 4.7.2 ausgelegt. SharpHound muss im Kontext eines Domänenbenutzers ausgeführt werden, entweder direkt über eine Anmeldung oder über eine andere Methode wie RUNAS.
Die folgende Auflistung beschreibt die CLI-Argumente, die SharpHound unterstützt. Weitere Details zu diesen Optionen findest du in der Dokumentation zur BloodHound CE Collection.
-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 (Standard: Dev) | Aufgelöstes Paket |
|---|
Dev | Vorabversion (z. B. 4.6.0-rc1) oder nächster Patch -dev* (z. B. 4.6.1-dev*) |
Stable | Aktuelle CommonLibsVersion (z. B. 4.6.0) |
Local | Lokale SharpHoundCommon-DLLs |