
Ein auf Python basierender Ingestor für BloodHound
Ich brauchte BloodHound.py mit Kerberos-Unterstützung und fand diesen Kommentar. Wie sich herausstellt, gab es die ganze Zeit einen Branch, der Kerberos-Auth unterstützte! Ich habe mir die Freiheit genommen, diesen Branch in den Master zu mergen, um an die schönen BloodHound-4.2+-Exporte zu kommen. Alle Anerkennung gebührt den Leuten, die den Code tatsächlich geschrieben haben:)
Wie Mr. Dirkjan selbst sagte, „braucht das noch mehr Arbeit und Tests“. Es funktioniert möglicherweise nicht in allen Fällen, also melde bitte alle Probleme, auf die du stößt, und wir können versuchen, sie zu beheben. Vielleicht können wir das eines Tages als PR an das Haupt-Repo einreichen.
$ 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
Wenn du DNS-Fehler erhältst, kannst du versuchen, DNS auf dich selbst zu zeigen (-ns 127.0.0.1), während du dnschef ausführst:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py ist ein auf Python basierender Ingestor für BloodHound, basierend auf Impacket.
Diese Version von BloodHound.py ist nur mit BloodHound 4.2 oder neuer kompatibel. Für den 3.x-Bereich verwende die Version 1.1.1 über pypi. Ab Version 1.3 unterstützt BloodHound.py nur noch Python 3; Python 2 wird nicht mehr getestet und könnte in Zukunft brechen.
BloodHound.py hat derzeit die folgenden Einschränkungen:
Du kannst den Ingestor per pip mit pip install bloodhound installieren, oder indem du dieses Repository klonst und python setup.py install ausführst, oder mit pip install ..
BloodHound.py benötigt impacket, ldap3 und dnspython, um zu funktionieren.
Die Installation fügt deinem PATH ein Kommandozeilen-Tool bloodhound-python hinzu.
Um den Ingestor zu verwenden, benötigst du mindestens Anmeldedaten für die Domäne, bei der du dich anmeldest.
Du musst die Option -u mit einem Benutzernamen dieser Domäne angeben (oder username@domain für einen Benutzer in einer vertrauenswürdigen Domäne). Wenn dein DNS richtig eingerichtet ist und die AD-Domäne in deiner DNS-Suchliste steht, erkennt BloodHound.py die Domäne automatisch. Wenn nicht, musst du sie manuell mit der Option -d angeben.
Standardmäßig fragt BloodHound.py LDAP und die einzelnen Computer der Domäne ab, um Benutzer, Computer, Gruppen, Vertrauensstellungen, Sitzungen und lokale Administratoren zu enumerieren.
Wenn du die Sammlung einschränken möchtest, gib den Parameter --collectionmethod an, der die folgenden Optionen unterstützt (ähnlich wie SharpHound):
Mehrere Sammlungsmethoden sollten durch ein Komma getrennt werden, zum Beispiel: -c Group,LocalAdmin
Du kannst einige der automatischen Erkennungsoptionen überschreiben, z. B. den Hostnamen des primären Domänencontrollers, wenn du mit -dc einen anderen Domänencontroller verwenden möchtest, oder mit -gc einen eigenen Global Catalog angeben.
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python im Container ausführen; alle Daten werden in dem Pfad gespeichert, von dem aus du den Container startest.