· Korven
Active Directory : 5 attaques que vos AD subissent déjà
Kerberoasting, AS-REP Roasting, NTLM Relay, ACL abuse, ADCS ESC1. Comment ça marche, comment c'est exploité, comment s'en protéger sans tout casser.
#Active Directory#pentest#Red Team#hardening#RSSI
Active Directory reste le cœur du SI de la quasi-totalité des PME et ETI françaises. Il reste aussi le maillon le plus exploité par les attaquants modernes, y compris les ransomwares (cf. retex incident moyen-format). Voici les 5 chemins d’attaque les plus courants en 2026, avec les contre-mesures.
1. Kerberoasting
Comment ça marche
Tout compte AD ayant un SPN (Service Principal Name) peut se faire demander un TGS par n’importe quel utilisateur authentifié. Le TGS est chiffré avec le hash NTLM du mot de passe du compte de service. Crackable hors ligne.
GetUserSPNs.py -request -dc-ip 10.0.0.1 corp.local/john:P@ss123
Le résultat, un $krb5tgs$23$..., passe ensuite dans hashcat. Avec un mot de passe historique (faible, ancien, contenant le nom de la boîte), on est domain admin en quelques heures.
Pourquoi c’est si efficace
Les comptes de service portent souvent des SPN et ont des mots de passe statiques depuis des années. Pire : beaucoup ont Domain Admins directement. Le ratio coût/gain pour l’attaquant est imbattable.
Contre-mesures
| Mesure | Effort | Effet |
|---|---|---|
| gMSA (group Managed Service Accounts) | Moyen | Rotation auto, mot de passe 240 caractères incrackable |
| Mots de passe ≥ 25 caractères sur comptes de service | Faible | Kerberoasting devient inutile |
| Retirer Domain Admins des comptes de service (tiering) | Élevé | Compromission ≠ catastrophe |
| Audit événement 4769 + alerte sur volume anormal | Faible | Détection en temps réel |
2. AS-REP Roasting
Comment ça marche
Tout compte avec l’attribut DONT_REQ_PREAUTH reçoit son AS-REP sans pré-authentification, chiffré avec son hash NTLM. Crackable hors ligne, sans aucun authentification préalable.
GetNPUsers.py corp.local/ -dc-ip 10.0.0.1 -no-pass -usersfile users.txt
Pourquoi c’est encore vivant
L’attribut était souvent activé pour des raisons d’interopérabilité avec de vieux systèmes (Unix, applications legacy). Personne ne l’a retiré quand l’application a été décommissionnée.
Contre-mesures
# Lister les comptes vulnérables
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $True} -Properties DoesNotRequirePreAuth
Retirer le flag, sauf justification technique documentée. C’est gratuit.
3. NTLM Relay
Comment ça marche
Un attaquant sur le réseau capture une authentification NTLM (poison LLMNR/NBNS, IPv6 mitm6, share UNC piège) et la relaie vers un autre service qui accepte NTLM : LDAP, SMB, HTTP, ADCS web enrollment. Sans rejouer ni cracker.
Outils : responder + ntlmrelayx.py.
responder -I eth0
ntlmrelayx.py -t ldap://dc01 --escalate-user pwned
Cas critique : ADCS
Si ADCS Web Enrollment ou Certificate Authority Web Service est déployé sans EPA (Extended Protection for Authentication), le relais permet de demander un certificat pour un compte machine DC → contrôle du domaine. C’est ESC8 dans la classification SpecterOps.
Contre-mesures
| Mesure | Effet |
|---|---|
| SMB signing obligatoire (GPO) | Bloque relais SMB |
| LDAP signing + channel binding | Bloque relais LDAP |
| EPA sur tous les services HTTP avec auth Windows | Bloque ESC8 et équivalents |
| Désactiver LLMNR et NBT-NS | Coupe la source de capture |
| Désactiver IPv6 si non utilisé (ou DHCPv6 guard) | Bloque mitm6 |
4. ACL abuse
Comment ça marche
Active Directory est un SGBD avec des ACL granulaires : WriteOwner, WriteDACL, GenericWrite, ForceChangePassword, AllExtendedRights. Ces droits, quand mal distribués, permettent à un compte basique de prendre le contrôle d’un compte privilégié.
BloodHound cartographie ces relations en quelques minutes :
SharpHound.exe -c All
# puis import dans BloodHound, requête "Shortest path to Domain Admins"
Souvent : 3 sauts. Quelquefois : 1 saut.
Cas réels rencontrés
- Groupe “Helpdesk N1” avec
ForceChangePasswordsur toutDomain Usersincluant un admin oublié - Compte de service avec
WriteDACLsur l’OU racine après une migration mal nettoyée - GPO modifiable par le groupe
Tier-2 Adminsqui s’applique aux DC
Contre-mesures
- Cartographier avec BloodHound (oui, l’outil offensif est aussi votre meilleur ami défensif)
- Tier-0 isolé : aucun compte non-T0 ne doit avoir d’ACL sur des objets T0
- Audit régulier des ACL sur OU sensibles
- Retirer les droits hérités suspects sur les comptes admins
5. ADCS ESC1 à ESC8
Comment ça marche
Active Directory Certificate Services peut être configuré avec des templates de certificat vulnérables. Les principaux :
| ID | Vulnérabilité | Effet |
|---|---|---|
| ESC1 | Template autorise EnrolleeSuppliesSubject + ClientAuth EKU | Demander un certif pour Domain Admin |
| ESC2 | Template Any Purpose + autorisation faible | Idem ESC1 |
| ESC4 | ACL faibles sur le template | Modifier le template pour le rendre vulnérable |
| ESC6 | Flag EDITF_ATTRIBUTESUBJECTALTNAME2 | Spoof SAN à l’enrollment |
| ESC8 | Web Enrollment sans EPA | NTLM Relay vers ADCS (cf. attaque 3) |
Outil : Certipy.
certipy find -u [email protected] -p pass -dc-ip 10.0.0.1
certipy req -u [email protected] -p pass -ca CORP-CA -template VulnerableTemplate -upn [email protected]
Contre-mesures
- Audit Certipy régulier (mode
find -vulnerable) - Retirer
EnrolleeSuppliesSubjectsur tous les templates ne le justifiant pas - Désactiver les templates inutilisés
- EPA sur ADCS Web Enrollment + désactiver HTTP, ne garder que HTTPS
Synthèse : l’ordre d’attaque typique en pentest interne
1. Recon basique → BloodHound + Certipy
2. AS-REP Roasting → premier hash crackable (5 min)
3. Kerberoasting → mot de passe service (1 h)
4. ACL abuse → escalade vers groupe sensible (30 min)
5. ADCS ESC1/ESC8 → Domain Admin (15 min)
Total : 2-4 heures sur un AD non durci. Souvent moins.
Le minimum vital pour une PME
Si vous ne devez faire que 5 choses cette semaine :
- Lancer BloodHound + SharpHound sur votre AD (prend 1h, gratuit, identifie 80% des problèmes)
- Lancer Certipy find -vulnerable sur votre ADCS si vous en avez un
- Activer SMB signing par GPO sur tous les serveurs
- Vérifier qu’aucun compte de service n’a
Domain Admins(et aucun n’a un mot de passe < 25 caractères) - Lister les comptes avec
DONT_REQ_PREAUTHet retirer le flag
Aucune de ces 5 actions ne coûte d’argent. La plupart ne coûtent pas plus d’une demi-journée.
Pour aller plus loin
- BloodHound Community Edition, gratuit
- PingCastle, audit AD français de référence, version gratuite très complète
- ADRecon, inventaire AD en PowerShell
- Référentiel ANSSI Recommandations de sécurité relatives à Active Directory
Et bien sûr : un pentest annuel qui inclut explicitement un volet AD interne. Sans ça, vous ne saurez pas ce que sait déjà n’importe quel attaquant qui a posé un pied sur un poste utilisateur.
Korven inclut un module AD avancé dans son moteur de pentest assisté par IA, BloodHound, Certipy, Kerberoasting automatisés, avec garde-fous pour les environnements de production.