Comment identifier et neutraliser la vulnérabilité CVE-2021-36934 (SeriousSAM / HiveNightmare) ?

CVE-2021-36934 SeriousSAM HiveNightmare
Gwendal LE FUR
juillet 24, 2021

HiveNightmare, nouvelle vulnérabilité Windows

Mardi 20 juillet 2021, Microsoft a publié une alerte de sécurité concernant la vulnérabilité CVE-2021-36934 « Windows Elevation of Privilege Vulnerability », aussi appelée « HiveNightmare » ou « SeriousSAM ».

Cette vulnérabilité affecte certains fichiers système, dont le gestionnaire des comptes de sécurité ou « Security Accounts Manager », plus connu sous son acronyme SAM, et permet d’exécuter du code arbitraire avec les droits SYSTEM à partir d’un compte utilisateur standard : un utilisateur non-administrateur et malveillant peut donc, en cas d’accès à une machine vulnérable, obtenir des privilèges plus élevés.

En quoi consiste la vulnérabilité HiveNightmare CVE-2021-36934 ?

La vulnérabilité HiveNightmare CVE-2021-36934 est liée à une configuration trop permissive des droits d’accès aux fichiers système situés dans le répertoire « C:\Windows\System32\config ».

Ce répertoire contient plusieurs fichiers particulièrement intéressants, notamment SAM, SECURITY, et SYSTEM.

Le gestionnaire des comptes de sécurité (SAM) est une base de données des comptes locaux utilisée par le système d’exploitation Windows, et stockée dans le fichier « C:\Windows\System32\config\SAM ». La base SAM est très connue dans le milieu de la sécurité informatique, car elle contient les empreintes des mots de passe des comptes locaux.

Les fichiers « C:\Windows\System32\config\SECURITY » et « C:\Windows\System32\config\SYSTEM » sont des fichiers de registres tout aussi sensibles, qui permettent en cas d’accès de faire des attaques plus avancées sur le système. Benjamin Delpy, créateur de Mimikatz, illustre le tout dans un exemple en vidéo.

L’alerte de sécurité CVE-2021-36934 publiée par Microsoft montre que, dans certaines configurations Windows, ces fichiers sont accessibles aux utilisateurs standards (non administrateur).

Pour vérifier les droits d’accès sur le fichier SAM, il est possible d’utiliser la commande ci-dessous :

icacls C:\Windows\System32\config\SAM

Pour les systèmes vulnérables, le retour de la commande contient la ligne « BUILTIN\Utilisateurs:(I)(RX) » (ou BUILTIN\Users pour les systèmes anglophones). L’annotation « (RX) » signifie que l’utilisateur peut lire et exécuter le fichier.

Extrait d’une capture d’écran réalisée sur un système affecté par HiveNightmare

Cependant, Windows dispose de plusieurs mécanismes de protection : même si les permissions sur ces fichiers ne sont pas correctement configurées, ils ne sont pas directement accessibles pour autant.

La suite de l’exploitation de la vulnérabilité repose ainsi sur un élément complémentaire : l’activation de la fonctionnalité « Protection du système » de Windows et la présence de sauvegardes de données « Shadow Copy ».

Cette fonctionnalité est activée par défaut sur les systèmes Windows 10 avec une taille de disque dur supérieure à 128Go.

Fonctionnalité « Protection du système » activée

Dans ces conditions, des « shadow copy » sont créées lors de mises à jour Windows ou d’installations à l’aide de fichiers MSI, d’après la documentation Microsoft.

Pour vérifier la présence de « shadow copy », il est possible d’utiliser la commande suivante :

vssadmin list shadows
Présence de « Shadow copy » sur un système vulnérable

L’exploitation de la vulnérabilité HiveNightmare CVE-2021-36934 repose sur le fait que les « shadow copy » conservent les permissions des fichiers sauvegardés, mais ne sont plus concernés par les verrous supplémentaires de Windows qui empêchaient leur consultation directe : autrement dit, sur un système vulnérable, un utilisateur standard peut accéder aux données du fichier SAM en passant par les « shadow copy ».

A l’aide d’outils d’attaques spécialisés, comme ce script du chercheur Kevin Beaumont (également auteur de la vulnérabilité), il est alors possible d’extraire les données de la base SAM pour ensuite compromettre la machine ciblée par élévation de privilèges, voire d’autres machines sur le réseau par déplacement latéral.

Quels sont les actifs impactés par cette vulnérabilité ?

Toutes les versions de Windows 10 supérieures ou égales 1809, ainsi que Windows Server 2019, 2004 et 20H2, sont concernées d’après Microsoft. L’Agence Nationale de la Sécurité des Systèmes d’Information (ANSSI) indique dans son bulletin d’actualité CERTFR-2021-ACT-031 que Windows Vista RTM est également concerné, mais que le cas n’a pas pu être reproduit sur des versions Windows Server 2019, 2004 et 20H2 fraîchement installées.

Cyberwatch met à votre disposition le script ci-dessous pour identifier les actifs vulnérables :

# Check if sam database has bad permissions
# This is also used to check hardening against HiveNightmare SeriousSam CVE-2021-36934
function Check-SamPermissions {
  $checkSpoolerStatus = $(Get-Service -Name Spooler | Select -Property Status).Status
  $checkSpoolerStartType = $(Get-Service -Name Spooler | Select -Property StartType).StartType

  $result="OK"

  # Check for sam permissions
  $sam_permissions = (get-acl $env:windir\system32\config\sam).Access
  if (($sam_permissions | where-object { $_.filesystemrights -like "*read*" -and $_.identityreference -like "*BUILTIN\Users*" -and $_.accesscontroltype -eq "allow" }) -or
      ($sam_permissions | where-object { $_.filesystemrights -like "*read*" -and $_.identityreference -like "*BUILTIN\Utilisateurs*" -and $_.accesscontroltype -eq "allow" })) {
      Write-Output "DEBUG:Identified bad permissions on the sam database!"
      $result = "KO"
  }
  else {
      Write-Output "DEBUG:Permissions are okay."
  }

  # Additional checks on VSS shadow copies
  if (Get-CimInstance -Namespace root/cimv2 -ClassName win32_shadowcopy) {
      Write-Output "DEBUG:Found existing VSS shadow copies!"
      if ($result -eq "KO") {
      Write-Output "DEBUG:CVE-2021-36934 is EXPLOITABLE on this machine!"
      }
      Write-Output "DEBUG:If your machine had bad permissions set at any point on the sam database, Microsoft recommends to delete these items in order to prevent exploitation of old sam memory dump."
  }
  else {
      Write-Output "DEBUG:No VSS shadow copy found."
  }

  Write-Output "RESULT:$result"
}

Check-SamPermissions

Ce script peut également être lancé par l’intermédiaire de notre plateforme de gestion des vulnérabilités et de contrôle des conformités.

Quel est l’impact de cette vulnérabilité ?

La vulnérabilité HiveNightmare permet à un attaquant ayant compromis un compte sur une machine d’élever ses privilèges et de prendre le contrôle total de la machine ciblée, ou d’exécuter du code arbitraire.

Quelle est la facilité d’attaque de HiveNightmare / CVE-2021-36934 ?

Plusieurs exploits sont disponibles gratuitement et publiquement sur internet.

L’attaque nécessite la compromission préalable d’un compte utilisateur valide.

Comment neutraliser HiveNightmare / CVE-2021-36934 ?

Microsoft fournit dans son bulletin d’information de septembre 2021 des mises à jour de sécurité qui corrigent le problème :

Le bulletin d’information de Microsoft fournit également des recommandations et contre-mesures, dans le cas où l’installation des mises à jour de sécurité n’est pas possible. Il est ainsi recommandé de restreindre l’accès aux fichiers dans le répertoire « C:\Windows\System32\config » à l’aide de la procédure suivante (temps requis inférieur à 5 minutes) :

  1. Ouvrez une fenêtre CMD en tant qu’administrateur
  2. Lancez la commande : icacls $env:windir\system32\config\*.* /inheritance:e

Microsoft recommande également de supprimer les « shadow copy » dont la date de création est située avant l’exécution de la procédure. Pour cela, Microsoft propose d’utiliser la commande ci-dessous. ATTENTION : cette commande supprime TOUTES vos sauvegardes de type « shadow copy » !

  1. Ouvrez une fenêtre CMD en tant qu’administrateur
  2. Lancez la commande : vssadmin delete shadows /for=%systemdrive% /Quiet

Vous devrez ainsi créer un nouveau point de restauration après l’opération, sous peine de ne plus disposer de sauvegardes. Pour cela, allez dans les Paramètres Windows, puis dans Système, puis A propos de, puis Protection du système, puis cliquez sur Créer.

Création d’un nouveau point de restauration dans Windows

L’ANSSI précise également dans son bulletin que :

  • L’éditeur (Microsoft) a récemment annoncé que le correctif devrait être publié lors du prochain Patch Tuesday, le 10 août 2021.
  • La suppression des clichés instantanés VSS peut avoir des effets indésirables sur les logiciels de sauvegarde s’appuyant sur le mécanisme de shadow copy ;
  • L’application de ces contournements doit être décidée après évaluation des avantages et inconvénients au regard des risques, notamment parce qu’il peut exister d’autres possibilités d’escalade de privilèges en fonction du niveau de sécurité de votre système d’information.

Nos experts effectuent une veille continue sur cette vulnérabilité et mettront à jour l’ensemble des informations en fonction des éléments que publieront les autorités.

Nous sommes à votre disposition pour toute question complémentaire via notre formulaire de contact.

Mise à jour de l’article le 20/09/2021 : ajout des références vers les mises à jour de Microsoft

Vous avez des questions ?

Vous souhaitez une démonstration ?

Contactez-nous et nos experts reviendront vers vous sous 24h.

Votre demande