Eric Woodruff Ricercatore senior di sicurezza

LDAPNightmare, recentemente pubblicato da SafeBreach Labs, è un exploit proof-of-concept di una vulnerabilità denial-of-service nota di Windows Lightweight Directory Access Protocol (LDAP)(CVE-2024-49113). Che cos'è LDAPNightmare, quanto è pericoloso questo exploit e come è possibile individuarlo e difendersi da esso?

Che cos'è LDAPNightmare?

L'aggiornamento di dicembre 2024 di Windows, pubblicato da Microsoft il 10 dicembre 2024, ha rilevato due vulnerabilità LDAP: CVE-2024-49112 e CVE-2024-49113. CVE-2024-49113 è una vulnerabilità di tipo denial-of-service; CVE-2024-49112 è una vulnerabilità di esecuzione di codice remoto (RCE).

Il ricercatore di sicurezza che ha trovato queste vulnerabilità, Yuki Chen, non ha rivelato pubblicamente i dettagli che potrebbero portare ad abusi. Tuttavia, il 1° gennaio 2025, SafeBreach Labs ha pubblicato la propria ricerca. Denominato LDAPNightmare, questo proof-of-concept funzionante sfrutta la vulnerabilità denial-of-service CVE-2024-49113.

Utilizzando LDAPNightmare, un utente malintenzionato può costringere un controller di dominio (DC), che agisce come client LDAP, a inviare una richiesta LDAP a un server dannoso. Tale server può quindi inviare una risposta artigianale che causa l'arresto anomalo di un host Windows, come un DC.

Si noti che la vulnerabilità sfruttata non è specifica di Active Directory. Qualsiasi host Windows può essere vittima dell'abuso di LDAPNightmare. Tuttavia, la natura di alto valore di Active Directory rende il servizio di identità un obiettivo primario.

Un exploit di LDAPNightmare prevede il seguente flusso(Figura 1):

  1. Un utente malintenzionato invia una richiesta di Distributed Computing Environment/Remote Procedure Call (DCE/RPC) a un DC vittima.
  2. La richiesta fa sì che il CC vittima invii una query DNS SRV a un dominio DNS controllato dall'aggressore.
  3. Il DNS controllato dall'aggressore risponde con record SRV che si risolvono nel nome dell'host di un host dannoso.
  4. Il CC vittima trasmette una richiesta di nome NetBIOS per risolvere il nome host dell'host dannoso.
  5. L'host maligno risponde con il suo indirizzo IP.
  6. Il DC vittima, dopo aver risolto l'host, agisce come client LDAP e invia una richiesta CLDAP all'host dannoso.
  7. L'host dannoso, controllato dall'aggressore, fornisce una risposta che è stata creata per causare un integer overflow nella libreria del client LDAP sul DC vittima, causando l'arresto anomalo di Windows.
Figura 1. Flusso dell'exploit LDAPNightmare

L'intera descrizione della ricerca di SafeBreach Lab è disponibile all'indirizzo LDAPNightmare: SafeBreach Publishes First PoC Exploit (CVE-2024-49113). Finora non esistono rivelazioni pubbliche relative all'abuso di CVE-2024-49112.

Come si può difendere l'ambiente da LDAPNightmare?

Per difendersi dai potenziali denials of service di LDAPNightmare, le organizzazioni devono applicare al più presto le patch ai loro DC, alle proprietà di livello 0 (ad esempio, ai server AD FS e AD CS) e agli host Windows critici. Gli aggiornamenti di Windows Patch Tuesday di dicembre 2024 contengono le patch necessarie per proteggere dalle vulnerabilità di entrambi i CVE.

La tabella seguente mostra le informazioni pubblicate dal Microsoft Security Response Center (MSRC) relative alle patch disponibili per CVE-2024-49113.

Sistema operativoTipo di installazioneArticolo della Knowledge Base
Windows Server 2016Nucleo completo e serverKB5048671
Windows Server 2019Nucleo completo e serverKB5048661
Windows Server 2022Nucleo completo e serverKB5048654
Windows Server 2022Core completo e server, hotpatchedKB5048800
Server Windows 2025Nucleo completo e serverKB5048667
Server Windows 2025Core completo e server, hotpatchedKB5048794
Tabella 1. Articoli della Microsoft Knowledge Base per le patch CVE-2024-49113

I dettagli completi degli aggiornamenti disponibili per tutte le versioni di Windows (client e server) sono disponibili all'indirizzo CVE-2024-49113 - Guida agli aggiornamenti di sicurezza - Microsoft - Windows Lightweight Directory Access Protocol (LDAP) Denial of Service Vulnerability.

Una parola di cautela riguardo ad altre mitigazioni

La pubblicazione MSRC relativa a CVE-2024-49112 raccomanda le seguenti mitigazioni:

Assicuratevi che i controller di dominio siano configurati per non accedere a Internet o per non consentire RPC in entrata da reti non attendibili. Sebbene l'una o l'altra mitigazione protegga il sistema da questa vulnerabilità, l'applicazione di entrambe le configurazioni fornisce un'efficace difesa in profondità contro questa vulnerabilità.

Purtroppo, l'MSRC non fornisce misure attuabili per queste mitigazioni e la guida relativa alle limitazioni RPC potrebbe essere problematica se interpretata in modo errato.

  • I sistemi di livello 0 non dovrebbero mai avere accesso libero a Internet. Tuttavia, alcuni servizi Microsoft richiedono la connettività in uscita a vari endpoint Azure e M365. Questi servizi generalmente supportano la connettività in uscita attraverso un proxy, ma a meno che la vostra organizzazione non disponga già di un proxy per questo traffico, dovreste dare la priorità alla patch dei vostri DC piuttosto che all'implementazione di nuovi servizi proxy.
  • L'abilitazione delle restrizioni RPC può avere conseguenze negative se implementata nei DC. Microsoft ha pubblicato un articolo sulle potenziali conseguenze.
  • La maggior parte delle aziende dispone già di un processo per testare le patch di Windows prima del rollout. Qualsiasi restrizione RPC richiede una progettazione e un collaudo altrettanto approfonditi, azioni che richiedono molto tempo e che probabilmente distolgono risorse dalle patch critiche degli host interessati.

Le organizzazioni possono pensare di bloccare RPC a livello di rete. Tuttavia, si noti che tale blocco può interrompere Active Directory.

Come si può rilevare LDAPNightmare?

Come si può determinare se LDAPNightmare è una minaccia nel proprio ambiente?

Verifica della presenza di patch

Il metodo più semplice per determinare se Active Directory è protetto da LDAPNightmare è esaminare lo stato delle patch Microsoft del dicembre 2024 sui vostri DC. Per determinare queste informazioni è possibile utilizzare le funzionalità di reporting delle piattaforme di gestione delle patch. In alternativa, Semperis ha scritto il seguente codice PowerShell, che potete utilizzare per valutare lo stato delle patch dei vostri 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

Questo codice PowerShell controlla ogni DC, in base alla versione del suo sistema operativo, per trovare l'hotfix appropriato, e quindi produce il contenuto in un file CSV. Se si utilizza Windows Server 2012 R2 o versioni precedenti o se si utilizza l'hotpatching, è necessario aggiornare l'istruzione switch come appropriato.

Nota: questo codice richiede l'accesso remoto e i privilegi di ogni DC, quindi può essere eseguito solo da un dispositivo di livello 0 affidabile, come una workstation ad accesso privilegiato (PAW).

Altri metodi di rilevamento

SafeBreach ha indicato che LDAPNightmare potrebbe essere utilizzato per determinare se un DC è vulnerabile allo sfruttamento di CVE-2024-49113. Tuttavia, questo tipo di esperimento consisterebbe nel mandare consapevolmente in crash i DC, un'azione che è meglio evitare contro un servizio di directory di produzione. Come indicato da SafeBreach e come abbiamo verificato nei nostri test, le patch Microsoft del dicembre 2024 proteggono dall'integer overflow. Pertanto, consigliamo alle organizzazioni di concentrarsi sull'inventario dei DC e degli altri host di livello 0 che non dispongono della patch pertinente.

SafeBreach indica inoltre che le organizzazioni possono monitorare le risposte di riferimento CLDAP sospette, le chiamate DsrGetDcNameEx2 sospette e le query DNS SRV sospette. Tuttavia, questi tipi di traffico di rete si verificherebbero probabilmente quando un attacco è già in atto contro gli host vulnerabili. Alla velocità con cui funziona questo exploit, sareste in grado di catturare questi eventi solo pochi istanti prima del crash di un DC mirato.

Se si nota un riavvio del DC, è possibile controllare il registro delle applicazioni di Windows sul DC per determinare se LDAPNightmare è in gioco. Innanzitutto, cercate l'ID evento 1000 con il nome dell'applicazione in errore di lsass.exe e il nome del modulo in errore di WLDAP32.dll(Figura 2).

Figura 2. ID evento 1000

Quindi, cercate un successivo ID evento 1015 che indica che il processo critico lsass.exe non è riuscito e che Windows deve essere riavviato(Figura 3).

Figura 3. ID evento 1015

Istantanea Semperis

LDAPNightmare è un exploit proof-of-concept pubblicato di recente che abusa di CVE-2024-49113. L'exploit è potenzialmente in grado di generare attacchi denial-of-service contro sistemi Windows critici, compresi i DC.

Al momento non sono noti attacchi che utilizzano LDAPNightmare. Tuttavia, un utente malintenzionato potrebbe potenzialmente utilizzare questo exploit per creare un sistema in grado di colpire e distruggere continuamente i DC non patchati, compromettendo notevolmente la disponibilità di Active Directory. Continueremo ad aggiornare le nostre risorse sulla vulnerabilità man mano che le ricerche proseguiranno.

Ulteriori letture