Eric Woodruff Chercheur principal en sécurité

LDAPNightmare, récemment publié par SafeBreach Labs, est un exploit de preuve de concept d'une vulnérabilité connue de Windows Lightweight Directory Access Protocol (LDAP) en matière de déni de service(CVE-2024-49113). Qu'est-ce que LDAPNightmare, quel est le degré de dangerosité de cet exploit et comment pouvez-vous le détecter et vous défendre contre lui ?

Qu'est-ce que LDAPNightmare ?

La mise à jour Windows de décembre 2024 - publiée par Microsoft le 10 décembre 2024, a relevé deux vulnérabilités LDAP : CVE-2024-49112 et CVE-2024-49113. CVE-2024-49113 est une vulnérabilité de déni de service ; CVE-2024-49112 est une vulnérabilité d'exécution de code à distance (RCE).

Le chercheur en sécurité qui a découvert ces vulnérabilités, Yuki Chen, n'a pas divulgué publiquement de détails susceptibles de donner lieu à des abus. Cependant, le 1er janvier 2025, SafeBreach Labs a publié ses propres recherches. Baptisée LDAPNightmare, cette preuve de concept exploite la vulnérabilité de déni de service CVE-2024-49113.

En utilisant LDAPNightmare, un attaquant peut contraindre un contrôleur de domaine (DC), agissant en tant que client LDAP, à envoyer une requête LDAP à un serveur malveillant. Ce serveur peut ensuite envoyer une réponse élaborée qui provoque le plantage d'un hôte Windows, tel qu'un contrôleur de domaine.

Il convient de noter que la vulnérabilité exploitée n'est pas spécifique à Active Directory. N'importe quel hôte Windows peut être victime de l'abus LDAPNightmare. Cependant, la valeur élevée d'Active Directory fait du service d'identité une cible de choix.

Un exploit LDAPNightmare se déroule comme suit(figure 1):

  1. Un attaquant envoie une requête DCE/RPC (Distributed Computing Environment/Remote Procedure Call) à un DC victime.
  2. La demande déclenche l'envoi par le DC victime d'une requête DNS SRV à un domaine DNS contrôlé par l'attaquant.
  3. Le DNS contrôlé par l'attaquant répond par des enregistrements SRV qui résolvent le nom d'hôte d'un hôte malveillant.
  4. Le centre de données victime diffuse une demande de nom NetBIOS pour résoudre le nom d'hôte de l'hôte malveillant.
  5. L'hôte malveillant répond en indiquant son adresse IP.
  6. Le DC victime, après avoir résolu l'hôte, agit en tant que client LDAP et envoie une requête CLDAP à l'hôte malveillant.
  7. L'hôte malveillant, contrôlé par l'attaquant, fournit une réponse qui est conçue pour provoquer un débordement d'entier dans la bibliothèque du client LDAP sur le DC victime, provoquant un plantage de Windows.
Figure 1. Flux de l'exploit LDAPNightmare

L'ensemble des recherches effectuées par SafeBreach Lab peut être consulté à l'adresse suivante : LDAPNightmare : SafeBreach Publishes First PoC Exploit (CVE-2024-49113). Jusqu'à présent, il n'existe aucune divulgation publique concernant l'abus de CVE-2024-49112.

Comment défendre votre environnement contre LDAPNightmare ?

Pour se défendre contre les dénis de service potentiels de LDAPNightmare, les organisations doivent corriger leurs DC, leurs domaines de niveau 0 (par exemple, les serveurs AD FS et AD CS) et les hôtes Windows critiques dès que possible. Les mises à jour Windows Patch Tuesday de décembre 2024 contiennent les correctifs nécessaires pour se protéger contre les vulnérabilités des deux CVE.

Le tableau suivant présente les informations publiées par le Microsoft Security Response Center (MSRC) concernant les correctifs disponibles pour CVE-2024-49113.

Système d'exploitationType d'installationArticle de la base de connaissances
Windows Server 2016Cœur complet et cœur de serveurKB5048671
Windows Server 2019Cœur complet et cœur de serveurKB5048661
Serveur Windows 2022Cœur complet et cœur de serveurKB5048654
Serveur Windows 2022Cœur complet et cœur de serveur, hotpatchedKB5048800
Serveur Windows 2025Cœur complet et cœur de serveurKB5048667
Serveur Windows 2025Cœur complet et cœur de serveur, hotpatchedKB5048794
Tableau 1. Articles de la base de connaissances de Microsoft concernant les correctifs CVE-2024-49113

Vous trouverez tous les détails des mises à jour disponibles pour toutes les versions de Windows (client et serveur) à l'adresse suivante : CVE-2024-49113 - Security Update Guide - Microsoft - Windows Lightweight Directory Access Protocol (LDAP) Denial of Service Vulnerability (Vulnérabilité de déni de service du protocole d'accès à l'annuaire léger de Windows).

Une mise en garde concernant d'autres mesures d'atténuation

La publication du CSEM concernant CVE-2024-49112 recommande les mesures d'atténuation suivantes :

Assurez-vous que les contrôleurs de domaine sont configurés soit pour ne pas accéder à l'internet, soit pour ne pas autoriser les RPC entrants provenant de réseaux non fiables. Bien que l'une ou l'autre de ces mesures protège votre système contre cette vulnérabilité, l'application des deux configurations constitue une défense en profondeur efficace contre cette vulnérabilité.

Malheureusement, le CSEM ne fournit pas de mesures concrètes pour atténuer ces effets, et les orientations concernant les limitations de la CPR pourraient être problématiques si elles étaient mal interprétées.

  • Les systèmes de niveau 0 ne devraient jamais avoir un accès illimité à l'internet. Pourtant, certains services Microsoft nécessitent une connectivité sortante vers divers points d'extrémité Azure et M365. Ces services prennent généralement en charge la connectivité sortante via un proxy, mais à moins que votre organisation ne dispose déjà d'un proxy en place pour ce trafic, vous devriez donner la priorité à l'application de correctifs sur vos DC plutôt qu'à l'implémentation de nouveaux services de proxy.
  • L'activation des restrictions RPC peut avoir des conséquences négatives si elle est mise en œuvre sur les DC. Microsoft a publié un article couvrant les retombées potentielles.
  • La plupart des entreprises disposent déjà d'un processus de test des correctifs Windows avant leur déploiement. Toute restriction RPC nécessite une conception et des tests tout aussi poussés, ce qui prend du temps et risque de détourner les ressources de l'application des correctifs critiques sur les hôtes concernés.

Les entreprises peuvent envisager de bloquer RPC au niveau du réseau. Notez toutefois qu'un tel blocage peut perturber Active Directory.

Comment détecter LDAPNightmare ?

Comment pouvez-vous déterminer si LDAPNightmare constitue une menace dans votre environnement ?

Vérifier les correctifs

Les correctifs constituent le principal moyen de défense. La méthode la plus simple pour déterminer si Active Directory est protégé contre LDAPNightmare consiste donc à examiner l'état des correctifs Microsoft de décembre 2024 sur vos DC. Vous pouvez utiliser les capacités de reporting de vos plateformes de gestion des correctifs pour déterminer cette information. Semperis a également écrit le code PowerShell suivant, que vous pouvez utiliser pour évaluer l'état des correctifs de vos DC.

      param(
    [Parameter(Mandatory = $true)]
    [string]$CSVFilePath
)

$StatusList = @()

$DCList = @(get-addomaincontroller -Filter *)

foreach ($DC in $DCList) {
    $KBID = $null
    switch -Wildcard ($DC.OperatingSystem) {
        "Windows Server 2016*" { $KBID = "KB5048661" }
        "Windows Server 2019*" { $KBID = "KB5048661" }
        "Windows Server 2022*" { $KBID = "KB5048654" }
        "Windows Server 2025*" { $KBID = "KB5048667" }
    }

    Write-Progress -Activity "Checking domain controller" -Status $DC.HostName -PercentComplete $([float](([int]([array]::indexof($DCList,$DC)) + 1)/$DCList.Count) * 100)

    try {
        Get-HotFix -Id $KBID -ComputerName $DC.HostName -ErrorAction Stop | Out-Null 
        $StatusList += New-Object -TypeName psobject -Property @{Hostname = $DC.HostName; OS = $DC.OperatingSystem; KB = $KBID; State="Patched" }
    }
    catch [System.ArgumentException] {
        $StatusList += New-Object -TypeName psobject -Property @{Hostname = $DC.HostName; OS = $DC.OperatingSystem; KB = $KBID; State="Unpatched" }
    }
    catch [System.Runtime.InteropServices.COMException] {
        $StatusList += New-Object -TypeName psobject -Property @{Hostname = $DC.HostName; OS = $DC.OperatingSystem; KB = $KBID; State="Unreachable" }
    }
}

$StatusList | Export-CSV "$CSVFilePath\dclist$(get-date -f yyyy-MM-dd-HHmmss).csv" -NoTypeInformation

Ce code PowerShell vérifie chaque DC, en fonction de la version de son système d'exploitation, pour trouver le correctif approprié, puis affiche le contenu dans un fichier CSV. Si vous utilisez Windows Server 2012 R2 ou une version antérieure, ou si vous utilisez le hotpatching, vous devrez mettre à jour l'instruction de commutation comme il se doit.

Remarque : Ce code nécessite un accès à distance et des privilèges sur chaque DC. Il ne doit donc être exécuté qu'à partir d'un périphérique de niveau 0 de confiance, tel qu'un poste de travail à accès privilégié (PAW).

Autres méthodes de détection

SafeBreach a indiqué que LDAPNightmare pourrait être utilisé pour déterminer si un DC est vulnérable à l'exploitation de CVE-2024-49113. Cependant, ce type d'expérience consisterait à planter sciemment des DC, un acte qu'il vaut mieux éviter contre un service d'annuaire de production. Comme SafeBreach l'a indiqué, et comme nous l'avons vérifié lors de nos propres tests, les correctifs Microsoft de décembre 2024 protègent contre les débordements d'entiers. Par conséquent, nous recommandons aux organisations de se concentrer sur l'inventaire des DC et autres hôtes de niveau 0 qui ne disposent pas du correctif approprié.

SafeBreach indique également que les organisations peuvent surveiller les réponses de référence CLDAP suspectes, les appels DsrGetDcNameEx2 suspects et les requêtes SRV DNS suspectes. Cependant, ces types de trafic réseau se produiraient probablement lorsqu'une attaque est déjà en cours contre les hôtes vulnérables. À la vitesse à laquelle cet exploit fonctionne, vous seriez en mesure de capturer ces événements quelques instants seulement avant qu'un DC ciblé ne s'effondre.

Si vous remarquez qu'un DC redémarre, vous pouvez consulter le journal des applications Windows sur le DC pour déterminer si LDAPNightmare est en jeu. Tout d'abord, recherchez l'ID d'événement 1000 avec le nom d'application en défaut lsass.exe et le nom de module en défaut WLDAP32.dll(figure 2).

Figure 2. ID d'événement 1000

Recherchez ensuite l'ID d'événement 1015 indiquant que le processus critique lsass.exe a échoué et que Windows doit être redémarré(figure 3).

Figure 3. ID d'événement 1015

Aperçu de Semperis

LDAPNightmare est un exploit de preuve de concept récemment publié qui exploite CVE-2024-49113. Cet exploit a le potentiel de générer des attaques par déni de service contre des systèmes Windows critiques, y compris des DC.

À l'heure actuelle, aucune attaque utilisant LDAPNightmare n'est connue dans la nature. Cependant, un attaquant pourrait potentiellement utiliser cet exploit pour construire un système qui pourrait continuellement cibler et mettre hors service des DC non corrigés, ce qui affecterait grandement la disponibilité d'Active Directory. Nous continuerons à mettre à jour nos ressources sur cette vulnérabilité au fur et à mesure que les recherches se poursuivent.

Lectures complémentaires