🔍 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 à :

  1. Modifier ImagePath dans le registre pour pointer vers l’ancienne version vulnérable
  2. Modifier AllowedProcessName pour autoriser le processus attaquant
  3. Redémarrer le service KslD
  4. Utiliser SubCmd 2 pour contourner KASLR (CR3 + IDTR → base ntoskrnl)
  5. Parcourir les structures kernel (EPROCESS, ActiveProcessLinks) pour localiser lsass.exe
  6. Effectuer une lecture physique via MmCopyMemory() (flags=1) → bypass PPL
  7. Localiser les clés LSA dans lsasrv.dll (chaîne BCRYPT → AES + 3DES + IV)
  8. 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