Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
GPOHound — Outil offensif de vidage et d'analyse de GPO qui exploite et enrichit les données de BloodHound | Kitploit
Outils/GitHubGitHub/cogiceo/gpohound
Escalade de PrivilègesAnalyse des VulnérabilitésAudit de ConfigurationCollecte d'InformationsTests d'IntrusionMauvaise ConfigurationRed Teaming
GitHubcogiceo/gpohound

GPOHound

Outil offensif de vidage et d'analyse de GPO qui exploite et enrichit les données de BloodHound

Voir le dépôt
4153879il y a 5 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web
# GPOHound

`GPOHound` est un outil pour extraire et analyser les objets de stratégie de groupe (GPO) extraits du partage SYSVOL.

Il fournit un format structuré et formalisé pour aider à découvrir les mauvaises configurations, les paramètres non sécurisés et les chemins d'élévation de privilèges dans les environnements Active Directory.

L'outil s'intègre à la base de données Neo4j de BloodHound, l'utilisant comme source de type LDAP pour les informations Active Directory tout en l'enrichissant en ajoutant de nouvelles relations (arêtes) et propriétés de nœuds basées sur l'analyse.

## Fonctionnalités

### Extraction

- [x] Extrait les GPO dans un format JSON structuré ou arborescent  
  
- [x] Gère plusieurs domaines  

- [x] Résout les noms de GPO avec les GUID de GPO  

- [x] Filtre la sortie par fichiers GPO, GUID de GPO et domaines  

- [x] Recherche dans les paires clé/valeur à l'aide d'expressions régulières  

### Analyse

- [x] Regroupe les paramètres par objet impacté (ex. : Groupes locaux, Registre)  

- [x] Détecte les membres ajoutés aux groupes locaux privilégiés  

- [x] Détecte les paramètres de registre non sécurisés, les informations d'identification stockées et les droits de privilège  

- [x] Prend en charge le déchiffrement des informations d'identification VNC et des mots de passe GPP  

- [x] Trouve les domaines, conteneurs et UO affectés par les GPO  

- [x] Obtient les GPO appliqués à un utilisateur, un ordinateur, une UO, un conteneur ou un domaine spécifique  

- [x] Enrichit les données BloodHound avec des relations et des propriétés  


## Installation

### Installer avec pip

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

### Installer avec pipx

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


### Configuration d'APOC pour Neo4j

Vous devez configurer Neo4j APOC pour l'enrichissement des données BloodHound :

- Si vous utilisez l'installation standard de Neo4j, vous pouvez activer APOC en copiant le fichier `jar` d'APOC dans le dossier des plugins, puis en redémarrant Neo4j :

  ```bash
  cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
  neo4j restart
  ```

- Si vous installez Neo4j avec "Docker Compose", ajoutez la variable d'environnement `NEO4J_PLUGINS=["apoc"]` :

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

> Pour plus de détails ou d'autres méthodes d'installation, consultez la [documentation officielle d'APOC](https://neo4j.com/docs/apoc/current/installation/).

### Ajouter des requêtes BloodHound

Pour visualiser les relations et propriétés ajoutées par `GPOHound`, vous pouvez importer les requêtes personnalisées du fichier `customqueries.json` dans BloodHound. Par défaut, ce fichier se trouve dans `~/.config/bloodhound/customqueries.json`.

## Prérequis

### Extraction de SYSVOL

Commencez par télécharger le contenu de `SYSVOL` depuis le contrôleur de domaine.

- Télécharger l'intégralité du `SYSVOL` :

  ```bash
  gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD 
  ```

- Télécharger uniquement les GPO :

  ```bash
  gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
  ```

- Télécharger avec exclusions :

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

### Extraction LDAP

Récupérez toutes les données nécessaires depuis LDAP :

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

### BloodHound

Pour l'enrichissement des données BloodHound, vous devez collecter les données BloodHound à l'aide d'un collecteur tel que `bloodhound.py` ou `SharpHound.exe`, puis importer les données recueillies dans l'interface BloodHound.

## Utilisation

Des exemples de fichiers GPOHound sont disponibles dans `example.zip`. Extrayez-les avec `unzip example.zip`.

Consultez [CONFIG.md](https://github.com/cogiceo/gpohound/blob/main/CONFIG.md) pour des instructions sur la personnalisation des valeurs par défaut et des configurations.

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

### Analyse

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

### Extraction

```bash
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

```bash
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
```


## Analyse et enrichissement actuels


> [!IMPORTANT] 
> - Les conditions telles que les filtres de sécurité, les filtres WMI et le ciblage au niveau des éléments ne sont pas interprétées.
> - Les conflits de GPO ne sont pas simulés, afin d'éviter de manquer des paramètres valides.

### Groupes locaux

- Détection des utilisateurs affectés aux groupes locaux privilégiés lors de la connexion

- Détection des groupes locaux privilégiés intégrés renommés

- Détection des trustees ajoutés aux groupes locaux privilégiés à l'aide de "Variables de processus de préférence" (ex. : %ComputerName%, %DomainName%)

- Détection des trustees abusables via le détournement de `sAMAccountName`

- Détection de tout trustee ajouté aux groupes locaux privilégiés :

  | Groupe                          | Arête        |
  |--------------------------------|--------------|
  | Administrateurs                 | `AdminTo`    |
  | Utilisateurs du Bureau à distance           | `CanRDP`     |
  | Utilisateurs COM distribués          | `ExecuteDCOM`|
  | Utilisateurs de la gestion à distance        | `CanPSRemote`|
  | Opérateurs de sauvegarde               | `CanPrivEsc` |
  | Opérateurs d'impression                | `CanPrivEsc` |
  | Opérateurs de configuration réseau| `CanPrivEsc` |

### Registre

| Analyse                                                                 | Propriété                 |
|--------------------------------------------------------------------------|---------------------------|
| Le groupe "Tout le monde" inclut "Ouverture de session anonyme"                              | —                         |
| La signature de session du serveur SMB n'est pas activée                                | `smbSigningEnabled: false`|
| La signature de session du serveur SMB n'est pas requise                               | `smbSigningRequired: false`|
| L'authentification NTLMv1 est prise en charge                                       | `NTLMv1Support: true`     |
| Mot de passe par défaut de la connexion automatique Windows                                 | —                         |
| Informations d'identification VNC (Générique : RealVNC, TightVNC, TigerVNC, etc.)             | `*VNC*PASS*` (divers)  |
| Mots de passe stockés FileZilla                                               | —                         |
| Mot de passe proxy PuTTY                                                     | —                         |
| Informations d'identification stockées TeamViewer                                            | —                         |
| Sessions enregistrées WinSCP                                                    | —                         |
| Mot de passe stocké Picasa                                                   | —                         |

### Droits de privilège

Les trustees privilégiés par défaut, ainsi que les comptes de service dont les SID commencent par `S-1-5-8`, sont exclus de l'analyse.

| Privilège                     | Description                                                    | Arête        |
| ----------------------------- | -------------------------------------------------------------- | ------------ |
| SeDebugPrivilege              | Permet à l'utilisateur de déboguer et d'interagir avec tout processus             | `CanPrivEsc` |
| SeBackupPrivilege             | Accorde l'accès aux fichiers sensibles                               | `CanPrivEsc` |
| SeRestorePrivilege            | Contourne les autorisations d'objet lors de la restauration                     | `CanPrivEsc` |
| SeAssignPrimaryTokenPrivilege | Permet l'usurpation de jeton pour l'élévation vers SYSTEM              | `CanPrivEsc` |
| SeImpersonatePrivilege        | Permet la création d'un processus sous le contexte d'un autre utilisateur        | `CanPrivEsc` |
| SeTakeOwnershipPrivilege      | Permet aux utilisateurs de prendre possession d'objets système                    | `CanPrivEsc` |
| SeTcbPrivilege                | Accorde la capacité d'agir en tant que partie du système d'exploitation                    | `CanPrivEsc` |
| SeCreateTokenPrivilege        | Permet la création de jetons d'authentification                      | `CanPrivEsc` |
| SeLoadDriverPrivilege         | Autorise le chargement/déchargement de pilotes                            | `CanPrivEsc` |
| SeManageVolumePrivilege       | Accorde les privilèges de gestion de volume ou de disque                    | `CanPrivEsc` |
| SeEnableDelegationPrivilege   | Permet de faire confiance aux comptes d'ordinateur et d'utilisateur pour la délégation |              |

# Améliorations

- [x] Améliorer la journalisation
- [x] Intégrer LDAP
- [x] Intégrer SMB
- [ ] Analyser les extensions restantes 
- [ ] Interface web
- [ ] Mettre en évidence les conflits potentiels entre les GPO


## Documentation GPO

### SYSVOL et LDAP

- [x] [\[MS-GPAC\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPAC/) Extension de configuration d'audit
- [x] [\[MS-GPCAP\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPCAP/) Extension de protocole des stratégies d'accès centralisées
- [x] [\[MS-GPEF\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPEF/) Extension du système de fichiers de chiffrement
- [x] [\[MS-GPFAS\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPFAS/) Structure de données du pare-feu et de la sécurité avancée
- [x] [\[MS-GPFR\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPFR/) Extension de protocole de redirection de dossiers
- [ ] [\[MS-GPIE\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPIE/) Extension de maintenance d'Internet Explorer
- [x] [\[MS-GPNAP\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPNAP/) Extension de protection d'accès réseau (NAP)
- [x] [\[MS-GPNRPT\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPNRPT/) Extension de données de la table de stratégie de résolution de noms (NRPT)
- [x] [\[MS-GPOL\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPOL/) Protocole de base
- [x] [\[MS-GPPREF\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPPREF/) Structure de données de l'extension des préférences
- [x] [\[MS-GPREG\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPREG/) Encodage de l'extension de registre
- [x] [\[MS-GPSB\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSB/) Extension de protocole de sécurité
- [x] [\[MS-GPSCR\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSCR/) Encodage de l'extension de scripts
- [x] [\[MS-GPSI\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPSI/) Extension de protocole d'installation de logiciels


### LDAP uniquement

- [x] [\[MS-GPDPC\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPDPC/) Extension de connexions d'imprimante déployées
- [ ] [\[MS-GPWL\]](https://learn.microsoft.com/en-us/openspecs/windows_protocols/MS-GPWL/) Extension de protocole sans fil/filaire
Télécharger l’outil