FRONTMATTER_60_# 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¶
Neo4j Installazione¶
Traduzione:
BloodHound Installation¶
Traduzione:
Linux (Kali)¶
Traduzione:
macOS¶
Traduzione:
BloodHound Community Edition (Docker)¶
Traduzione:
Raccolta dei dati¶
SharpHound (Windows Executable)¶
Collezione di base¶
Traduzione:
Collection Methods¶
| Method | Description |
|---|---|
| INLINE_CODE_33 | Collect all data |
| INLINE_CODE_34 | Collect group membership information |
| INLINE_CODE_35 | Collect local admin information |
| INLINE_CODE_36 | Collect local admin information via GPO |
| INLINE_CODE_37 | Collect session information |
| INLINE_CODE_38 | Collect logged-on user information |
| INLINE_CODE_39 | Collect domain trust information |
| INLINE_CODE_40 | Collect ACL information |
| INLINE_CODE_41 | Collect container information |
| INLINE_CODE_42 | Collect Remote Desktop Users information |
| INLINE_CODE_43 | Collect object properties |
| INLINE_CODE_44 | Collect DCOM information |
| INLINE_CODE_45 | Collect Service Principal Name information |
| INLINE_CODE_46 | Collect PowerShell Remoting information |
| _ | |
| #### Opzioni di raccolta avanzate | |
| Traduzione: |
SharpHound Power Modulo di Shell¶
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:
Usando BloodHound¶
Connessione del database Neo4j¶
- URL predefinito: bullone://localhost:7687
- credenziali di default: neo4j/neo4j (primo login richiede la modifica della password)
Importazione dei dati¶
- Avviare BloodHound
- Collegare al database Neo4j
- Trascina e rilascia il file ZIP contenente dati SharpHound
- Attendere l'importazione per completare
Pre-Built Queries¶
BloodHound viene fornito con diverse query pre-costruite accessibili dalla scheda "Queries":
Trova utenti privilegiati¶
- 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
Trova configurazioni vulnerabili¶
- Trova Kerberoastable Utenti
- Trova gli utenti Roastable AS-REP
- Trova computer con Delegazione Non Contrattata
- Trova Computer con Delegazione Contrattata
- Trovare Domain Trusts
Query Cypher personalizzate¶
Trova i percorsi più brevi agli amministratori di dominio¶
Traduzione:
Trova Kerberoastable Utenti con Path to Domain Admins¶
Traduzione:
Trova computer con i diritti di amministratore locale¶
Traduzione:
Trova gli utenti con i diritti DCSync¶
Traduzione:
Find Computers with Constrained Delegation¶
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 scarsi¶
Traduzione:
Tecniche di attacco¶
Kerberoasting¶
Targets account di servizio con SPNs per estrarre i biglietti di servizio hashes per cracking offline.
Trova utenti Kerberoastable¶
Traduzione:
Trovare utenti Kerberoastable con Path to Domain Admins¶
Traduzione:
AS-REP Roasting¶
Gli account utente di destinazione con "Non richiedono l'impostazione Kerberos preauthentication" abilitata.
Trova gli utenti Roastable AS-REP¶
Traduzione:
ACL Abuse¶
Sfrutta elenchi di controllo accessi non configurati per ottenere privilegi elevati.
Finding WriteDacl Permissions¶
Traduzione:
Trovare GenericAll Permissions¶
Traduzione:
Unconstrained Delegation¶
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.
Finding Computers with Resource-Based Constrained Delegation¶
Traduzione:
# DCSync¶
Sfrutta i diritti di replica per eseguire la sincronizzazione del controller di dominio ed estrarre le hashes password.
Trova gli utenti con i diritti DCSync¶
Traduzione:
Blood # Tipi di orlo¶
Tabella_62_
Considerazioni di sicurezza operative¶
Minimizing Detection Risk¶
- Utilizzare il parametro
--Stealth_ per ridurre il rumore - Raccogliere 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
Pulire¶
- Eliminare i binari SharpHound e i file di output dopo l'uso
- Potenza libera Storia di Shell: ______________
- Rimuovi Sharp Modulo Hound da memoria: # INLINE_CODE_49_
- Eliminare il database Neo4j quando l'analisi è completa
Risoluzione dei problemi¶
Questioni comuni¶
Neo4j Problemi di connessione¶
- 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
SharpHound Collection Issues¶
- 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:
MATCH (n) DETACH DELETE n - Verificare che il file ZIP non sia danneggiato
Risorse¶
- BloodHound Documentation
- [BloodHound GitHub Repository]
- [SharpHound GitHub Repository]
- BloodHound Community Edition
- [SpecterOps Blog]
- Cypher Query Language Reference_