ID d'événements de sécurité Active Directory : référence DC
Les ID d'événements AD à collecter sur les DC : ouverture de session, Kerberos, NTLM, comptes, groupes, annuaire et AD CS, avec les champs à exploiter en chasse.
Le journal Security d'un contrôleur de domaine peut enregistrer quelques centaines d'ID d'événements distincts. Une quarantaine d'entre eux vous apprennent quelque chose d'utile sur une attaque contre Active Directory, et un nombre bien plus restreint vous disent ce qui s'est passé lorsqu'on les lit isolément. Cette référence liste les événements qui comptent sur les DC et les serveurs AD CS. Pour chacun, elle indique la sous-catégorie d'audit qui le produit, ce qu'il enregistre et les champs sur lesquels filtrer lors d'une chasse aux menaces.
L'article pilier sur l'audit et la détection couvre l'activation de la stratégie d'audit avancée et des SACL. Cette page suppose ce travail réalisé et se concentre sur la lecture du résultat. Toutes les sous-catégories se trouvent sous Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > Audit Policies.
Comment lire cette référence
Trois règles font gagner du temps :
- L'endroit où l'événement est journalisé compte. Kerberos (4768, 4769, 4771) et la validation NTLM (4776) pour les comptes du domaine sont journalisés sur le DC qui a traité la demande. Les événements d'ouverture de session (4624, 4625) sont journalisés sur la machine sur laquelle l'utilisateur a ouvert une session. Une ouverture de session sur un serveur de fichiers produit un 4769 sur un DC et un 4624 sur le serveur de fichiers.
- Rien n'est journalisé si la sous-catégorie n'est pas activée. Les événements d'annuaire nécessitent en outre une SACL sur l'objet.
- Filtrez sur les champs, pas sur le texte du message. Les messages d'événements sont localisés et évoluent dans le temps, mais les noms de champs XML (
TargetUserName,TicketEncryptionType,Status) sont stables.
Requête par ID et par champ sur un DC :
# Les 50 derniers échecs de pré-authentification Kerberos sur ce DC
Get-WinEvent -FilterHashtable @{ LogName = 'Security'; Id = 4771 } -MaxEvents 50 |
ForEach-Object {
$x = [xml]$_.ToXml()
[pscustomobject]@{
Time = $_.TimeCreated
Account = ($x.Event.EventData.Data | Where-Object Name -eq 'TargetUserName').'#text'
Client = ($x.Event.EventData.Data | Where-Object Name -eq 'IpAddress').'#text'
Code = ($x.Event.EventData.Data | Where-Object Name -eq 'Status').'#text'
}
}Événements d'ouverture de session et de session
Sous-catégories : Logon/Logoff > Audit Logon, Audit Special Logon, Audit Logoff, Audit Other Logon/Logoff Events.
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4624 | Ouverture de session réussie | LogonType, IpAddress, AuthenticationPackageName, LogonProcessName. Comptes privilégiés ouvrant une session sur des hôtes hors Tier 0. |
| 4625 | Échec d'ouverture de session | Codes Status / SubStatus (voir ci-dessous). De nombreux comptes en échec depuis une même source signalent un spraying. |
| 4634 / 4647 | Fermeture de session / fermeture initiée par l'utilisateur | Durée de session. Peu utile isolément. |
| 4648 | Ouverture de session avec des identifiants explicites | runas, tâches planifiées et outils qui transmettent d'autres identifiants. Identifiants d'administration saisis sur des postes de travail. |
| 4672 | Privilèges spéciaux attribués à une nouvelle ouverture de session | Identifie les sessions équivalentes administrateur. Corrélez son SubjectLogonId avec le TargetLogonId du 4624 correspondant. |
| 4964 | Groupes spéciaux attribués à une nouvelle ouverture de session | Ne se déclenche que pour les groupes configurés dans la valeur de registre SpecialGroups. Un moyen peu coûteux de signaler les ouvertures de session de groupes Tier 0. |
Types d'ouverture de session sur lesquels vous filtrerez : 2 interactive, 3 réseau, 4 batch, 5 service, 7 déverrouillage, 8 réseau en texte clair, 9 NewCredentials (runas /netonly, également produit par certains outils d'injection d'identifiants), 10 RemoteInteractive (RDP), 11 interactive mise en cache.
Codes de sous-statut 4625 courants :
| Code | Signification |
|---|---|
| 0xC0000064 | Le nom d'utilisateur n'existe pas |
| 0xC000006A | Utilisateur correct, mot de passe erroné |
| 0xC0000234 | Compte verrouillé |
| 0xC0000072 | Compte désactivé |
| 0xC000006F | Ouverture de session hors des heures autorisées |
| 0xC0000070 | Restriction de poste de travail |
| 0xC0000071 | Mot de passe expiré |
| 0xC0000193 | Compte expiré |
| 0xC000015B | Type d'ouverture de session non accordé (attribution des droits utilisateur) |
Une rafale de 0xC000015B pour des comptes Tier 0 sur des postes de travail correspond souvent à vos droits de refus d'ouverture de session par tier qui fonctionnent comme prévu, et mérite d'être suivie dans le temps.
Événements Kerberos
Sous-catégories : Account Logon > Audit Kerberos Authentication Service (4768, 4771, 4772) et Audit Kerberos Service Ticket Operations (4769, 4770, 4773).
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4768 | Demande de TGT (AS-REQ) | PreAuthType 0 signifie aucune pré-authentification : le compte est vulnérable à l'AS-REP roasting. TicketEncryptionType 0x17 signifie RC4. Status 0x6 signifie compte inconnu (énumération d'utilisateurs). |
| 4769 | Demande de ticket de service (TGS-REQ) | TicketEncryptionType 0x17 pour des SPN de comptes utilisateur. Un compte demandant rapidement de nombreuses valeurs ServiceName distinctes signale du Kerberoasting. |
| 4770 | Ticket de service renouvelé | Peu utile. Pratique pour reconstituer la chronologie d'une session. |
| 4771 | Échec de pré-authentification | Status 0x18 correspond à un mauvais mot de passe, 0x12 à un compte désactivé, expiré ou verrouillé, 0x25 à un décalage d'horloge. |
| 4772 / 4773 | Échec de demande de TGT / de ticket de service | Rarement observés. Enquêtez sur les pics. |
Valeurs des types de chiffrement : 0x11 AES128, 0x12 AES256, 0x17 RC4-HMAC, 0x18 RC4-HMAC-EXP, 0x1 / 0x3 DES (ne devraient jamais apparaître). Suivre 0x17 dans les 4768 et 4769 permet de mesurer votre progression vers la désactivation de RC4. Les builds récentes ajoutent des champs comme les clés disponibles pour le compte et le type de chiffrement de la clé de session. Ils facilitent grandement cette mesure : mettez à jour vos analyseurs pour les exploiter.
Un 4769 en échec avec le Status 0x1F (échec du contrôle d'intégrité d'un champ déchiffré) peut signaler des tickets forgés ou altérés. Attendez-vous à des faux positifs liés à l'horloge et aux approbations : traitez-les comme des pistes d'enquête, pas comme des verdicts.
Événements NTLM
Sous-catégorie : Account Logon > Audit Credential Validation.
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4776 | Le DC a tenté de valider les identifiants d'un compte (NTLM) | Status 0xC000006A mauvais mot de passe, 0xC0000064 utilisateur inconnu. Le champ Workstation indique le nom de client déclaré. Volume de NTLM utilisé par des comptes privilégiés. |
| 4774 / 4775 | Compte associé / impossible à associer pour l'ouverture de session | Rare. Enquêtez s'il apparaît. |
Pour connaître l'usage de NTLM par version de protocole et par serveur cible, activez Network security: Restrict NTLM: Audit NTLM authentication in this domain (Sécurité réseau : restreindre NTLM : auditer l'authentification NTLM dans ce domaine) et lisez le journal Microsoft-Windows-NTLM/Operational (8001 à 8004). Cette démarche est décrite dans auditer et restreindre NTLM.
Événements de gestion des comptes
Sous-catégories : Account Management > Audit User Account Management, Audit Computer Account Management, Audit Security Group Management.
Utilisateurs
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4720 | Compte utilisateur créé | Comptes créés hors de votre processus de provisionnement ou par des administrateurs inattendus. |
| 4722 / 4725 | Compte activé / désactivé | Comptes dormants réactivés. |
| 4723 / 4724 | Tentative de changement / de réinitialisation de mot de passe | 4724 effectué par un principal hors support sur un compte privilégié. |
| 4726 | Compte supprimé | Effacement de traces. |
| 4738 | Compte utilisateur modifié | Modifications de UserAccountControl (par exemple « Don't require preauth » ou « Trusted for delegation »), SidHistory, AllowedToDelegateTo. |
| 4740 | Compte verrouillé | Journalisé sur l'émulateur PDC. CallerComputerName indique la source. |
| 4765 / 4766 | SID History ajouté / échec de l'ajout | En dehors d'une migration, tout 4765 est critique. Voir le nettoyage de SID History. |
| 4780 | ACL définie sur des comptes membres de groupes d'administrateurs | Activité de SDProp. Voir AdminSDHolder et SDProp. |
| 4794 | Tentative de définition du mot de passe administrateur DSRM | Doit correspondre à des tickets de changement. |
Groupes
| ID d'événement | Enregistre | Étendue |
|---|---|---|
| 4727 / 4730 / 4737 | Groupe de sécurité créé / supprimé / modifié | Global |
| 4728 / 4729 | Membre ajouté / retiré | Global (Domain Admins) |
| 4731 / 4734 / 4735 | Groupe de sécurité créé / supprimé / modifié | Domaine local |
| 4732 / 4733 | Membre ajouté / retiré | Domaine local (Administrators, Backup Operators) |
| 4754 / 4758 / 4755 | Groupe de sécurité créé / supprimé / modifié | Universel |
| 4756 / 4757 | Membre ajouté / retiré | Universel (Enterprise Admins, Schema Admins) |
| 4764 | Type de groupe modifié | Conversions de groupes de distribution en groupes de sécurité |
| 4799 | Appartenance à un groupe local énumérée | Reconnaissance visant les groupes intégrés |
Déclenchez des alertes en temps réel sur les 4728, 4732 et 4756 dont la cible est un groupe Tier 0. Filtrez sur TargetSid plutôt que sur le nom, afin de couvrir aussi les groupes renommés ou localisés.
Ordinateurs
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4741 | Compte ordinateur créé | Créations par des utilisateurs non administrateurs (le quota de comptes machine à l'œuvre). |
| 4742 | Compte ordinateur modifié | ServicePrincipalNames, indicateurs de délégation de UserAccountControl, modifications du nom d'hôte DNS. |
| 4743 | Compte ordinateur supprimé | Suppressions inattendues. |
Événements du service d'annuaire
Sous-catégories : DS Access > Audit Directory Service Access (4662) et Audit Directory Service Changes (5136 à 5141). SACL requises.
| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4662 | Opération effectuée sur un objet | Des Properties contenant 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 ou 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 en provenance d'un non-DC signalent DCSync. Également les lectures d'objets leurres. |
| 5136 | Objet modifié | AttributeLDAPDisplayName tel que member, nTSecurityDescriptor, gPLink, msDS-AllowedToActOnBehalfOfOtherIdentity, msDS-KeyCredentialLink, servicePrincipalName. |
| 5137 | Objet créé | Nouveaux objets dans les UO Tier 0, nouvelles GPO (groupPolicyContainer). |
| 5138 | Objet restauré | Réanimation de comptes autrefois privilégiés. |
| 5139 | Objet déplacé | Comptes sortis des UO couvertes par vos GPO ou vos SACL. |
| 5141 | Objet supprimé | GPO, UO ou utilisateurs supprimés. |
Le 5136 journalise un événement par valeur d'attribut ajoutée ou retirée, avec un OperationType %%14674 (valeur ajoutée) ou %%14675 (valeur supprimée). Une seule modification d'ACL produit un événement de suppression pour l'ancien descripteur et un événement d'ajout pour le nouveau. Corrélez la paire via OpCorrelationID.
Événements utiles en dehors du journal Security :
- Journal Directory Service, 2889 : liaisons LDAP sans signature. Voir la signature LDAP et la liaison de canal.
- Journal Directory Service, 2089 : partition non sauvegardée dans l'intervalle de latence de sauvegarde.
- Journal System, 7045 : nouveau service installé sur un DC.
Événements de stratégie, d'approbation et d'intégrité du système
| ID d'événement | Sous-catégorie | Enregistre |
|---|---|---|
| 4719 | Audit Audit Policy Change | Stratégie d'audit système modifiée |
| 1102 | (toujours journalisé) | Journal Security effacé |
| 4713 | Audit Authentication Policy Change | Stratégie Kerberos modifiée |
| 4739 | Audit Authentication Policy Change | Stratégie de domaine modifiée (mot de passe ou verrouillage) |
| 4706 / 4707 | Audit Authentication Policy Change | Approbation vers un domaine créée / supprimée |
| 4716 | Audit Authentication Policy Change | Informations du domaine approuvé modifiées (filtrage des SID, attributs) |
| 4697 | Audit Security System Extension | Service installé |
| 4698 / 4702 | Audit Other Object Access Events | Tâche planifiée créée / mise à jour |
| 4688 | Audit Process Creation | Processus créé (activez la capture de la ligne de commande) |
| 5145 | Audit Detailed File Share | Accès aux fichiers de SYSVOL et NETLOGON |
Traitez les 1102, 4719 et tout 4706 sur les DC comme des événements justifiant d'alerter quelqu'un immédiatement. Les occurrences légitimes sont rares et doivent toujours correspondre à un ticket de changement.
Événements AD CS
Sous-catégorie : Object Access > Audit Certification Services. L'autorité de certification a également besoin de son propre filtre d'audit, à définir sur le serveur de l'AC :
certutil -setreg CA\AuditFilter 127
Restart-Service certsvc| ID d'événement | Enregistre | Ce qu'il faut chercher |
|---|---|---|
| 4886 | Demande de certificat reçue | Volume par demandeur. |
| 4887 | Demande de certificat approuvée et certificat émis | Requester différent du nom de sujet ou du SAN du certificat émis (abus ESC1). |
| 4888 | Demande refusée | Sondage des modèles. |
| 4898 / 4899 / 4900 | Modèle chargé / mis à jour / sécurité du modèle mise à jour | Modifications de modèles hors gestion des changements. |
| 4882 | Autorisations de sécurité de l'AC modifiées | Modifications des ACL de l'AC. |
Sur les DC, les événements 39, 40 et 41 du journal System (Kerberos-Key-Distribution-Center) signalent des mappages de certificats faibles. Ils sont traités dans le mappage fort des certificats. La vue d'ensemble des modèles se trouve dans le durcissement d'AD CS.
Pièges
- Volumes inattendus. Les 4624 de type 3, 4634, 4769 et 4662 dominent le volume des journaux des DC. Transférez-les malgré tout, mais dimensionnez le journal Security (plusieurs Go sur les DC chargés) pour que les journaux locaux couvrent au moins quelques jours si la chaîne de transfert se bloque.
- Confusion entre 4771 et 4625. Les échecs Kerberos ne produisent pas de 4625 sur le DC. Une détection de spraying fondée uniquement sur le 4625 manque la plupart des attaques à l'échelle du domaine.
- Noms localisés. Les noms de groupes figurant dans les événements sont localisés sur les DC non anglophones. Faites correspondre sur les SID : les RID de domaine bien connus (512 Domain Admins, 519 Enterprise Admins, 518 Schema Admins) et le SID intégré
S-1-5-32-544(Administrators), qui n'a pas de préfixe de domaine. - Stratégie d'audit mixte. Si des paramètres de catégories hérités sont appliqués en même temps que la stratégie d'audit avancée sans que Audit: Force audit policy subcategory settings soit activé, les événements cessent silencieusement.
- Dérive du périmètre des SACL. Une SACL pour Tout le monde en lecture de toutes les propriétés à la racine du domaine inondera le journal. Limitez l'audit des lectures aux leurres et l'audit des écritures aux objets Tier 0.
- Décalage d'horloge. Corréler un 4768 sur un DC avec un 4624 sur un serveur ne fonctionne que si la synchronisation horaire est saine dans tout le domaine.
Pour aller plus loin : sortez ces événements des DC avec Windows Event Forwarding, transformez-en une poignée en alertes quasiment sans faux positifs grâce aux honeytokens, et parcourez le reste de la thématique audit, journalisation et détection.
Questions fréquentes
Pourquoi ne vois-je pas les événements 4662 ou 5136 alors que l'audit est activé ?
Ces deux événements nécessitent deux choses : la sous-catégorie Directory Service Access ou Directory Service Changes activée sur les contrôleurs de domaine, et une SACL sur l'objet consulté ou modifié. La stratégie d'audit décide seule des catégories journalisées ; la SACL décide des objets et des opérations qui génèrent des événements. S'il manque l'un des deux, vous n'obtenez rien. Vérifiez la stratégie effective avec auditpol /get /category:* et l'onglet Audit de l'objet ou sa propriété Audit via Get-Acl.
Quel journal enregistre une ouverture de session Kerberos échouée pour mauvais mot de passe ?
Le contrôleur de domaine qui a traité la demande journalise l'événement 4771 avec le code d'échec 0x18 lorsque la pré-authentification Kerberos échoue à cause d'un mauvais mot de passe. Les échecs NTLM apparaissent quant à eux sous l'événement 4776 avec l'erreur 0xC000006A. Le poste de travail ou le serveur sur lequel l'utilisateur a tenté d'ouvrir une session enregistre localement un 4625. Pour voir un password spraying à l'échelle du domaine, il vous faut les événements 4771 et 4776 de tous les DC, pas seulement de l'émulateur PDC.
Les ID d'événements sont-ils identiques sous Windows Server 2016, 2019, 2022 et 2025 ?
Les ID et leur signification sont stables entre ces versions, ce qui explique que du contenu SIEM écrit il y a des années fonctionne encore. Ce qui change, c'est l'ensemble des champs de certains événements. Des mises à jour cumulatives récentes ont ajouté des champs aux événements Kerberos 4768 et 4769, comme les clés disponibles pour le compte et le type de chiffrement de la clé de session, afin d'aider à repérer l'usage de RC4. Analysez les événements par nom de champ plutôt que par position, pour que les nouveaux champs ne cassent pas vos détections.
ID d'événements de sécurité Active Directory : référence DC