Vai al contenuto

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:

  1. ♪SharpHound ♪ Il raccoglitore di dati che raccoglie informazioni da Active Directory
  2. 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

  1. Avviare BloodHound
  2. Collegare al database Neo4j
  3. Trascina e rilascia il file ZIP contenente dati SharpHound
  4. 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