Vai al contenuto

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

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

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

Risorse