
A Python based ingestor for BloodHound
Mi serviva bloodhound con supporto Kerberos e ho trovato questo commento. Saltava fuori che esisteva un ramo con supporto all'autenticazione Kerberos fin dall'inizio! Mi sono permesso di unire questo ramo nella master per ottenere le fantastiche esportazioni di BloodHound 4.2+. Tutto il merito va alle persone che hanno effettivamente scritto il codice:)
Come affermato dallo stesso sig. Dirkjan, questo "richiede più lavoro e test". Potrebbe non funzionare in tutti i casi, quindi segnala qualsiasi problema incontri e possiamo provare a risolverli. Forse un giorno potremo presentarlo come PR al repository principale.
$ python3 /opt/BloodHound.py/bloodhound.py -u redacted -k -d absolute.htb -dc dc.absolute.htb -ns 10.129.202.227 --dns-tcp --zip -no-pass -c All
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 02S
INFO: Compressing output into 20220926135518_bloodhound.zip
Se ricevi errori DNS, puoi provare a puntare il DNS su te stesso con -ns 127.0.0.1 mentre esegui dnschef:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py è un ingestor basato su Python per BloodHound, basato su Impacket.
Questa versione di BloodHound.py è compatibile solo con BloodHound 4.2 o versioni successive. Per la serie 3.x, usa la versione 1.1.1 tramite pypi. A partire dalla versione 1.3, BloodHound.py supporta solo Python 3; Python 2 non è più testato e potrebbe rompersi in futuro.
BloodHound.py ha attualmente le seguenti limitazioni:
Puoi installare l'ingestor tramite pip con pip install bloodhound, oppure clonando questo repository ed eseguendo python setup.py install, oppure con pip install ..
BloodHound.py richiede impacket, ldap3 e dnspython per funzionare.
L'installazione aggiungerà uno strumento da riga di comando bloodhound-python al tuo PATH.
Per usare l'ingestor, avrai bisogno come minimo delle credenziali del dominio a cui stai accedendo.
Dovrai specificare l'opzione -u con un nome utente di questo dominio (o username@domain per un utente in un dominio trusted). Se il tuo DNS è configurato correttamente e il dominio AD è nella tua lista di ricerca DNS, BloodHound.py rileverà automaticamente il dominio. In caso contrario, devi specificarlo manualmente con l'opzione -d.
Per impostazione predefinita, BloodHound.py interrogherà LDAP e i singoli computer del dominio per enumerare utenti, computer, gruppi, trust, sessioni e amministratori locali.
Se vuoi limitare la raccolta, specifica il parametro --collectionmethod, che supporta le seguenti opzioni (simili a SharpHound):
Più metodi di raccolta devono essere separati da una virgola, ad esempio: -c Group,LocalAdmin
Puoi sovrascrivere alcune delle opzioni di rilevamento automatico, come il nome host del Domain Controller primario, se vuoi usare un Domain Controller diverso con -dc, oppure specificare un tuo Global Catalog con -gc.
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python all'interno del container; tutti i dati verranno salvati nel percorso da cui avvii il container.