
Un script PowerShell pour aider à trouver les paramètres vulnérables dans les stratégies de groupe AD. (déprécié, utilisez Grouper2 à la place !)
N'UTILISEZ PLUS GROUPER. UTILISEZ GROUPER2 ! https://github.com/l0ss/Grouper2
Un script PowerShell pour aider à trouver les paramètres vulnérables dans la stratégie de groupe Active Directory.

Grouper est un module PowerShell conçu pour les pentesters et les redteamers (bien que probablement aussi utile pour les administrateurs système) qui passe au crible la sortie XML (généralement très bruyante) de l'applet de commande Get-GPOReport (partie du module Stratégie de groupe de Microsoft) et identifie tous les paramètres définis dans les objets de stratégie de groupe (GPO) qui pourraient s'avérer utiles à quelqu'un essayant de faire quelque chose d'amusant/de malveillant.
Exemples du genre de choses qu'il trouve dans les GPO :
Oui, c'est assez rudimentaire, mais cela me fait gagner énormément de temps à lire ces horribles rapports GPO HTML de 150 Mo, et si ça marche pour moi, ça pourrait marcher pour vous.
Remarque : Bien que certains noms de fonctions puissent inclure le mot audit, Grouper n'est explicitement PAS destiné à être un audit exhaustif des configurations de meilleures pratiques, etc. Si vous voulez ça, vous devriez utiliser Microsoft SCT et LGPO.exe ou quelque chose du genre.
Générez un rapport GPO sur une machine Windows avec les applets de commande Stratégie de groupe installées. Ceux-ci sont installés par défaut sur les contrôleurs de domaine, peuvent être installés sur les clients Windows à l'aide de RSAT, ou peuvent être activés via l'assistant « Ajouter une fonctionnalité » sur les serveurs Windows.
Get-GPOReport -All -ReportType xml -Path C:\temp\gporeport.xml
Importez le module Grouper.
Import-Module .\grouper.psm1
Exécutez Grouper.
Invoke-AuditGPOReport -Path C:\temp\gporeport.xml
Il y a aussi quelques paramètres que vous pouvez modifier pour modifier les paramètres de stratégie que Grouper vous montrera :
-showDisabled
Par défaut, Grouper ne vous montrera que les GPO actuellement activés et liés à une unité d'organisation dans AD. Cela bascule ce comportement.
-Online
Par défaut, Grouper fonctionne uniquement avec la sortie XML réelle de Get-GPOReport et n'effectue aucune communication réseau, ce qui le rend assez « sûr sur le plan opérationnel », même si je déteste ce terme.
Si vous l'invoquez avec -Online, Grouper activera les vérifications qui nécessitent de communiquer avec (au moins) le domaine AD à partir duquel le rapport a été généré, mais impliqueront probablement aussi de parler, par exemple, aux serveurs de fichiers. Cela permettra à Grouper de faire des choses pratiques comme signaler les ACL sur les fichiers ciblés par les GPO et de vérifier si, par exemple, l'utilisateur actuel peut écrire dans le fichier en question.
-Level
Grouper dispose de 3 niveaux de filtrage que vous pouvez appliquer à sa sortie.
L'utilisation est simple. -Level 3, -Level 2, etc.
Get-GPOReport fonctionne parfaitement sur les machines non jointes à un domaine via runas /netonly. Vous aurez besoin d'identifiants à faibles privilèges, mais c'est à prévoir.
Faites comme ceci :
runas /netonly /user:domaine\utilisateur powershell.exe
sur une machine non jointe à un domaine qui peut communiquer avec un contrôleur de domaine.
Ensuite, dans la session PowerShell résultante, faites comme ceci :
Get-GpoReport -Domain exemple.com -All -ReportType xml -Path C:\temp\gporeport.xml
Facile.
Tout ce dont Grouper a besoin pour fonctionner est PowerShell 2.0 et le fichier xml de sortie de Get-GPOReport. Vous pouvez l'exécuter sur une VM sans carte réseau si vous êtes inquiet et cela fonctionnera toujours très bien.
Cela dit, le code est assez basique, donc il ne devrait pas être difficile de voir qu'il ne fait rien de louche.
Réponse courte : Oui.
Réponse longue : Oui, faire l'une de ces choses serait mieux, mais il y a quelques choses qui m'ont empêché de les faire ENCORE.
Idéalement, j'aimerais analyser les fichiers de stratégie directement depuis SYSVOL, mais ils sont stockés dans différents formats de fichiers, certains sont propriétaires, ils sont vraiment pénibles à lire, et je n'ai ni le temps ni l'envie d'écrire plusieurs analyseurs pour eux à partir de zéro alors que Microsoft fournit déjà des applets de commande qui font le travail très bien.
Dans un avenir pas trop lointain, j'aimerais intégrer le Get-GPOReport de Microsoft dans Grouper, afin que vous n'ayez pas besoin de RSAT du tout, mais je dois déterminer si cela va être une sorte de violation du droit d'auteur. Je dois aussi comprendre comment faire cette chose que je viens de dire.
Grouper n'est pas un scanner de vulnérabilités. Grouper filtre simplement l'énorme quantité de superflu et de bruit dans les rapports de stratégie de groupe pour vous montrer uniquement les paramètres de stratégie qui POURRAIENT être configurés de manière exploitable.