
Recopila metadatos de objetos de Active Directory, membresías de grupos, sesiones, ACL y relaciones de confianza para alimentar el mapeo de rutas de ataque de BloodHound en evaluaciones de seguridad.
La última compilación de SharpHound siempre se encontrará aquí.
Para determinar la versión de SharpHound compatible con una instancia de BloodHound CE desplegada, inicia sesión en la interfaz web de BloodHound CE y haz clic en ⚙️ (Configuración) → Descargar colectores. Luego, haz clic en el botón "Descargar SharpHound" de la interfaz de usuario o usa la versión de SharpHound mostrada para descargar el binario de la versión. Alternativamente, compila un binario de SharpHound desde el commit de la versión correspondiente.
Consulta la sección de SharpHound, parte de la documentación de BloodHound Community Edition.
Para compilar este proyecto, ejecuta lo siguiente con un SDK de .NET:
dotnet restore
dotnet build
Por defecto, el proyecto se compila contra la siguiente versión preliminar -dev de la librería SharpHoundCommon (siguiendo la rama v4).
Si deseas compilar contra una copia local de la librería, asegúrate de que las propiedades _CommonLibPath y _RPCPath apunten a los DLL correctos y ejecuta dotnet build -p:CommonSource=Local.
Si CommonLibsVersion ya contiene una etiqueta de versión preliminar (p. ej. 4.6.0-rc1), esa versión exacta se usa tal cual para las fuentes Stable y 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á diseñado para .Net 4.7.2. SharpHound debe ejecutarse desde el contexto de un usuario de dominio, ya sea directamente mediante un inicio de sesión o mediante otro método como RUNAS.
La siguiente lista detalla los argumentos de CLI que admite SharpHound. Puedes encontrar más detalles sobre estas opciones en la documentación de recopilación de 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 (predeterminado: Dev) | Paquete resuelto |
|---|
Dev | Versión preliminar (p. ej. 4.6.0-rc1) o siguiente parche -dev* (p. ej. 4.6.1-dev*) |
Stable | Versión actual de CommonLibsVersion (p. ej. 4.6.0) |
Local | DLL locales de SharpHoundCommon |