🏢Active DirectoryKerberosAttack PathsPasswordAccounts

Kerberoasting : Comment les Attaquants Crackent les Mots de Passe des Comptes de Service

Le Kerberoasting permet à tout utilisateur du domaine de demander des tickets de service chiffrés et de les cracker hors ligne. Découvrez comment détecter et protéger vos comptes de service.

ES
EtcSec Security Team
4 min read
Kerberoasting : Comment les Attaquants Crackent les Mots de Passe des Comptes de Service

Qu'est-ce que le Kerberoasting ?

Le Kerberoasting est une technique d'attaque Active Directory qui permet à n'importe quel utilisateur authentifié du domaine d'extraire des hashes de mots de passe crackables depuis des comptes de service, sans aucun privilège particulier.

L'attaque cible les comptes avec un Service Principal Name (SPN) configuré. Dans Kerberos, tout utilisateur du domaine peut demander un ticket de service (TGS) pour n'importe quel SPN. Ce ticket est chiffré avec le hash NTLM du compte de service. Un attaquant peut demander le ticket, l'exporter et cracker le hash hors ligne.

Aucun droit élevé requis. Aucune interaction avec le compte cible. Aucune alerte sur le système cible. Juste une requête Kerberos légitime.

⚠️ Pourquoi c'est grave : Les comptes de service ont souvent des mots de passe qui n'expirent jamais, configurés il y a des années, sans exigences de complexité strictes.


Comment ca fonctionne

Quand un utilisateur veut accéder à un service, Kerberos émet un ticket TGS chiffré avec le hash NTLM du compte exécutant ce service. Le KDC ne vérifie pas si l'utilisateur a réellement besoin d'accéder au service : il émet simplement le ticket.

Ce fonctionnement intentionnel permet au service de valider le ticket localement, mais cela signifie aussi que n'importe quel utilisateur du domaine peut collecter autant de tickets de service qu'il le souhaite, sans aucun contrôle d'autorisation.


La Chaine d'Attaque

Etape 1 - Enumérer les SPNs

Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName, PasswordLastSet, PasswordNeverExpires |
    Select-Object SamAccountName, ServicePrincipalName, PasswordLastSet, PasswordNeverExpires
impacket-GetUserSPNs -dc-ip 10.10.0.1 corp.local/user:password

Cibles intéressantes : comptes avec PasswordNeverExpires = True, dates PasswordLastSet anciennes, noms lisibles comme svc_sql, svc_backup.

Etape 2 - Demander les Tickets de Service

.\Rubeus.exe kerberoast /outfile:hashes.txt
impacket-GetUserSPNs -dc-ip 10.10.0.1 corp.local/user:password -request -outputfile hashes.txt

Etape 3 - Cracker Hors Ligne

# Mode 13100 pour RC4 — des centaines de millions de tentatives/seconde
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt --rules-file best64.rule

# Mode 19700 pour AES-256
hashcat -m 19700 hashes.txt /usr/share/wordlists/rockyou.txt

Etape 4 - Mouvement Latéral et Escalade

Un mot de passe de compte de service cracké ouvre l'accès à tout ce à quoi ce compte a accès. Si le compte est sur-privilégié, cela peut signifier un chemin direct vers Domain Admin.


Détection

Event IDs Windows

Event IDSourceCe qu'il faut surveiller
4769DC - SecurityTGS demandé avec chiffrement RC4 (0x17) alors qu'AES est standard
4769DC - SecurityMultiples demandes TGS pour différents SPNs en quelques secondes depuis un même compte

Anomalies Comportementales

  • Demandes TGS en masse depuis un seul compte en quelques secondes
  • Chiffrement RC4 alors que le domaine impose AES uniquement
  • Demandes en dehors des heures ouvrées depuis des comptes développeurs
  • IPs source inconnues n'ayant jamais fait de telles demandes

Requete SIEM (Elastic KQL)

event.code: "4769" AND
winlog.event_data.TicketEncryptionType: "0x17" AND
NOT winlog.event_data.ServiceName: ("krbtgt" OR "*$")

💡 Conseil : Imposez AES uniquement sur le domaine. Toute demande RC4 devient alors une alerte de haute confiance.


Remédiation

💡 Action Rapide : Auditez les comptes avec PasswordNeverExpires = True et changez tout mot de passe de plus d'un an immédiatement.

  1. Mots de passe longs et forts - minimum 25 caractères générés aléatoirement, rendant le cracking hors ligne infaisable même avec RC4.

  2. Group Managed Service Accounts (gMSA) - mots de passe de 240 caractères gérés automatiquement par AD.

New-ADServiceAccount -Name gMSA_SQL -DNSHostName sql.corp.local -PrincipalsAllowedToRetrieveManagedPassword "SQL_Servers"
Install-ADServiceAccount -Identity gMSA_SQL
  1. Imposer AES sur les comptes de service.
Set-ADUser -Identity svc_sql -Replace @{msDS-SupportedEncryptionTypes=24}
  1. Principe du moindre privilège - les comptes de service ne doivent avoir que les permissions nécessaires.

Auditer l'Exposition

Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties PasswordLastSet, PasswordNeverExpires |
    Where-Object {$_.PasswordNeverExpires -eq $true -or $_.PasswordLastSet -lt (Get-Date).AddYears(-1)} |
    Select-Object SamAccountName, PasswordLastSet, PasswordNeverExpires

Comment EtcSec Détecte Cela

EtcSec identifie les conditions qui rendent le Kerberoasting possible avant qu'un attaquant ne les exploite.

La détection KERBEROASTING_RISK signale tous les comptes avec un SPN configuré vulnérables en raison d'une posture de mot de passe faible : mots de passe anciens, non expirables, ou RC4 activé.

Contrôles associés :

  • PASSWORD_NEVER_EXPIRES - mots de passe non expirables restent crackables indéfiniment
  • PASSWORD_POLICY_WEAK - politique faible rend le cracking plus probable
  • KERBEROS_RC4_FALLBACK - RC4 encore autorisé accélère le cracking et complique la détection

ℹ️ Note : EtcSec vérifie automatiquement ces vulnérabilités lors de chaque audit AD. Lancez un audit gratuit pour voir quels comptes de service sont exposés.

EtcSec

© 2026 EtcSec. All rights reserved.

Kerberoasting Expliqué — Détection & Prévention | EtcSec — EtcSec Blog | EtcSec