When using Integrated Windows Authentication (IWA), the
auth.json file is not used; all authentication information is provided in settings.json instead.%AppData% is the directory of the service account: C:\\Users\\SERVICE_ACCOUNT$\\AppData\\Roaming.
Configure SharpHound Settings
To modify any settings in your SharpHound configuration, you must stop the SharpHound service. The process to modify SharpHound’s configuration files is as follows:- Stop the SharpHound Enterprise service: “SharpHound Delegator”
-
Edit and save one of the configuration files as an Administrator:
settings.jsonauth.json
- Start the SharpHound Enterprise service: “SharpHound Delegator”
settings.json
Thesettings.json file is a plaintext JSON file that defines information about how the service behaves, such as settings for connecting to the BloodHound Enterprise tenant, connecting to Active Directory, and writing logs.
settings.json
Integrated Windows Authentication (IWA)
If using IWA instead of API tokens, you must include IWA-specific configuration fields in yoursettings.json file. These fields are required to enable SharpHound to authenticate using the service account’s Windows credentials via Active Directory Federation Services (ADFS).
settings.json
settings.json file:
string
Your tenant domain, as provided by your account team. Enter the domain only and do not include URI information such as
https://.Default value: CODENAME.bloodhoundenterprise.ioExample value: demo.bloodhoundenterprise.iointeger
TCP port on which the BloodHound Enterprise API runs.Default value:
443Example value: 443boolean
Specifies whether SSL is enabled for the API connection.Default value:
TrueExample value: Truestring | null
HTTP proxy URL, if your environment requires one.Default value:
nullExample value: proxy.acme.com:8080array | null
SharpHound uses this field to track the currently running task. When no task is running, the value is
null.Default value: Do not modify this value.Example value: Do not modify this value.string
Logging verbosity level for the service itself. These logs appear in
service.log within the configured TempDirectory location.Supported values, from most to least verbose:TraceDebugInformationWarningErrorCriticalNone
InformationExample value: Tracestring
Logging verbosity level used during collection jobs.Supported values, from most to least verbose:
TraceDebugInformationWarningErrorCriticalNone
InformationExample value: Tracestring | null
Directory in which SharpHound stores logs and temporary files. If this value is
null when the service starts, SharpHound uses the %APPDATA%\\BloodHoundEnterprise\\ directory for the service user.Logs are retained for 14 days. Escape backslashes for valid JSON formatting by using double backslashes.Default value: nullExample value: C:\\Users\\SERVICE_USER$\\AppData\\Roaming\\BloodHoundEnterprise\\string
Current SharpHound Enterprise version.Default value: Do not modify this value.Example value: Do not modify this value.
integer
Excludes computer objects from local collections if they have not rotated their password with the domain within this many days. By default, Active Directory computers rotate their passwords every 30 days.Minimum value:
7This Windows setting controls how often the computer rotates its password. You can also prevent password rotation entirely through Windows policy.Default value: 60Example value: 365integer
Time, in milliseconds, that SharpHound waits for a response on TCP port
445 before considering the system unavailable.Minimum value: 200Requires SharpHound Enterprise v2.2.1+.Default value: 10000Example value: 15000integer
Number of concurrent threads that perform privileged collection.Minimum value:
10Maximum value: 100Requires SharpHound Enterprise v2.2.1+.Default value: 50Example value: 50boolean
Specifies whether SharpHound splits LDAP queries into multiple parts. Use this setting when you query very large domains.Default value:
TrueExample value: Trueboolean
Enforces Kerberos authentication when SharpHound queries LDAP servers. Disabling this setting may be required to collect across an External trust type. For more information, see Cross-Trust Collection.When set to
False, SharpHound auto-negotiates authentication to domain controllers and prefers Kerberos when it is available.Default value: FalseExample value: Trueinteger
TCP port used for LDAP over SSL collection.Requires SharpHound Enterprise
v2.2.1+.Default value: 636Example value: 636integer
TCP port used for LDAP collection.Default value:
389Example value: 389boolean
Controls SharpHound’s primary LDAP connection behavior.When set to
False, SharpHound attempts LDAP over SSL first and can fall back to signed and sealed LDAP.When set to True, SharpHound is configured to use LDAPS for its base LDAP configuration where possible, but some ancillary directory-related operations may still use other negotiation or resolution paths.Do not use this setting as a guarantee that no TCP 389 traffic will occur in all scenarios.Default value: FalseExample value: FalseADFS well-known endpoint URL for Integrated Windows Authentication. This is typically the ADFS server address with
/.well-known/openid-configuration appended. Required when UseIntegratedWindowsAuthForADFS is enabled.Default value: nullExample value: https://adfs.example.com/.well-known/openid-configurationClient ID generated by BloodHound during collector client creation. SharpHound uses this value to identify itself to the ADFS server. Required when
UseIntegratedWindowsAuthForADFS is enabled.Default value: nullExample value: 12345678-1234-1234-1234-123456789012BloodHound Enterprise tenant URL used as the resource identifier for the ADFS application. Required when
UseIntegratedWindowsAuthForADFS is enabled.Default value: nullExample value: https://your-tenant.bloodhoundenterprise.ioEnables Integrated Windows Authentication through ADFS. When set to
true, SharpHound authenticates with the service account’s Windows credentials against the configured ADFS server.When this setting is enabled, SharpHound does not use auth.json. You must also configure ProviderWellKnown, ClientId, and Resource.Default value: FalseExample value: Trueauth.json
Theauth.json file is a plaintext JSON file that defines the credentials the service uses to authenticate to the BloodHound Enterprise API.
Creating a new client or rotating the credentials of an existing one will provide you with the complete JSON structure used for a SharpHound Enterprise client.
auth.json
auth.json file:
string | null
Token SharpHound Enterprise uses to authenticate with the BloodHound Enterprise tenant.Default value:
nullExample value: w4Tc+heVmaMTWgodlw0YlztaEGG53J/mwogiEZLvKE6WtylfYuoVEA==string | null
Unique identifier for the token.Default value:
nullExample value: 0c6120ee-2fbe-478f-a864-2e264f9c16d2