Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ghosthound — GhostHound è un'estensione di BloodHound OpenGraph che mette in evidenza la riattivazione dei tombstone di Active Directory come percorso di attacco di prima classe, enumerando gli oggetti eliminati tramite SHOW_DELETED, mappando chi può ripristinarli e rivelando quando un'identità riattivata riacquista l'appartenenza a un gruppo privilegiato. | Kitploit
Strumenti/GitHubGitHub/jvbotelho/ghosthound
Escalation di PrivilegiRicognizioneExploitMovimento LateraleRaccolta InformazioniPost-ExploitPenetration TestingRed Teaming
GitHubjvbotelho/ghosthound

ghosthound

Vedi Repository
42211 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

GhostHound è un'estensione di BloodHound OpenGraph che mette in evidenza la riattivazione dei tombstone di Active Directory come percorso di attacco di prima classe, enumerando gli oggetti eliminati tramite SHOW_DELETED, mappando chi può ripristinarli e rivelando quando un'identità riattivata riacquista l'appartenenza a un gruppo privilegiato.

Condividi

GhostHound

Crates.io docs.rs OpenSSF Scorecard

GhostHound è un'estensione OpenGraph per Active Directory di BloodHound. SharpHound e tutti gli altri collezionisti AD saltano CN=Deleted Objects: gli oggetti eliminati (tombstones) sono invisibili all'analisi standard dei percorsi di attacco di BloodHound, anche se il Cestino di AD e i meccanismi di riattivazione dei tombstones possono permettere a un'entità con privilegi sufficienti di ripristinarne uno — e assumere l'identità che rappresenta. GhostHound enumera i tombstones su LDAP con il controllo SHOW_DELETED, determina chi può riattivare ciascuno, e produce un payload JSON OpenGraph più una definizione di estensione model.json in modo che BloodHound CE v8+ possa renderizzare questo come una parte di prima classe del grafo.

Solo per uso autorizzato. Questo è uno strumento di sicurezza offensiva / red-team pensato per test di penetrazione autorizzati e ricerca in laboratori di rilevamento. Eseguilo solo su ambienti Active Directory che sei esplicitamente autorizzato a testare.

Prerequisiti

  • Diritti equivalenti a Administrators (o una delega esplicita di accesso in lettura a CN=Deleted Objects) sul dominio di destinazione. Gli account non privilegiati non possono vedere affatto il contenitore, indipendentemente dal metodo di autenticazione utilizzato — questa è una restrizione imposta da AD, non qualcosa che GhostHound può aggirare.
  • Raggiungibilità di rete a un Domain Controller su LDAP (389) o LDAPS (636).
  • BloodHound CE v8+ se si desidera importare il grafo risultante (la raccolta e l'output JSON funzionano autonomamente senza di esso).

Utilizzo

root@kitploit:~
ghosthound -d ghost.local --dc-ip 10.0.0.10 -u alice -o tombstones.json

Ordine di risoluzione della password: --password (da evitare — visibile via ps//proc/<pid>/cmdline e cronologia della shell), poi la variabile d'ambiente LDAP_PASSWORD, poi un prompt interattivo se nessuno dei due è impostato.

Per impostazione predefinita GhostHound si connette su LDAPS (636) con verifica del certificato attiva. Esistono due flag per ambienti in cui ciò non è adatto:

  • --disable-ldaps — torna a LDAP in chiaro (389). La password di bind viene inviata in testo chiaro; evitare questo tranne che in un laboratorio isolato.
  • --insecure-tls — mantiene LDAPS (trasporto crittografato) ma salta la verifica del certificato, per certificati autofirmati/di laboratorio che non sono nel tuo trust store. Preferire questo a --disable-ldaps ogni volta che il problema è solo il certificato del DC.

--timeout-secs (default 30) limita sia la connessione iniziale che ogni successiva operazione LDAP, quindi un DC irraggiungibile o un --dc-ip errato falliscono entro quella finestra invece di rimanere in attesa.

Esegui ghosthound --help per l'elenco completo dei flag.

Struttura del Workspace

GhostHound è costruito come un workspace incentrato sulle librerie — vedere docs/adr/0001-language-rust-library-first.md per la motivazione:

  • bloodhound-opengraph: costruttore JSON OpenGraph di BloodHound (la controparte Rust del bhopengraph di Python).
  • ad-secdesc: parser da zero con licenza permissiva per ntSecurityDescriptor/DACL/ACE (vedi docs/adr/0003-security-descriptor-parsing-strategy.md per il motivo per cui questa non è una dipendenza dall'unico equivalente Rust esistente, che è GPL-3.0).
  • ad-secdesc-oracle: test harness differenziale interno e non pubblicato che confronta ad-secdesc con quella crate GPL-3.0 come oracolo black-box — messo in quarantena fuori dalla build predefinita e dal grafo delle dipendenze di ogni crate pubblicato.
  • ad-tombstone: enumerazione LDAP SHOW_DELETED, modellazione dello stato del Cestino di AD e analisi dei diritti di riattivazione.
  • ghosthound: la CLI che orchestra quanto sopra.

Importazione in BloodHound

  1. Nella pagina di gestione OpenGraph di BloodHound CE, carica crates/ad-tombstone/model.json una volta per registrare i tipi di nodo GhostHound_TombstoneUser/GhostHound_TombstoneComputer/GhostHound_TombstoneGroup e i tipi di relazione GhostHound_CanReanimate/GhostHound_WasMemberOf/GhostHound_SameAs (tutti registrati come traversabili, quindi partecipano alle query sul percorso più breve).
  2. Carica il JSON prodotto da GhostHound (tramite l'interfaccia utente o l'API di ingest) come normale payload di dati OpenGraph.
  3. Esegui crates/ad-tombstone/bridge_shadow_nodes.cypher direttamente contro Neo4j (la barra di ricerca Cypher di BloodHound CE è di sola lettura e lo rifiuterà):
    root@kitploit:~
    docker exec -i <graph-db-container> cypher-shell -u neo4j -p <password> < crates/ad-tombstone/bridge_shadow_nodes.cypher
    
    I collegamenti di GhostHound verso i principali AD esistenti (Domain Admins, ecc.) atterrano su nodi placeholder piuttosto che su quelli reali che BloodHound già possiede — una limitazione dell'ingest OpenGraph, non un bug in questi dati; vedere docs/adr/0006-opengraph-cross-source-node-identity.md. Questo script li collega in modo che i percorsi siano effettivamente traversabili. Sicuro da rieseguire dopo ogni importazione.

Una volta collegati, il percorso di riattivazione viene visualizzato come un normale percorso traversabile — un tombstone che era un membro di Domain Admins prima dell'eliminazione, raggiungibile da ogni entità con il diritto Reanimate-Tombstones, collegato al nodo reale di Domain Admins:

Percorso di riattivazione di GhostHound da un test in homelab: vari principali con diritti GhostHound_CanReanimation puntano a un utente tombstones, che ha un bordo GhostHound_WasMemberOf verso un nodo placeholder, collegato tramite GhostHound_SameAs al vero gruppo Domain Admins.

Postura della supply chain

Questo progetto dà priorità alla sicurezza ad alta affidabilità fin dal primo giorno (docs/adr/0005-supply-chain-openssf-posture.md):

  • cargo deny per divieti rigorosi di copyleft/GPL e audit delle vulnerabilità.
  • Workflow OpenSSF Scorecard.
  • cargo fuzz per la sicurezza in caso di panico nell'analisi di descrittori binari grezzi.
  • Nessun unsafe nelle librerie fondamentali.

Motivazioni progettuali

La directory docs/adr/ registra le decisioni alla base di questo progetto (scelta del linguaggio, ambito di autenticazione, il vincolo di licenza di ad-secdesc, il modello dati del Cestino di AD, postura della supply chain), e docs/research/tombstone-viability-findings.md contiene la ricerca sottostante.

Scarica lo strumento
  • Importa le query iniziali in crates/ad-tombstone/queries.json e, opzionalmente, esegui crates/ad-tombstone/privilege_zones.cypher una volta per contrassegnare i tombstones nelle OU di Tier Zero come ad alto valore — anche questo richiede cypher-shell invece della barra di ricerca, per lo stesso motivo del punto 3 (anche il suo SET è una clausola di aggiornamento).