Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 415 minAvancé

Auditer Active Directory : PingCastle, Purple Knight et l'ANSSI

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • lancer un audit de santé de l'annuaire avec PingCastle ;
  • lire un rapport : score global, catégories, règles ;
  • compléter l'audit par quelques requêtes PowerShell ;
  • classer les constats et bâtir un plan de remédiation priorisé.

4 exercices corrigés1 schéma

Auditer Active Directory, c'est lire la configuration de l'annuaire pour mesurer son niveau de sécurité et dresser la liste des écarts à corriger, par ordre de priorité. Des outils gratuits font l'essentiel du travail : PingCastle, le plus utilisé en France et celui des sujets d'examen, Purple Knight, et les points de contrôle de l'ANSSI avec leur outil de collecte ORADAD. Ce chapitre montre comment lancer un audit, lire un rapport et transformer ses constats en plan d'action.

Ce qu'est un audit d'annuaire, et ce qu'il n'est pas

Un audit de configuration lit l'annuaire : comptes, groupes, attributs, délégations, GPO, approbations, niveaux fonctionnels. Il compare ce qu'il trouve à des règles tirées des recommandations de l'ANSSI, de Microsoft et de l'expérience des incidents. Il ne modifie rien et n'exploite rien.

Il ne remplace ni un test d'intrusion (mené par des spécialistes, sur mandat écrit), ni la surveillance des journaux : un domaine bien configuré peut quand même être attaqué, et l'audit ne voit pas une attaque en cours. Il répond à une question simple : « où sont nos faiblesses, et par quoi commencer ? »

PingCastle : l'outil des sujets d'examen

PingCastle a été créé par Vincent Le Toux et appartient aujourd'hui à l'éditeur Netwrix. La version 3.5 est sortie en février 2026. L'édition Community, gratuite, sert à auditer son propre environnement, sans support ni droit d'usage commercial ; auditer le domaine d'un client demande une licence payante. Les sujets de 2024 et de 2025 la présentaient ainsi : un programme autonome, sans installation, qui contrôle l'annuaire au regard des recommandations de l'ANSSI, utilisable sans être administrateur du domaine.

Lancer un bilan de santé, depuis le poste d'administration de Sorbier, avec un compte du domaine :

  1. Télécharger l'archive depuis le site officiel de PingCastle ou le dépôt GitHub de Netwrix, vérifier qu'elle provient bien de l'éditeur, puis la décompresser dans un dossier de travail.
  2. Lancer PingCastle.exe. Un menu en mode texte s'affiche ; choisir 1-healthcheck (bilan de santé du domaine).
  3. Indiquer le domaine à analyser (ad.sorbier.example, proposé par défaut si le poste est membre du domaine).
  4. L'analyse dure de quelques secondes à quelques minutes. Elle produit deux fichiers dans le dossier : un rapport HTML ad_hc_ad.sorbier.example.html à lire, et un fichier XML qui sert à comparer les audits successifs.

On peut aussi le lancer sans menu, ce qui permet de le planifier chaque mois :

powershell
.\PingCastle.exe --healthcheck --server ad.sorbier.example

Lire le rapport PingCastle

Le rapport commence par des scores de risque. Plus un score est élevé, plus le risque est grand : 0 correspond à un domaine sans défaut détecté, 100 est le maximum par catégorie. Chaque règle en défaut ajoute des points, d'autant plus que la faiblesse est grave.

CatégorieCe qu'elle regardeExemples de règles
Objets obsolètes (Stale Objects)Comptes et ordinateurs inactifs, systèmes hors support, mots de passe qui n'expirent jamaisOrdinateurs sous un système plus maintenu, comptes inactifs depuis des mois
Comptes privilégiés (Privileged Accounts)Membres des groupes d'administration, comptes de service, délégationsTrop de membres dans Admins du domaine, comptes d'administration hors de Protected Users
Approbations (Trusts)Relations avec d'autres domaines et forêtsApprobation sans filtrage des SID
AnomaliesTout le reste : LAPS, journaux, protocoles, krbtgt, spouleur sur les contrôleurs« LAPS ne semble pas installé », mot de passe de krbtgt trop ancien, WEF non configuré

Le score global du domaine n'est pas une moyenne : c'est le plus élevé des quatre scores de catégorie. Un domaine parfait sur trois catégories et catastrophique sur la quatrième a un mauvais score global, et c'est voulu : un attaquant n'a besoin que d'un chemin.

Sous les scores, le rapport liste chaque règle en défaut avec son nombre de points, une explication du risque, la manière de corriger et des liens vers la documentation (ANSSI, Microsoft). Clique sur une règle : la description dit précisément quels objets sont concernés.

Purple Knight

Purple Knight, de l'éditeur Semperis, est un autre outil gratuit d'évaluation. Il analyse Active Directory (et, selon la version, Microsoft Entra ID et Okta), regroupe ses contrôles par catégories (sécurité des comptes, délégation, GPO, infrastructure, Kerberos) et produit un score sur 100 par catégorie, où un score élevé est bon, à l'inverse de PingCastle. Ses indicateurs sont rattachés aux tactiques de MITRE ATT&CK et au référentiel de l'ANSSI. Lancer les deux outils et comparer leurs résultats est une bonne pratique : ils ne voient pas exactement les mêmes choses.

Les points de contrôle de l'ANSSI et ORADAD

L'ANSSI publie en ligne un recueil de points de contrôle Active Directory, régulièrement enrichi. Chaque point vérifie l'absence d'une pratique qui affaiblit l'annuaire, et le domaine se voit attribuer un niveau de 1 à 5 :

NiveauSignification (d'après l'ANSSI)
1Problèmes critiques de configuration qui mettent en danger immédiat l'ensemble des ressources ; actions correctrices dans les plus brefs délais
2Lacunes de configuration et de gestion suffisantes pour mettre en danger l'ensemble des ressources ; actions correctrices à court terme
3Niveau de sécurité basique, non affaibli depuis l'installation
4Bon niveau de sécurité
5Niveau de sécurité à l'état de l'art

Chaque point de contrôle est rattaché à un niveau, et pour obtenir un niveau, l'annuaire doit passer tous les points des niveaux inférieurs. Par exemple, le point « mot de passe du compte krbtgt inchangé depuis plus d'un an » est rattaché au niveau 2 : un domaine où il est en défaut reste au niveau 2 au mieux, puisque le niveau 3 exige de passer tous les points de niveau 1 et 2.

ORADAD (Outil de récupération automatique des données de l'Active Directory) est l'outil de collecte libre de l'ANSSI, publié sur GitHub sous licence GPL. Il extrait par LDAP les données de l'annuaire, sur toute une forêt. L'analyse de ces données et l'attribution du niveau sont faites par le service ADS (Active Directory Security) de l'ANSSI, réservé aux opérateurs régulés et à la sphère publique (ministères, opérateurs d'importance vitale, collectivités). Une PME comme Sorbier ne peut pas bénéficier de ce service, mais elle peut lire les points de contrôle publics et s'en servir comme référentiel, avec PingCastle comme outil de mesure.

Compléter l'audit avec PowerShell

Quelques requêtes du module ActiveDirectory, lancées depuis le poste d'administration, vérifient les points les plus fréquents et permettent de suivre la correction. Elles ne font que lire.

powershell
# Membres (directs et imbriqués) des groupes d'administration du domaine
Get-ADGroupMember -Identity "Admins du domaine" -Recursive | Select-Object Name, SamAccountName
Get-ADGroupMember -Identity "Administrateurs de l'entreprise" -Recursive | Select-Object Name

# Comptes utilisateurs portant un SPN, avec la date de leur mot de passe
Get-ADUser -LDAPFilter "(servicePrincipalName=*)" -Properties servicePrincipalName, PasswordLastSet |
    Select-Object SamAccountName, PasswordLastSet, servicePrincipalName

# Comptes sans pré-authentification Kerberos (doit être vide)
Get-ADUser -Filter 'DoesNotRequirePreAuth -eq $true' | Select-Object SamAccountName

# Comptes actifs dont le mot de passe n'expire jamais
Get-ADUser -Filter 'PasswordNeverExpires -eq $true -and Enabled -eq $true' | Select-Object SamAccountName

# Comptes utilisateurs inactifs depuis plus de 90 jours
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly | Select-Object SamAccountName, LastLogonDate

# Ordinateurs en délégation non contrainte (seuls les contrôleurs de domaine devraient apparaître)
Get-ADComputer -Filter 'TrustedForDelegation -eq $true' | Select-Object Name

# Date du dernier changement de mot de passe de krbtgt
Get-ADUser -Identity krbtgt -Properties PasswordLastSet | Select-Object PasswordLastSet

# Nombre de comptes d'ordinateur qu'un utilisateur ordinaire peut créer (10 par défaut)
Get-ADObject -Identity (Get-ADDomain).DistinguishedName -Properties ms-DS-MachineAccountQuota |
    Select-Object ms-DS-MachineAccountQuota

Prioriser : du rapport au plan d'action

Un premier audit relève souvent trente ou quarante écarts. On ne peut pas tout corriger en une semaine, et certains changements cassent des applications s'ils sont faits sans préparation. On classe donc chaque constat selon deux critères : la gravité (à quel point il rapproche un attaquant du tier 0) et l'effort (temps, risque de casse, coût).

Effort de correctionGravitéÀ faire tout de suiteretirer un compte inutilede Admins du domainedésactiver le spouleursur les contrôleursréactiver la pré-authentif.À planifier en projetmodèle en tiersrestriction de NTLMremplacer les comptesde service par des gMSAAu fil de l'eausupprimer les comptesinactifsPour plus tardgravité faible,effort élevé
Prioriser les constats : la gravité d'abord, puis l'effort

Un plan d'action réaliste pour Sorbier, construit à partir des constats du chapitre 1 :

ÉchéanceMesuresPourquoi maintenant
Sous une semaineRetirer stagiaire2023 et les comptes inutiles de Admins du domaine ; désactiver le spouleur sur les contrôleurs ; changer le mot de passe de svc-sauvegarde pour un mot de passe très long en attendant le gMSA ; activer la corbeille AD ; lancer une sauvegarde de l'état du système des deux contrôleursGravité élevée, effort faible, aucun risque de casse
Sous un moisCréer les comptes d'administration par tier et ajouter les comptes adm0-* à Protected Users ; déployer Windows LAPS ; porter la politique de mots de passe à 12 caractères avec verrouillage ; stratégie affinée pour les administrateurs ; activer l'audit des contrôleurs et les envoyer au SIEM ; premier changement du mot de passe de krbtgtGravité élevée, effort moyen, quelques tests nécessaires
Sous trois moisGPO d'interdiction des connexions entre tiers ; remplacer les comptes de service par des gMSA ; désactiver LLMNR et NetBIOS ; second changement du mot de passe de krbtgt si un doute subsiste ; auditer NTLMDemande des tests applicatifs et une communication aux utilisateurs
Dans l'annéeRestreindre NTLM ; poste d'administration dédié pour le tier 0 ; appliquer la baseline de sécurité de Windows Server 2025 aux contrôleurs ; audit PingCastle chaque mois et suivi du scoreProjets structurants, à inscrire dans la feuille de route

Ce que les sujets d'examen demandent

SujetCe qui était demandé
2024, Clinique Martin (alors U6), dossier BRelever deux éléments de sûreté déjà en place ; analyser la politique de mots de passe (trois éléments judicieux, deux discutables) ; expliquer le danger des systèmes obsolètes et le critère retenu par PingCastle ; expliquer pourquoi la mise en cache des identifiants des administrateurs est dangereuse et proposer une solution (le groupe Protected Users était présenté dans un document) ; juger l'intérêt du transfert d'événements Windows
2025, Everest (sujet de secours, U7), mission A1Relever trois risques majeurs liés à l'authentification dans un rapport PingCastle ; rédiger la partie du rapport sur le mot de passe d'administrateur local identique ; définir les paramètres de la GPO LAPS en les justifiant

Le corrigé du site pour l'épreuve 2024 de la Clinique Martin traite le dossier B en détail.

Exercices

Exercice 1 sur 4 Lire un extrait de rapport Réussi À revoir

Le rapport PingCastle de Sorbier affiche ces scores : objets obsolètes 35, comptes privilégiés 70, approbations 0, anomalies 55. Quel est le score global du domaine ? Qu'en conclus-tu sur les approbations, et par quelle catégorie faut-il commencer ?

Voir la réponseMasquer la réponse de l'exercice 1

Le score global est le maximum des quatre catégories : 70. Le score de 0 en approbations signifie qu'aucune règle n'est en défaut dans cette catégorie, ce qui est normal pour un domaine unique sans relation avec d'autres domaines. On commence par les comptes privilégiés : c'est la catégorie la plus mauvaise, celle qui fixe le score global, et elle touche directement au tier 0. Les anomalies (55) viennent ensuite.

Tu avais trouvé ?

Exercice 2 sur 4 Prioriser cinq constats Réussi À revoir

Classe ces constats dans les quatre cases de la matrice (gravité, effort) et justifie : (a) 14 comptes utilisateurs inactifs depuis plus de 6 mois, sans privilège ; (b) le compte de service de l'application de gestion est membre de Admins du domaine, et l'éditeur doit être consulté avant tout changement ; (c) le spouleur d'impression tourne sur les deux contrôleurs ; (d) NTLM est utilisé par une dizaine d'applications non identifiées ; (e) deux comptes ont l'option « Ne pas exiger de pré-authentification Kerberos ».

Voir la réponseMasquer la réponse de l'exercice 2
  • Gravité élevée, effort faible (tout de suite) : (c) un clic par contrôleur, aucune impression ne passe par un contrôleur de domaine ; (e) décocher l'option, après avoir vérifié qu'aucune application ancienne n'en dépend.
  • Gravité élevée, effort élevé (projet) : (b) un compte de service privilégié est un raccourci vers le tier 0, mais le changer demande l'éditeur, des tests et peut-être un gMSA ; en attendant, mot de passe très long et surveillance du compte. (d) Restreindre NTLM sans savoir qui l'utilise casserait des applications : il faut d'abord l'auditer (chapitre 8).
  • Gravité faible, effort faible (au fil de l'eau) : (a) désactiver puis supprimer ces comptes après vérification avec les services ; la gravité est modérée (ils peuvent servir à une pulvérisation de mots de passe), l'effort minime.

Tu avais trouvé ?

Exercice 3 sur 4 Interpréter un niveau ANSSI Réussi À revoir

Après correction, l'annuaire de Sorbier passe tous les points de contrôle rattachés aux niveaux 1 et 3, mais un point rattaché au niveau 2 reste en défaut. Quel niveau ANSSI le domaine obtient-il ? Que faut-il faire pour atteindre le niveau 4 ?

Voir la réponseMasquer la réponse de l'exercice 3

Pour obtenir un niveau, l'annuaire doit passer tous les points des niveaux inférieurs. Le niveau 2 n'exige que les points de niveau 1 : il est acquis. Le niveau 3 exige les points de niveaux 1 et 2 : le point de niveau 2 en défaut le bloque. Le domaine est donc au niveau 2, même s'il passe déjà tous les points de niveau 3 : la règle empêche de compenser une faiblesse de base par des mesures plus avancées. Pour atteindre le niveau 4, il suffit de corriger ce point de niveau 2 : le niveau 4 exige les points des niveaux 1 à 3, que le domaine passera alors tous. Il saute directement du niveau 2 au niveau 4. Le niveau 5 demandera ensuite de passer aussi les points de niveau 4.

Tu avais trouvé ?

Exercice 4 sur 4 Écrire la requête de suivi Réussi À revoir

Écris la commande PowerShell qui liste les comptes utilisateurs actifs portant un SPN et dont le mot de passe a plus d'un an, avec la date de ce mot de passe.

Voir la réponseMasquer la réponse de l'exercice 4
powershell
$limite = (Get-Date).AddYears(-1)
Get-ADUser -LDAPFilter "(servicePrincipalName=*)" -Properties servicePrincipalName, PasswordLastSet |
    Where-Object { $_.Enabled -and $_.PasswordLastSet -lt $limite } |
    Select-Object SamAccountName, PasswordLastSet

Le compte krbtgt porte lui aussi un SPN (kadmin/changepw), mais il est désactivé : le filtre sur Enabled l'écarte. Les comptes qui restent sont à remplacer par des gMSA en priorité (chapitre 7).

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Le modèle en tiers et les comptes d'administrationRevoir le sommaire du cours