QUESTO PROGETTO È ORA DEPRECATO IN FAVORE DI SHARPHOUND3. I DATI RACCOLTI CON QUESTO METODO NON FUNZIONERANNO CON BLOODHOUND 3.0
SharpHound - Riscrittura in C# dell'Ingestor di BloodHound
Ottieni SharpHound
L'ultima build di SharpHound sarà sempre nel repository di BloodHound qui
Istruzioni di compilazione
Sharphound è scritto usando funzionalità di C# 7.0. Per compilare facilmente questo progetto, usa Visual Studio 2017.
Se vuoi compilare con versioni precedenti di Visual Studio, puoi installare il pacchetto nuget Microsoft.Net.Compilers.
La compilazione del progetto genererà un eseguibile e uno script PowerShell che incapsula l'eseguibile. Tutte le dipendenze sono incorporate nel binario.
Requisiti
Sharphound è progettato per avere come target .Net 3.5. Sharphound deve essere eseguito nel contesto di un utente di dominio, direttamente tramite un accesso oppure tramite un altro metodo come RUNAS.
Utilizzo
Opzioni di enumerazione
- CollectionMethod - Il metodo di raccolta da utilizzare. Questo parametro accetta un elenco di valori separati da virgola. Ha i seguenti valori possibili (Default: Default):
- Default - Esegue la raccolta dell'appartenenza ai gruppi, la raccolta delle trust di dominio, la raccolta degli admin locali e la raccolta delle sessioni
- Group - Esegue la raccolta dell'appartenenza ai gruppi
- LocalAdmin - Esegue la raccolta degli admin locali
- RDP - Esegue la raccolta degli utenti Desktop remoto
- DCOM - Esegue la raccolta degli utenti COM distribuiti
- GPOLocalGroup - Esegue la raccolta degli admin locali usando oggetti Criteri di gruppo
- Session - Esegue la raccolta delle sessioni
- ComputerOnly - Esegue la raccolta di admin locali, RDP, DCOM e sessioni
- LoggedOn - Esegue la raccolta delle sessioni privilegiate (richiede diritti di amministratore sui sistemi di destinazione)
- Trusts - Esegue l'enumerazione delle trust di dominio
- ACL - Esegue la raccolta delle ACL
- Container - Esegue la raccolta dei contenitori
- DcOnly - Esegue la raccolta usando solo LDAP. Include Group, Trusts, ACL, ObjectProps, Container e GPOLocalGroup.
- All - Esegue tutti i metodi di raccolta eccetto GPOLocalGroup e LoggedOn
- SearchForest - Cerca in tutti i domini della foresta invece che solo in quello corrente
- Domain - Cerca un dominio specifico. Usa il dominio corrente se è null (Default: null)
- Stealth - Esegue metodi di raccolta stealth. Tutte le opzioni stealth sono a thread singolo.
- SkipGCDeconfliction - Salta la deconflittazione del catalogo globale durante l'enumerazione delle sessioni. Questo può accelerare l'enumerazione, ma può comportare possibili imprecisioni nei dati.
- ExcludeDc - Esclude i controller di dominio dall'enumerazione (evita i flag di Microsoft ATA :) )
- ComputerFile - Specifica un file da cui caricare nomi/IP di computer
- OU - Specifica quale unità organizzativa enumerare
Opzioni di connessione
- DomainController - Specifica a quale controller di dominio connettersi (Default: null)
- LdapPort - Specifica su quale porta è in ascolto LDAP (Default: 0)
- SecureLdap - Si connette ad AD usando LDAP sicuro invece del normale LDAP. Si connetterà alla porta 636 di default.
- IgnoreLdapCert - Ignora il certificato SSL di LDAP. Da usare se, ad esempio, c'è un certificato autofirmato
- LDAPUser - Nome utente con cui connettersi a LDAP. Richiede anche il parametro LDAPPassword (Default: null)
- LDAPPass - Password per l'utente con cui connettersi a LDAP. Richiede anche il parametro LDAPUser (Default: null)
- DisableKerbSigning - Disabilita la crittografia LDAP. Non consigliato.
Opzioni di prestazioni
- Threads - Specifica il numero di thread da usare (Default: 10)
- PingTimeout - Specifica il timeout per le richieste ping in millisecondi (Default: 250)
- SkipPing - Indica a Sharphound di saltare le richieste ping per verificare se i sistemi sono attivi
- LoopDelay - Il numero di secondi tra i cicli di sessione (Default: 300)
- MaxLoopTime - La quantità di tempo per continuare il ciclo delle sessioni. Il formato è 0d0h0m0s. Con null il ciclo prosegue per due ore. (Default: 2h)
- Throttle - Aggiunge un ritardo dopo ogni richiesta a un computer. Il valore è in millisecondi (Default: 0)
- Jitter - Aggiunge una percentuale di jitter al throttle. (Default: 0)
Opzioni di output
- JSONFolder - Cartella in cui salvare i file JSON (Default: .)
- JSONPrefix - Prefisso da aggiungere ai tuoi file JSON (Default: "")
- NoZip - Non comprimere i file JSON nel file zip. Lascia i file JSON sul disco. (Default: false)
- EncryptZip - Aggiunge una password generata casualmente al file zip.
- ZipFileName - Specifica il nome del file zip
- RandomFilenames - Randomizza i nomi dei file di output
- PrettyJson - Restituisce JSON con indentazione su più righe per migliorare la leggibilità. Il compromesso è una dimensione del file maggiore.
Opzioni della cache
- CacheFile - Nome del file per la cache di Sharphound. (Default: .bin)
- NoSaveCache - Non salvare il file di cache su disco. Senza questo flag, .bin verrà scritto su disco
- Invalidate - Invalida il file di cache e crea una nuova cache
Opzioni varie
- StatusInterval - Intervallo per mostrare l'avanzamento durante l'enumerazione in millisecondi (Default: 30000)
- Verbose - Abilita l'output verboso