Administration Windows Server & Active Directory · Étape 20

Audite les accès, verrouillages et événements d’authentification

Vérifie la stratégie d’audit, filtre les événements utiles et reconstitue une chronologie d’authentification.

Durée indicative · ~1 h 50Niveau intermédiairePrérequis conseillé · Leçon 19 — automatisation PowerShell et CSVPratique · TP
L’idée reçue

« L’absence d’événement prouve que l’action n’a pas eu lieu. »

Un événement peut manquer si l’audit n’était pas activé, si le journal a été écrasé, si la recherche vise le mauvais système ou si l’action est enregistrée sous un autre identifiant.

01Vérifie la politique d’audit

auditpol /get /category:*

Commence par les sous-catégories Logon/Logoff, Account Logon, Account Management, Directory Service Access et Policy Change. Documente Success, Failure ou No Auditing.

02Connais les événements essentiels

Event ID
Sens général
Point de contrôle
4624
connexion réussie
LogonType, compte, source
4625
connexion échouée
Status, SubStatus, source
4740
compte verrouillé
Caller Computer Name
4768
demande de TGT Kerberos
code résultat, client
4769
ticket de service Kerberos
service, chiffrement
4771
pré-authentification Kerberos échouée
Failure Code
4776
validation NTLM
poste source, Error Code

03Filtre une fenêtre temporelle

$start = (Get-Date).AddHours(-2)
$ids = 4624,4625,4740,4768,4769,4771,4776

Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    StartTime = $start
    Id        = $ids
} | Select-Object TimeCreated, Id, MachineName, Message

04Analyse les verrouillages

Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    StartTime = (Get-Date).AddDays(-1)
    Id        = 4740
} | Select-Object TimeCreated, MachineName, Message

Search-ADAccount -LockedOut |
  Select-Object SamAccountName, DistinguishedName

Ne déverrouille pas immédiatement sans identifier la source : service, tâche planifiée, mobile, session distante ou mot de passe mémorisé peuvent reverrouiller le compte.

05Observe les changements d’identité

$changeIds = 4720,4726,4728,4729,4732,4733
Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    StartTime = (Get-Date).AddDays(-1)
    Id        = $changeIds
} | Select-Object TimeCreated, Id, Message

Ces événements permettent de rapprocher création/suppression de comptes et changements de groupes. Ils ne remplacent pas un processus d’approbation ou un ticket de changement.

06Construis une chronologie

$events = Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    StartTime = (Get-Date).AddHours(-4)
    Id        = 4624,4625,4740,4768,4769,4771,4776
}

$events |
  Sort-Object TimeCreated |
  Select-Object TimeCreated, Id, MachineName, ProviderName, Message |
  Export-Csv 'C:\SORIA-Labs\AD-Identities-GPO-Audit\authentication-timeline.csv' -NoTypeInformation -Encoding UTF8

07Corrèle avec l’état AD

Get-ADUser 'alice.martin' -Properties Enabled,LockedOut,LastBadPasswordAttempt,LastLogonDate,PasswordLastSet |
  Select-Object SamAccountName, Enabled, LockedOut, LastBadPasswordAttempt, LastLogonDate, PasswordLastSet

LastLogonDate est utile pour l’exploitation mais n’est pas une horloge forensic parfaite. Distingue toujours attribut d’annuaire, événement de sécurité et conclusion.

08Documente les limites

Le rapport doit préciser machine interrogée, fuseau horaire, période, audit actif, taille/rétention du journal, filtres, événements trouvés, événements attendus mais absents et hypothèses non prouvées.

Challenge autonome

Enquête sur un verrouillage

Provoque dans le laboratoire plusieurs mots de passe erronés, observe 4625/4771/4740, identifie la source, déverrouille seulement après correction et produis une chronologie argumentée.

Lot 4 terminé

Tu sais organiser les identités, construire AGDLP, déléguer, appliquer une GPO, automatiser avec contrôle et analyser les preuves d’authentification.

Ta progression

Chargement de l’état… Se connecter pour synchroniser.