🔍 Contexte

Publié en octobre 2026 sur GitHub (ivancabrera02/WHFB-PinCapture), ce dépôt présente une technique offensive permettant de capturer le PIN Windows Hello for Business (WHFB) sur des systèmes Windows 11 protégés par VBS/VSM et TPM, où les attaques hors ligne et le brute-force sont rendus inopérants.

🛡️ Pourquoi les attaques classiques échouent

Le projet documente les protections en place qui rendent les attaques traditionnelles inefficaces :

  • VBS/VSM actif : la hiérarchie de clés réside en VTL1 (secure kernel), inaccessible depuis SYSTEM en VTL0
  • Conteneur NgcIso : le secret PIN est descellé à l’intérieur du trustlet, pas en user mode normal
  • Matériel scellé par TPM : aucune clé en clair sur disque, le descellement nécessite le TPM
  • Anti-hammering : softLockoutAttemptLimit = 5, compteur enforced par VTL1, non réinitialisable depuis le disque

⚙️ Technique d’attaque : hardware breakpoint capture

La technique repose sur l’injection de ngccap.dll dans le processus LogonUI.exe (SYSTEM, non-PPL) via logonui_watch.ps1 :

  1. La DLL résout ngckeyenum!NgcSerializeConvenienceCredential dans ngckeyenum.dll
  2. Elle pose un breakpoint matériel d’exécution CPU (DR0/DR7) sur tous les threads du processus via CreateToolhelp32Snapshot → OpenThread → SuspendThread → GetThreadContext/SetThreadContext
  3. Un Vectored Exception Handler (VEH) intercepte EXCEPTION_SINGLE_STEP quand la fonction est atteinte
  4. Le handler lit RCX → {buffer, length} contenant le PIN ASCII en clair
  5. Le PIN est écrit dans C:\Windows\Temp\pin_capture.log
  6. Le flag RF (Resume Flag) est positionné dans EFlags pour éviter le re-déclenchement immédiat
  7. EXCEPTION_CONTINUE_EXECUTION est retourné : l’instruction originale s’exécute sans modification, l’authentification réussit normalement
  8. La DLL se nettoie (DR0/DR7 effacés, VEH retiré)

🗂️ Structure du dépôt

  • ngccap.c : DLL de capture par breakpoint matériel
  • logonui_watch.ps1 : injecteur PowerShell surveillant LogonUI.exe
  • Get-WHFBKeys.ps1 : outil d’énumération WHFB/NGC/TPM et collecte de métadonnées (clés publiques, blobs protecteurs, politique WHFB)
  • build.bat : compilation via MSVC 2022

🎯 Prérequis

  • Windows 10/11 avec un PIN Windows Hello enrollé
  • Droits Administrateur élevés (SeDebugPrivilege requis)
  • Validé sur Windows 11 26200 (Home) avec Intel fTPM 2.0 et VBS actif

📌 Type d’article

Publication de recherche offensive / outil GitHub documentant une technique de capture de credential en mémoire vive ciblant Windows Hello for Business, avec preuve de concept fonctionnelle et code source complet.

🧠 TTPs et IOCs détectés

TTP

  • T1055 — Process Injection (Defense Evasion)
  • T1003 — OS Credential Dumping (Credential Access)
  • T1056.001 — Input Capture: Keylogging (Collection)
  • T1574 — Hijack Execution Flow (Defense Evasion)
  • T1082 — System Information Discovery (Discovery)

IOC

  • Fichiers : ngccap.dll
  • Fichiers : ngccap.c
  • Fichiers : logonui_watch.ps1
  • Fichiers : Get-WHFBKeys.ps1
  • Fichiers : build.bat
  • Chemins : C:\Windows\Temp\pin_capture.log

⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 27 octobre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.

Malware / Outils

  • ngccap.dll (tool)
  • logonui_watch.ps1 (tool)
  • Get-WHFBKeys.ps1 (tool)

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ github.com — source non référencée (0pts)
  • ✅ 5693 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 6 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 5 TTPs MITRE identifiées (15pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://github.com/ivancabrera02/WHFB-PinCapture