SharpHound & BloodHound
1. Introduzione a SharpHound e BloodHound
- SharpHound: È un data collector scritto in .NET che raccoglie informazioni da Active Directory (AD), come utenti, gruppi, permessi, sessioni e ACL (Access Control Lists). Questi dati vengono esportati in file JSON.
- BloodHound: È uno strumento di visualizzazione e analisi che utilizza i dati raccolti da SharpHound per costruire grafici delle relazioni in AD. È basato su Neo4j.
Use Case Principale
Rilevare percorsi di attacco in Active Directory:
- Chiavi privilegiate dell'infrastruttura (es. AdminDomain).
- Permessi non protetti (es. WriteOwner su oggetti critici).
- Percorsi per un attacco di escalation dei privilegi.
2. Scenari di Raccolta Dati con SharpHound
2.1. Raccolta Completa
Raccoglie tutti i dati disponibili:
2.2. Session Enumeration (Utenti collegati alle macchine)
Identifica quali utenti sono connessi a quali macchine. Utile per pianificare un lateral movement.
2.3. Trust Enumeration (Relazioni tra domini)
Identifica le relazioni di trust tra domini per espandere il raggio d’azione.
2.4. ACL Enumeration
Trova gli ACL configurati sugli oggetti di AD:
2.5. Specific Computer Enumeration
Esegue una raccolta dati su un set specifico di macchine:
3. Scenari di Analisi con BloodHound
3.1. Identificazione dei Domain Admin
Trova il gruppo "Domain Admins" e i suoi membri:
3.2. Shortest Path verso i Domain Admin
Trova il percorso più breve tra un utente compromesso e un membro dei "Domain Admins":
MATCH p=shortestPath((start:User {name:"utente.vittima"})-[*1..]->(end:Group {name:"Domain Admins"})) RETURN p
3.3. Identificazione di Account con Privilegi pericolosi
Trova gli utenti con permessi critici come WriteOwner o GenericAll:
4. Scenari di Attacco
4.1. Abuso di Permessi ACL
Se hai trovato un oggetto con permessi WriteOwner, modifica l’owner per ottenere il controllo: 1. Usa SharpHound per identificare gli oggetti vulnerabili:
2. Verifica con BloodHound. 3. Modifica l’owner con PowerShell:4.2. Kerberoasting
- Usa SharpHound per raccogliere i SPN esposti:
- Identifica gli account con SPN abilitati in BloodHound:
- Esegui l’attacco con impacket:
4.3. Attacco AS-REP Roasting
Trova account con "Do not require Kerberos preauthentication": 1. Cerca questi account in BloodHound:
2. Lancia l’attacco con impacket:4.4. Lateral Movement tramite RDP
- Identifica le macchine a cui puoi accedere:
- Usa RDP per muoverti lateralmente: