
PowerShell toolkit pour l'audit d'AD CS basé sur le toolkit PSPKI.
Boîte à outils PowerShell pour auditer les services de certificat Active Directory (AD CS).
Il est construit sur la base de la boîte à outils PSPKI (licence publique Microsoft) de PKISolution. Ce dépôt contient une version plus récente de PSPKI que celle disponible dans la PSGallery (voir le répertoire PSPKI). Vadims Podans (le créateur de PSPKI) a gracieusement fourni cette version car elle contient des correctifs pour plusieurs bugs.
Ce README n'est qu'un point de départ – pour des détails complets et des conseils défensifs, veuillez consulter le livre blanc "Certified Pre-Owned".
Le module contient les fonctions principales suivantes :
ATTENTION : Ce code est en version bêta ! Nous sommes confiants que Invoke-PKIAudit n'aura pas d'impact sur l'environnement car la quantité de données qu'il interroge est très limitée. Nous n'avons pas effectué de tests rigoureux avec Get-CertRequest sur des charges de travail typiques d'un serveur CA. Get-CertRequest interroge directement la base de données de la CA et peut devoir traiter des milliers de résultats, ce qui pourrait affecter les performances.
S'IL N'Y A PAS DE RÉSULTATS, CELA NE GARANTIT PAS QUE VOTRE ENVIRONNEMENT EST SÉCURISÉ !!
NOUS NE POUVONS PAS NON PLUS GARANTIR QUE NOS CONSEILS D'ATTÉNUATION RENDRONT VOTRE ENVIRONNEMENT SÉCURISÉ OU NE PERTURBERONT PAS LES OPÉRATIONS !
Il est de votre responsabilité de discuter avec votre/vos équipe(s) Active Directory/PKI/Architecture pour déterminer les meilleures atténuations pour votre environnement.
Si le code se casse, ou si nous avons oublié quelque chose, veuillez soumettre un problème ou une demande de tirage pour une correction !
Installez les éléments suivants sur une machine Windows avec une invite PowerShell élevée (PowerShell version 5.1 ou supérieure) :
* Le [module PowerShell PSPKI](https://github.com/PKISolutions/PSPKI). Installez-le avec la commande suivante :```
Install-Module -Name PSPKI
Téléchargez le module et extrayez-le dans un dossier. Ensuite, importez le module en utilisant les commandes suivantes :``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File
Import-Module .\PSPKIAudit.psd1
# Audit des mauvaises configurations AD CS
L'exécution de `Invoke-PKIAudit` exécutera toutes les vérifications d'audit contre AD CS dans le domaine actuel, y compris l'énumération de divers paramètres d'Autorité de Certification et de Modèle de Certificat. Pour auditer une AC spécifique, vous pouvez exécuter `Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` ou `Invoke-PKIAudit -CAName X-Y-Z`.
Toute mauvaise configuration (ESC1-8) apparaîtra comme une propriété sur les résultats de l'AC/du modèle affichés pour identifier la mauvaise configuration spécifique trouvée.
Si vous souhaitez modifier les groupes/utilisateurs utilisés pour tester l'inscription/le contrôle d'accès, modifiez l'expression régulière `$CommonLowprivPrincipals` en haut de `Invoke-PKIAudit.ps1`
Si vous souhaitez exporter toutes les informations de l'AC dans un fichier csv, exécutez : `Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv`
Si vous souhaitez exporter toutes les informations des modèles publiés dans un fichier csv (pas seulement les modèles vulnérables), exécutez : `Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv`
## Explication de la sortie
Il y a deux sections principales de sortie : les détails sur les AC découvertes et les détails sur les modèles potentiellement vulnérables.
Pour les résultats de l'autorité de certification :
| Propriété de l'Autorité de Certification | Description |
| ---------------------------------------- | ------------------------------------------------------------------ |
| ComputerName | Le système sur lequel l'AC s'exécute. |
| CAName | Le nom de l'AC. |
| ConfigString | La chaîne de configuration complète ORDINATEUR\NOM_AC. |
| IsRoot | Si l'AC est une AC racine. |
| AllowsUserSuppliedSans | Si l'AC a le flag `EDITF_ATTRIBUTESUBJECTALTNAME2` défini. |
| VulnerableACL | Si l'AC a un paramètre ACL vulnérable. |
| EnrollmentPrincipals | Les principaux qui ont le privilège `Enroll` au niveau de l'AC. |
| EnrollmentEndpoints | Les points de terminaison d'inscription des services web de l'AC. |
| NTLMEnrollmentEndpoints | Les points de terminaison d'inscription des services web de l'AC avec NTLM activé. |
| DACL | Les informations complètes de contrôle d'accès. |
| Misconfigurations | ESCX indiquant la mauvaise configuration spécifique présente (le cas échéant). |
Pour les résultats du modèle de certificat :