BloodHound Foglio di formaggio
Panoramica
BloodHound è uno strumento open source che utilizza la teoria dei grafici per rivelare relazioni nascoste e spesso indesiderate all'interno di un ambiente Active Directory (AD). Aiuta i professionisti della sicurezza a identificare percorsi di attacco complessi che altrimenti sarebbero impossibili da trovare manualmente. BloodHound è composto da due componenti principali:
- ♪SharpHound ♪ Il raccoglitore di dati che raccoglie informazioni da Active Directory
- BloodHound GUI: L'interfaccia grafica che visualizza e analizza i dati raccolti
Installazione
Windows
Installazione Neo4j
Traduzione:
Installazione di BloodHound
Traduzione:
Linux (Kali)
Traduzione:
mac.
Traduzione:
BloodHound Community Edition (Docker)
Traduzione:
Raccolta dei dati
SharpHound (Windows Executable)
Collezione di base
Traduzione:
Metodi di raccolta
| | Method | Description | |
| --- | --- |
| | All
| Collect all data | |
| | Group
| Collect group membership information | |
| | LocalGroup
| Collect local admin information | |
| | GPOLocalGroup
| Collect local admin information via GPO | |
| | Session
| Collect session information | |
| | LoggedOn
| Collect logged-on user information | |
| | Trusts
| Collect domain trust information | |
| | ACL
| Collect ACL information | |
| | Container
| Collect container information | |
| | RDP
| Collect Remote Desktop Users information | |
| | ObjectProps
| Collect object properties | |
| | DCOM
| Collect DCOM information | |
| | SPNTargets
| Collect Service Principal Name information | |
| | PSRemote
| Collect PowerShell Remoting information | |
Opzioni di raccolta avanzate
Traduzione:
Modulo SharpHound PowerShell
Collezione di base
Traduzione:
Opzioni di raccolta avanzate
Traduzione:
BloodHound.py (Linux/macOS)
Installazione
Traduzione:
Collezione di base
Traduzione:
Opzioni di raccolta avanzate
Traduzione:
AzureHound (Azure AD)
Installazione
Collezione di base
Traduzione:
Utilizzo di BloodHound
Connessione Database Neo4j
- URL predefinito: bullone://localhost:7687
- credenziali di default: neo4j/neo4j (primo login richiede la modifica della password)
Importazione dei dati
- Avviare BloodHound
- Collegamento al database Neo4j
- Trascina e rilascia il file ZIP contenente dati SharpHound
- Attendere l'importazione per completare
Query Pre-Built
BloodHound viene fornito con diverse query pre-costruite accessibili dalla scheda "Queries":
Trovare Privileged Utenti
- Trova tutti gli amministratori di dominio
- Trova tutti gli amministratori aziendali
- Trova i percorsi più brevi per Domain Admins
- Trova i percorsi più brevi per obiettivi di alto valore
Trovare percorsi di attacco
- Trova i percorsi più brevi per Domain Admins
- Trova i percorsi più brevi per obiettivi di alto valore
- Trova i percorsi più brevi per sistemi di delega senza ostacoli
Trovare configurazioni vulnerabili
- Trova Kerberoastable Utenti
- Trova AS-REP Utenti discutibili
- Trova Computer con Delegazione Non Contrattata
- Trova Computer con Delegazione Constrained
- Trovare Domain Trusts
Query Cypher personalizzate
Trova i percorsi più brevi per Domain Admins
Traduzione:
Trova Kerberoastable Utenti con Path to Domain Admins
Traduzione:
Trova computer con i diritti di amministratore locale
Traduzione:
Trova utenti con i diritti DCSync
Traduzione:
Trova Computer con Delegazione Constrained
Traduzione:
Trova i percorsi di attacco da utente specifico
Traduzione:
Trova tutti gli utenti con Path to High Value Targets
Traduzione:
Trova computer Dove gli utenti di dominio hanno diritti di amministratore locale
Traduzione:
Trova computer con diritti RDP
Traduzione:
Trova gli utenti con Password Mai Scade
Traduzione:
Tecniche di attacco
Kerberoasing
Targets account di servizio con SPNs per estrarre i biglietti di servizio hashes per cracking offline.
Trovare Kerberoastable Utenti
Traduzione:
Trovare Kerberoastable Utenti con Path to Domain Admins
Traduzione:
AS-REP Roasting
Gli account utente di destinazione con "Non richiedono l'impostazione Kerberos preauthentication" abilitata.
Trovare AS-REP Utenti discutibili
Traduzione:
ACL Abusi
Sfrutta elenchi di controllo accessi non configurati per ottenere privilegi elevati.
Trovare le autorizzazioni WriteDacl
Traduzione:
Trovare GenericAll Permissions
Traduzione:
Delegazione senza ostacoli
Sfrutta computer con delegazione non vincolata per rubare i biglietti degli utenti.
Trovare computer con Delegazione Non Contrattata
Traduzione:
Delegazione limitata
Sfrutta la delegazione contrattata erronea per impersonare gli utenti a servizi specifici.
Trovare computer con retrocessione
Traduzione:
Delegazione limitata basata sulle risorse
Sfrutta la delegazione contrattata basata sulle risorse per accedere alle risorse.
Trovare computer con la Delegazione Constrainata basata sulle risorse
Traduzione:
DCSync
Sfrutta i diritti di replica per eseguire la sincronizzazione del controller di dominio ed estrarre le hashes password.
Trovare gli utenti con i diritti DCSync
Traduzione:
Tipi di bordo di BloodHound
| | Edge Type | Description | | | --- | --- | | | MemberOf | User/Group is a member of a group | | | | AdminTo | User/Group has local admin rights on a computer | | | | HasSession | User has a session on a computer | | | | CanRDP | User can RDP to a computer | | | | ExecuteDCOM | User can execute DCOM on a computer | | | | AllowedToDelegate | Computer is allowed to delegate to a service | | | | AddAllowedToAct | Computer can act on behalf of another principal | | | | AllowedToAct | Principal is allowed to act on behalf of another principal | | | | Contains | OU/Container contains an object | | | | GpLink | GPO is linked to an OU/Domain/Site | | | | HasSIDHistory | Object has SID history of another object | | | | TrustedBy | Domain is trusted by another domain | | | | DCSync | User has rights to perform DCSync operation | | | | GenericAll | User has full control over an object | | | | GenericWrite | User can write to certain properties of an object | | | | WriteDacl | User can modify the security descriptor of an object | | | | WriteOwner | User can take ownership of an object | | | | AddMember | User can add members to a group | | | | ForceChangePassword | User can change another user's password | |
Considerazioni di sicurezza operative
Rischio di rilevamento minimizzante
- Utilizzare il parametro
--Stealth
_ per ridurre il rumore - Raccogli dati durante le ore di lavoro quando l'attività di rete è alta
- Evitare di raccogliere tutti i dati contemporaneamente; diffondere la raccolta nel tempo
- Utilizzare il filtraggio LDAP per limitare la portata della raccolta
- Considerare l'utilizzo di BloodHound.py invece di SharpHound in ambienti sensibili
Pulizia
- Eliminare i binari SharpHound e i file di output dopo l'uso
- Potenza chiara Storia di Shell: Traduzione:
- Rimuovi Sharp Modulo Hound da memoria: Traduzione:
- Eliminare il database Neo4j quando l'analisi è completa
Risoluzione dei problemi
Questioni comuni
Problemi di connessione Neo4j
- Assicurare il servizio Neo4j è in esecuzione: _______________
- Controllare se viene utilizzato l'URL corretto del bullone (default: bullone://localhost:7687)
- Verificare le credenziali (default: neo4j/neo4j)
- Controlla se un altro processo sta usando la porta 7687
Problemi della collezione SharpHound
- Assicurarsi di avere privilegi sufficienti (utilizzatore principale al minimo)
- Prova a correre con privilegi elevati
- Controlla la connettività di rete ai controller di dominio
- Verificare la connettività LDAP/LDAPS
- Prova a specificare un controller di dominio con
--DomainController
Questioni di importazione dei dati
- Assicurarsi che il file ZIP contenga file JSON validi
- Controllare se il database Neo4j ha spazio su disco sufficiente
- Prova a cancellare il database prima dell'importazione: Traduzione:
- Verificare che il file ZIP non sia danneggiato