Zurück zu den Updates
UpdatedJul 16, 2026

GPOHound — Updated!

Offensives GPO-Dumping- und Analyse-Tool, das BloodHound-Daten nutzt und anreichert

Teilen

GPOHound

GPOHound ist ein Tool zum Dumpen und Analysieren von Group Policy Objects (GPOs), die aus der SYSVOL-Freigabe extrahiert wurden.

Es bietet ein strukturiertes, formalisiertes Format, um Fehlkonfigurationen, unsichere Einstellungen und Privilegieneskalationspfade in Active Directory-Umgebungen aufzudecken.

Das Tool integriert sich in die Neo4j-Datenbank von BloodHound, nutzt diese als LDAP-ähnliche Quelle für Active Directory-Informationen und reichert sie durch Hinzufügen neuer Beziehungen (Kanten) und Knoteneigenschaften basierend auf der Analyse an.

Funktionen

Dump

  • Dump von GPOs in einem strukturierten JSON- oder Baumformat
  • Unterstützt mehrere Domänen
  • Löst GPO-Namen mit GPO-GUIDs auf
  • Filtert Ausgabe nach GPO-Dateien, GPO-GUIDs und Domänen
  • Durchsucht Schlüssel/Wert-Paare mit Regex

Analyse

  • Gruppiert Einstellungen nach betroffenem Objekt (z.B. Lokale Gruppen, Registry)
  • Erkennt Mitglieder, die zu lokalen privilegierten Gruppen hinzugefügt wurden
  • Erkennt unsichere Registrierungseinstellungen, gespeicherte Anmeldedaten und Privilegienrechte
  • Unterstützt Entschlüsselung von VNC-Anmeldedaten und GPP-Passwörtern
  • Findet von GPOs betroffene Domänen, Container und OUs
  • Ermittelt auf einen bestimmten Benutzer, Computer, OU, Container oder Domäne angewandte GPOs
  • Reichert BloodHound-Daten mit Beziehungen und Eigenschaften an

Installation

Installieren mit pip

git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .

Installieren mit pipx

pipx install "git+https://github.com/cogiceo/GPOHound"

APOC für Neo4j einrichten

Sie müssen Neo4j APOC für die Anreicherung der BloodHound-Daten einrichten:

  • Wenn Sie die Standard-Neo4j-Installation verwenden, können Sie APOC aktivieren, indem Sie die APOC-jar-Datei in den Plugin-Ordner kopieren und dann Neo4j neu starten:

    cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
    neo4j restart
    
  • Wenn Sie Neo4j mit "Docker Compose" installieren, fügen Sie die Umgebungsvariable NEO4J_PLUGINS=["apoc"] hinzu:

    neo4j:
      image: neo4j:latest
      environment:
        - NEO4J_PLUGINS=["apoc"]
    

Weitere Details oder alternative Installationsmethoden finden Sie in der offiziellen APOC-Dokumentation.

BloodHound-Abfragen hinzufügen

Um die von GPOHound hinzugefügten Beziehungen und Eigenschaften zu visualisieren, können Sie die benutzerdefinierten Abfragen aus der Datei customqueries.json in BloodHound importieren. Standardmäßig befindet sich diese Datei unter ~/.config/bloodhound/customqueries.json.

Voraussetzungen

Auslesen von SYSVOL

Laden Sie zunächst die SYSVOL-Inhalte vom Domänencontroller herunter.

  • Laden Sie das vollständige SYSVOL herunter:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD 
    
  • Laden Sie nur die GPOs herunter:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
    
  • Laden Sie mit Ausschlüssen herunter:

    gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
    

Auslesen von LDAP

Rufen Sie alle erforderlichen Daten von LDAP ab:

gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD

BloodHound

Für die BloodHound-Datenanreicherung müssen Sie BloodHound-Daten mit einem Collector wie bloodhound.py oder SharpHound.exe sammeln und die gesammelten Daten in die BloodHound-Oberfläche importieren.

Verwendung

Beispiel-GPOHound-Dateien sind in example.zip verfügbar. Entpacken Sie sie mit unzip example.zip.

Siehe CONFIG.md für Anweisungen zum Anpassen von Standardwerten und Konfigurationen.

gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis

Parse

gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"

Dump

gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show

Analyse

gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce

Aktuelle Analyse und Anreicherung

[!IMPORTANT]

  • Bedingungen wie Sicherheitsfilter, WMI-Filter und Item-Level-Targeting werden nicht interpretiert.
  • GPO-Konflikte werden nicht simuliert, um gültige Einstellungen nicht zu übersehen.

Lokale Gruppen

  • Erkennung von Benutzern, die bei der Anmeldung privilegierten lokalen Gruppen zugewiesen wurden
  • Erkennung umbenannter integrierter privilegierter lokaler Gruppen.
  • Erkennung von Treuhändern, die privilegierten lokalen Gruppen mithilfe von "Präferenz-Prozessvariablen" (z.B. %ComputerName%, %DomainName%) hinzugefügt wurden
  • Erkennung von missbrauchbaren Treuhändern durch sAMAccountName-Entführung
  • Erkennung aller Treuhänder, die privilegierten lokalen Gruppen hinzugefügt wurden:
GruppeKante
AdministratorenAdminTo
RemotedesktopbenutzerCanRDP
Verteilte COM-BenutzerExecuteDCOM
RemoteverwaltungsbenutzerCanPSRemote
SicherungsoperatorenCanPrivEsc
DruckoperatorenCanPrivEsc
NetzwerkkonfigurationsoperatorenCanPrivEsc

Registry

AnalyseEigenschaft
„Everyone“-Gruppe enthält „Anonyme Anmeldung“
SMB-Serversitzungssignierung ist nicht aktiviertsmbSigningEnabled: false
SMB-Serversitzungssignierung ist nicht erforderlichsmbSigningRequired: false
NTLMv1-Authentifizierung wird unterstütztNTLMv1Support: true
Standardkennwort für automatische Windows-Anmeldung
VNC-Anmeldedaten (Generisch: RealVNC, TightVNC, TigerVNC, etc.)*VNC*PASS* (verschiedene)
In FileZilla gespeicherte Passwörter
PuTTY-Proxy-Passwort
Gespeicherte TeamViewer-Anmeldedaten
WinSCP-gespeicherte Sitzungen
Gespeichertes Picasa-Passwort

Privilegienrechte

Standardmäßige privilegierte Treuhänder sowie Dienstkonten mit SIDs, die mit S-1-5-8 beginnen, werden von der Analyse ausgeschlossen.

PrivilegBeschreibungKante
SeDebugPrivilegeErlaubt dem Benutzer, jeden Prozess zu debuggen und zu interagierenCanPrivEsc
SeBackupPrivilegeGewährt Zugriff auf vertrauliche DateienCanPrivEsc
SeRestorePrivilegeUmgeht Objektberechtigungen während der WiederherstellungCanPrivEsc
SeAssignPrimaryTokenPrivilegeErmöglicht Token-Impersonation zur SYSTEM-EskalationCanPrivEsc
SeImpersonatePrivilegeErlaubt die Erstellung eines Prozesses im Kontext eines anderen BenutzersCanPrivEsc
SeTakeOwnershipPrivilegeErlaubt Benutzern, den Besitz von Systemobjekten zu übernehmenCanPrivEsc
SeTcbPrivilegeGewährt die Fähigkeit, als Teil des Betriebssystems zu agierenCanPrivEsc
SeCreateTokenPrivilegeErlaubt die Erstellung von AuthentifizierungstokensCanPrivEsc
SeLoadDriverPrivilegeAutorisieret das Laden/Entladen von TreibernCanPrivEsc
SeManageVolumePrivilegeGewährt Volumen- oder DatenträgerverwaltungsberechtigungenCanPrivEsc
SeEnableDelegationPrivilegeAktiviert Computer- und Benutzerkonten, um für die Delegierung vertrauenswürdig zu sein

Verbesserung

  • Verbessertes Logging
  • Integration von LDAP
  • Integration von SMB
  • Parsen der verbleibenden Erweiterungen
  • Weboberfläche
  • Hervorhebung potenzieller Konflikte zwischen GPOs

GPO-Dokumentation

SYSVOL und LDAP

  • [MS-GPAC] Erweiterung zur Überwachungskonfiguration
  • [MS-GPCAP] Erweiterung für zentrale Zugriffsrichtlinien
  • [MS-GPEF] Erweiterung für verschlüsselnde Dateisysteme
  • [MS-GPFAS] Datenstruktur für Firewall und erweiterte Sicherheit
  • [MS-GPFR] Erweiterung für Ordnerumleitung
  • [MS-GPIE] Erweiterung für Internet Explorer-Wartung
  • [MS-GPNAP] Erweiterung für Netzwerkzugriffsschutz (NAP)
  • [MS-GPNRPT] Datenerweiterung für Namensauflösungsrichtlinientabelle (NRPT)
  • [MS-GPOL] Kernprotokoll
  • [MS-GPPREF] Datenstruktur für Präferenzerweiterungen
  • [MS-GPREG] Codierung der Registrierungserweiterung
  • [MS-GPSB] Erweiterung für Sicherheitsprotokoll
  • [MS-GPSCR] Codierung der Skripterweiterung
  • [MS-GPSI] Erweiterung für Softwareinstallation

LDAP Only

  • [MS-GPDPC] Erweiterung für bereitgestellte Druckerverbindungen
  • [MS-GPWL] Erweiterung für drahtlose/drahtgebundene Protokolle

Kategorien