
Laboratoire éducatif démontrant CVE-2021-36934 (HiveNightmare) - Windows LPE via shadow copy ACL misconfiguration.
Reproduire et analyser la vulnérabilité HiveNightmare dans un environnement de laboratoire contrôlé.
CVE-2021-36934, surnommé « SeriousSAM » ou « HiveNightmare », est une vulnérabilité d'élévation de privilèges locale (LPE) affectant Windows 10 à partir de la version 1809, les versions initiales de Windows 11, ainsi que Windows Server 2019 et 2022. Elle permet à un utilisateur standard de dupliquer et d'accéder à des fichiers système protégés contenant des données sensibles, comme les hachages de mots de passe locaux. Le problème principal réside dans des listes de contrôle d'accès (ACL) mal configurées, accordant des droits de lecture à tous les utilisateurs sur des fichiers système sensibles (notamment les ruches SAM, SYSTEM et SECURITY). Bien que ces fichiers restent verrouillés en fonctionnement normal, leurs copies de sauvegarde (via les clichés instantanés/points de restauration) héritent des mêmes autorisations mal configurées et deviennent accessibles et exploitables par tout utilisateur du système.
L'exploitation de la vulnérabilité nécessite deux prérequis : (1) la protection système activée et (2) un point de restauration existant. Ces éléments sont souvent présents par défaut sur les machines Windows 10/11. L'implémentation repose sur l'extraction de copies des fichiers SAM, SYSTEM et SECURITY à partir de clichés instantanés (points de restauration). Ces fichiers, normalement verrouillés pendant l'exécution du système, deviennent accessibles via leurs copies instantanées qui héritent des mêmes ACL que les originaux.
Depuis un compte utilisateur non privilégié, l'exploitation peut être réalisée via des scripts publics, le plus connu étant hivenightmare.exe, écrit en C. Les trois fichiers récupérés ont des rôles complémentaires. SAM contient les hachages des mots de passe des comptes locaux (chiffrés), SECURITY stocke des secrets LSA supplémentaires (identifiants mis en cache, mots de passe de services, également chiffrés), et SYSTEM fournit la clé de déchiffrement (BootKey). Pour une élévation de privilèges locale stricte, seuls SAM et SYSTEM sont nécessaires pour extraire les hachages NTLM. Une fois ces fichiers obtenus, des outils comme secretsdump.py ou mimikatz peuvent déchiffrer les hachages et réaliser des attaques pass-the-hash, ou obtenir un accès administrateur complet via psexec.py.
L'implémentation de l'exploit repose sur l'extraction des ruches Windows (SAM, SYSTEM, SECURITY) à partir de clichés instantanés/points de restauration, puis sur l'utilisation des hachages extraits pour obtenir un accès SYSTEM via secretsdump.py et psexec.py.
Plateforme testée : Windows 10, build 1903 (mise à jour de décembre 2020).
1. Contexte : Version de Windows Nous utilisons une version de Windows 10 (1903, mise à jour de décembre 2020) qui contient la vulnérabilité étudiée.
2. Permissions sur les fichiers sensibles Nous observons que les permissions NTFS sur les ruches SAM, SYSTEM et SECURITY permettent aux utilisateurs locaux d'avoir un accès en lecture, hérité ici du dossier config.
3. Exécution de hivenightmare depuis un utilisateur local sans point de restauration Lors du lancement de hivenightmare.exe depuis un compte local sans points de restauration/clichés instantanés, l'outil échoue car il ne trouve aucun point de restauration à exploiter.
4. Activation de la protection système et création d'un point de restauration
Pour créer les conditions nécessaires à l'extraction des ruches, nous activons la protection système puis créons manuellement un point de restauration. Une fois le point de restauration existant, hivenightmare pourra accéder aux copies des fichiers sensibles.

5. Extraction des ruches sensibles Après la création du point de restauration, hivenightmare.exe est lancé à nouveau et extrait avec succès les fichiers SAM, SYSTEM et SECURITY du cliché instantané. Il existe de nombreux autres scripts (C#, Go, PowerShell, ...). Quelle que soit la technologie utilisée, tous les scripts ciblent le même chemin :
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[i]\Windows\System32\config\[SENSITIVE FILE]
6. Analyse sur Kali : Récupération des hachages avec secretsdump.py Les fichiers extraits sont transférés à la machine Kali. Nous utilisons secretsdump.py (Impacket) pour lister les comptes et récupérer les hachages en texte clair.
7. Élévation de privilèges : Réutilisation du hachage via psexec.py Avec le hachage extrait, nous utilisons psexec.py pour authentifier et ouvrir une session avec les privilèges SYSTEM, accordant le contrôle total de la machine.
Le correctif officiel de Microsoft (KB5004605, juillet 2021) restaure les ACL appropriées sur les fichiers concernés. Cependant, plusieurs mesures complémentaires sont recommandées. Premièrement, vérifiez manuellement les permissions sur C:\Windows\System32\config pour vous assurer que seuls SYSTEM et les administrateurs ont un accès complet. Deuxièmement, supprimez les anciens clichés instantanés créés avant l'application du correctif, car ils conservent les permissions vulnérables. Pour des raisons opérationnelles (risque de perte de données, impact utilisateur), la suppression automatique des anciens points de restauration n'a pas été incluse dans le correctif distribué. Enfin, surveillez les accès inhabituels aux clichés instantanés via les journaux d'événements système.