
Automatise l'exploitation des GPO Active Directory via le relais NTLM, permettant la génération de modèles GPO malveillants, l'usurpation d'emplacement et l'exécution de commandes pour l'élévation de privilèges et le mouvement latéral.
Le projet GPOddity, visant à automatiser les vecteurs d'attaque des GPO via le relais NTLM (et plus encore).
Pour plus de détails sur l'attaque et une démonstration d'utilisation de l'outil, consultez l'article associé disponible à l'adresse : https://www.synacktiv.com/publications/gpoddity-exploiting-active-directory-gpos-through-ntlm-relaying-and-more
Vous pouvez installer GPOddity via pipx avec la commande suivante :
$ python3 -m pipx install git+https://github.com/synacktiv/GPOddity
Sinon, vous pouvez installer GPOddity manuellement en clonant le dépôt et en installant les dépendances :
$ git clone https://github.com/synacktiv/GPOddity
$ python3 -m pip install -r requirements.txt
$ python3 gpoddity.py --help
Usage: gpoddity.py [OPTIONS]
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Affiche ce message et quitte. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options générales ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --domain TEXTE Le domaine cible [défaut : Aucun] [obligatoire] │
│ * --gpo-id TEXTE Le GUID de l'objet GPO sans les accolades (par exemple, '1328149E-EF37-4E07-AC9E-E35920AD2F59') [défaut : Aucun] [obligatoire] │
│ * --username TEXTE Le nom d'utilisateur disposant des droits d'écriture sur l'objet GPO AD. Il peut s'agir d'un compte machine (par exemple, 'SRV01$') [défaut : Aucun] [obligatoire] │
│ --password TEXTE Le mot de passe de l'utilisateur disposant des droits d'écriture sur l'objet GPO AD [défaut : Aucun] │
│ --hash TEXTE Le hash NTLM de l'utilisateur disposant des droits d'écriture sur l'objet GPO AD, au format 'LM:NT' [défaut : Aucun] │
│ --dc-ip TEXTE [Optionnel] L'IP du contrôleur de domaine si le nom de domaine ne peut pas être résolu. [défaut : Aucun] │
│ --ldaps [Optionnel] Utiliser LDAPS sur le port 636 au lieu de LDAP │
│ --verbose [Optionnel] Activer la sortie verbeuse │
│ --just-clean [Optionnel] Effectuer uniquement le nettoyage à partir des valeurs spécifiées dans le fichier du flag --clean-file. Peut être utile pour nettoyer en cas d'exploitation │
│ incomplète ou de sortie non gracieuse │
│ --clean-file TEXTE [Optionnel] Le fichier du dossier 'cleaning/' contenant les valeurs à restaurer lors de l'utilisation du flag --just-clean. Chemin relatif depuis le dossier d'installation de GPOddity, ou │
│ chemin absolu │
│ [défaut : Aucun] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options de génération de modèle de stratégie de groupe malveillant ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --command TEXTE La commande à exécuter via le GPO malveillant [défaut : Aucun] │
│ --powershell [Optionnel] Utiliser powershell au lieu de cmd pour l'exécution de la commande │
│ --gpo-type [user|computer] [Optionnel] Le type de GPO ciblé. Peut être 'user' ou 'computer' [défaut : computer] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options de usurpation d'emplacement du modèle de stratégie de groupe ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --rogue-smbserver-ip TEXTE L'adresse IP ou le nom DNS du serveur qui hébergera le GPO malveillant usurpé. Si vous utilisez le serveur SMB de GPOddity, il doit s'agir de l'adresse IP de │
│ l'hôte actuel sur le réseau interne (par exemple, 192.168.58.101) │
│ [défaut : Aucun] │
│ --rogue-smbserver-share TEXTE Le nom du partage qui servira le GPO malveillant usurpé (par exemple, 'synacktiv'). Si vous exécutez le serveur SMB intégré, ne FOURNISSEZ PAS de │
│ noms incluant 'SYSVOL' ou 'NETLOGON' (protégés par le durcissement de chemin UNC par défaut) │
│ [défaut : Aucun] │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options du serveur SMB ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --machine-name TEXTE [Optionnel] Le nom d'un compte machine de domaine valide, qui sera utilisé pour effectuer l'authentification Netlogon (par exemple, SRV01$). Si │