🔍 Contexte
Publié le 22 mars 2026 sur GitHub par l’utilisateur andreisss, cet article présente KslDump, un outil de recherche en sécurité offensif exploitant un driver kernel Microsoft Defender (KslD.sys) pour extraire des credentials depuis LSASS protégé par PPL (Protected Process Light), sans recourir à aucun code ou driver tiers.
⚙️ Mécanisme de la vulnérabilité
Le driver KslD.sys est livré avec Microsoft Defender, signé Microsoft, et expose un objet device \\.\KslD accessible depuis l’espace utilisateur. Il accepte l’IOCTL 0x222044 avec plusieurs sous-commandes critiques :
- SubCmd 2 : retourne CR3, IDTR et autres registres CPU → défaite instantanée de KASLR
- SubCmd 12 : appelle
MmCopyMemory()avec adresse et taille contrôlées par l’attaquant → lecture arbitraire de mémoire kernel/physique
Le seul contrôle d’accès est une comparaison de nom de processus stockée dans une clé de registre (AllowedProcessName), modifiable par tout administrateur local, sans validation de signature ni d’intégrité.
🔄 Scénario d’exploitation (BMVD)
Microsoft a patché la version active (drivers\wd\KslD.sys, 82 Ko) en nullifiant le pointeur MmCopyMemory, mais l’ancienne version vulnérable (333 Ko, drivers\KslD.sys) reste présente sur disque. L’attaque consiste à :
- Modifier
ImagePathdans le registre pour pointer vers l’ancienne version vulnérable - Modifier
AllowedProcessNamepour autoriser le processus attaquant - Redémarrer le service
KslD - Utiliser SubCmd 2 pour contourner KASLR (CR3 + IDTR → base ntoskrnl)
- Parcourir les structures kernel (EPROCESS, ActiveProcessLinks) pour localiser lsass.exe
- Effectuer une lecture physique via
MmCopyMemory()(flags=1) → bypass PPL - Localiser les clés LSA dans lsasrv.dll (chaîne BCRYPT → AES + 3DES + IV)
- Déchiffrer et extraire les hashes NT depuis LogonSessionList
🛡️ Paradoxe de la blocklist
La Vulnerable Driver Blocklist (DriverSiPolicy.p7b) de Microsoft, appliquée via HVCI pour bloquer les attaques BYOVD, exclut explicitement les drivers Microsoft par conception. KslD.sys, étant signé Microsoft, n’est pas bloqué.
📋 Prérequis
- Privilèges administrateur local
- Python 3.x avec le package
cryptography - Présence de l’ancienne version vulnérable de KslD.sys sur disque (
C:\Windows\System32\drivers\KslD.sys)
📣 Divulgation responsable
La vulnérabilité a été signalée au MSRC (Microsoft Security Response Center), qui l’a classée “Not a Vulnerability” au motif que l’attaque nécessite des privilèges administrateur préexistants. Aucun CVE n’a été attribué, aucun correctif n’a été émis.
📌 Nature de l’article
Il s’agit d’une publication de recherche technique offensive accompagnée d’un outil (KslDump), documentant une technique BMVD (Bring Microsoft’s Vulnerable Driver) permettant le dump de credentials en environnement Windows avec Defender actif.
🧠 TTPs et IOCs détectés
TTP
- T1003.001 — OS Credential Dumping: LSASS Memory (Credential Access)
- T1112 — Modify Registry (Defense Evasion)
- T1543.003 — Create or Modify System Process: Windows Service (Persistence)
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1211 — Exploitation for Defense Evasion (Defense Evasion)
- T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
- T1106 — Native API (Execution)
IOC
- Fichiers :
KslD.sys - Chemins :
C:\Windows\System32\drivers\KslD.sys - Chemins :
C:\Windows\System32\drivers\wd\KslD.sys
Malware / Outils
- KslDump (tool)
🔗 Source originale : https://github.com/andreisss/KslDump