Lors des tests d'intrusion et pour les attaquants qui recherchent des cibles potentielles sur le réseau, il est très intéressant d'avoir un aperçu de la configuration de l'autorité de certification.
Outre d'éventuelles erreurs de configuration, les pirates peuvent obtenir des informations sur le module Policy utilisé sur l'autorité de certification.
Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.
Nous pouvons savoir quelles sont les autorités de certification présentes sur le réseau en tapant certutil sans donner d'arguments :
certutil

Avec cette information, nous pouvons afficher les paramètres de l'autorité de certification avec une autre commande certutil :
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -getreg CA

Pour modifier les paramètres du Modules de politique cette commande peut être utilisée :
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -getreg Policy
Il est possible de lire ici, entre autres, quel module de politique est utilisé et si l'autorité de certification utilise le flag hautement dangereux "P". EDITF_ATTRIBUTESUBJECTALTNAME2 est définie.

Par défaut, ces informations peuvent être lues par tout utilisateur authentifié sur le réseau.
Une méthode simple pour empêcher la lecture de la configuration de l'autorité de certification
En dehors du certutil intégré à Windows, des outils alternatifs comme l'outil de test d'intrusion certipy le Interface ICertAdminPour obtenir ces informations, il est nécessaire d'utiliser un logiciel de gestion de l'information.
Comme nous le savons, l'interface ICertAdmin de l'autorité de certification n'est pas nécessaire pour l'exploitation quotidienne de l'autorité de certification. Elle est nécessaire pour l'administration à distance de l'autorité de certification ainsi que pour certains cas spéciaux comme l'installation d'un serveur NDES.
Déjà dans l'article "Règles de pare-feu requises pour Active Directory Certificate Services"j'ai donc recommandé d'interdire l'accès à ce port par un pare-feu. Comme ce port est utilisé, en plus des RPC Named Pipes, pour le protocole de serveur de fichiers SMB, il ferme ainsi d'autres vecteurs d'attaque (qui se souvient encore de WannaCry ?).
Le pare-feu Windows dispose pour cela d'une règle prédéfinie qui est activée par défaut. Elle peut toutefois être activée par d'autres règles de pare-feu, étant donné que le port TCP 445 peut également être utilisé par d'autres services (qui n'ont généralement rien à faire sur une autorité de certification).
Il s'agit typiquement des règles de pare-feu suivantes :
- Protocole d'inscription et de gestion de l'autorité de certification (CERTSVC-RPC-NP-IN)
- Gestion des services à distance (NP-In)
- Service de connexion au réseau (NP-In)
- Partage de fichiers et d'imprimantes (SMB-In)
- Gestion du journal des événements à distance (NP-In)
- Gestion à distance du serveur de fichiers (SMB-In)
- Partage de fichiers et d'imprimantes (SMB-In)
Avec une simple commande PowerShell, nous pouvons trouver et désactiver toutes les règles de pare-feu locales qui ouvrent le port TCP 445.
Get-NetFirewallPortFilter | Where-Object {$_.LocalPort -like "445"} | Disable-NetFirewallRule
Il serait bien sûr encore mieux de placer un pare-feu réseau devant l'autorité de certification. Pour la configuration du pare-feu local d'une autorité de certification, il convient de configurer une stratégie de groupe qui permette en principe de tout gérer, sauf les ports absolument nécessaires (voir ici) bloque.
Si nous lançons à nouveau notre ordre, nous serons dans le vide.
CertUtil: -getreg command FAILED: 0x80070035 (WIN32: 53 ERROR_BAD_NETPATH)
CertUtil: The network path was not found.

Autre possibilité de lecture : Enregistrement à distance
Un autre moyen de lire les paramètres de l'autorité de certification est le registre à distance, qui est activé par défaut sur chaque serveur Windows.
Une requête à distance par rapport aux paramètres sur l'autorité de certification peut être effectuée comme suit :
reg query "\\{DNS-Name-CA}\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\{Common-Name-CA}"

Cela peut être évité, entre autres, en désactivant et en arrêtant le service d'enregistrement à distance de l'autorité de certification.
Get-Service -Name RemoteRegistry | Set-Service -StartupType Disabled
Get-Service -Name RemoteRegistry | Stop-Service
Restrictions
Même s'il n'y a plus d'accès à l'interface ICertAdmin et à l'enregistrement à distance, certaines informations peuvent encore être lues - comme par exemple le module Policy actif :
certutil -v -config "{DNS-Name-CA}\{Common-Name-CA}" -CAInfo Policy

Isolation complète de l'organisme de certification
Une possibilité de limiter encore plus la lecture de la configuration de l'autorité de certification serait de l'isoler complètement du réseau uniquement par le biais d'une instance de l Services web de demande de certificat de rendre accessible. Mais cela entraîne une complexité nettement plus grande de l'infrastructure et d'autres défis comme la délégation Kerberos.
Liens complémentaires :
- Règles de pare-feu requises pour Active Directory Certificate Services
- Mise en danger de la structure globale d'Active Directory par le drapeau EDITF_ATTRIBUTESUBJECTALTNAME2
- La configuration des rôles pour le service d'enregistrement des périphériques réseau (NDES) échoue avec le message d'erreur "The RPC server is unavailable. 0x800706ba (WIN32 : 1722 RPC_S_SERVER_UNAVAILABLE)".
- Bases de la demande de certificat via les Certificate Enrollment Web Services (CEP, CES) avec les protocoles MS-XCEP et MS-WSTEP
Sources externes
- ICertAdmin (certadm.h) - Win32 apps | Microsoft Learn
- ly4k/Certipy : Outil d'énumération et d'abus des services de certificats Active Directory
- Le guide de la déception de The red teamer (Exposé lors de Troopers 24)
- Certiception : le pot de miel ADCS dont nous avons toujours rêvé (Security Research Labs GmbH)
- srlabs/Certiception : Un honeypot ADCS pour attraper les attaquants sur votre réseau interne.
- ADCS Exploitation Part 3 : Living Off The Land | by Giulio Pierantoni | Jun, 2025 | Medium