Eric Woodruff Investigador de segurança sénior

O LDAPNightmare, recentemente publicado pelo SafeBreach Labs, é uma exploração de prova de conceito de uma vulnerabilidade de negação de serviço conhecida do Windows Lightweight Diretory Access Protocol (LDAP)(CVE-2024-49113). O que é o LDAPNightmare, qual o grau de perigosidade desta exploração e como se pode detetar e defender contra ela?

O que é o LDAPNightmare?

A atualização de dezembro de 2024 do Windows - publicada pela Microsoft em 10 de dezembro de 2024, assinalou duas vulnerabilidades LDAP: CVE-2024-49112 e CVE-2024-49113. O CVE-2024-49113 é uma vulnerabilidade de negação de serviço; o CVE-2024-49112 é uma vulnerabilidade de execução remota de código (RCE).

O investigador de segurança que encontrou estas vulnerabilidades, Yuki Chen, não revelou publicamente pormenores que pudessem levar a abusos. No entanto, em 1 de janeiro de 2025, a SafeBreach Labs publicou a sua própria investigação. Denominada LDAPNightmare, esta prova de conceito de trabalho abusa da vulnerabilidade de negação de serviço CVE-2024-49113.

Utilizando o LDAPNightmare, um atacante pode coagir um controlador de domínio (DC), actuando como um cliente LDAP, a enviar um pedido LDAP para um servidor malicioso. Esse servidor pode então enviar uma resposta criada que faz com que um anfitrião Windows, tal como um DC, falhe.

Note-se que a vulnerabilidade explorada não é específica do Active Diretory. Qualquer host Windows pode ser vítima do abuso do LDAPNightmare. No entanto, a natureza de elevado valor do Active Diretory faz do serviço de identidade um alvo privilegiado.

Uma exploração LDAPNightmare envolve o seguinte fluxo(Figura 1):

  1. Um atacante envia um pedido DCE/RPC (Distributed Computing Environment/Remote Procedure Call) a um CD vítima.
  2. O pedido faz com que o CD vítima envie uma consulta DNS SRV para um domínio DNS que o atacante controla.
  3. O DNS controlado pelo atacante responde com registos SRV que resolvem para o nome de anfitrião de um anfitrião malicioso.
  4. O DC vítima transmite um pedido de nome NetBIOS para resolver o nome de anfitrião do anfitrião malicioso.
  5. O anfitrião malicioso responde com o seu endereço IP.
  6. O CD vítima, tendo resolvido o anfitrião, actua como um cliente LDAP e envia um pedido CLDAP ao anfitrião malicioso.
  7. O anfitrião malicioso, controlado pelo atacante, fornece uma resposta que é criada para causar um estouro de número inteiro na biblioteca do cliente LDAP no DC da vítima, causando a falha do Windows.
Figura 1. Fluxo do exploit LDAPNightmare

O passo-a-passo completo da pesquisa do SafeBreach Lab pode ser encontrado em LDAPNightmare: SafeBreach Publishes First PoC Exploit (CVE-2024-49113). Até o momento, não há divulgações públicas sobre o abuso do CVE-2024-49112.

Como pode defender o seu ambiente contra o LDAPNightmare?

Para se defenderem contra potenciais negações de serviço do LDAPNightmare, as organizações devem corrigir os seus DCs, património de Nível 0 (por exemplo, servidores AD FS e AD CS) e anfitriões críticos do Windows o mais rapidamente possível. As actualizações do Windows Patch Tuesday de dezembro de 2024 contêm as correcções necessárias para proteger contra as vulnerabilidades em ambos os CVEs.

A tabela seguinte apresenta informações publicadas pelo Centro de Resposta de Segurança da Microsoft (MSRC) relativamente aos patches disponíveis para o CVE-2024-49113.

Sistema operativoTipo de instalaçãoArtigo da base de dados de conhecimento
Windows Server 2016Núcleo completo e de servidorKB5048671
Windows Server 2019Núcleo completo e de servidorKB5048661
Windows Server 2022Núcleo completo e de servidorKB5048654
Windows Server 2022Núcleo completo e de servidor, hotpatchedKB5048800
Windows Server 2025Núcleo completo e de servidorKB5048667
Windows Server 2025Núcleo completo e de servidor, hotpatchedKB5048794
Tabela 1. Artigos da Base de Dados de Conhecimento da Microsoft para os patches CVE-2024-49113

Pode encontrar informações completas sobre as actualizações disponíveis para todas as versões do Windows (cliente e servidor) em CVE-2024-49113 - Guia de Atualização de Segurança - Microsoft - Vulnerabilidade de negação de serviço do protocolo LDAP (Lightweight Diretory Access Protocol) do Windows.

Uma palavra de cautela relativamente a outras atenuações

A publicação do MSRC relativa ao CVE-2024-49112 recomenda as seguintes atenuações:

Certifique-se de que os controladores de domínio estão configurados para não acederem à Internet ou para não permitirem RPC de entrada a partir de redes não fidedignas. Embora qualquer uma das atenuações proteja o seu sistema contra esta vulnerabilidade, a aplicação de ambas as configurações proporciona uma defesa eficaz em profundidade contra esta vulnerabilidade.

Infelizmente, o MSRC não fornece passos acionáveis para estas mitigações, e a orientação relativa às limitações do RPC pode ser problemática se for mal interpretada.

  • Os sistemas de Nível 0 nunca devem ter acesso ilimitado à Internet. No entanto, determinados serviços da Microsoft requerem conetividade de saída para vários pontos de extremidade do Azure e do M365. Estes serviços geralmente suportam conetividade de saída através de um proxy, mas a menos que a sua organização já tenha um proxy implementado para este tráfego, deve dar prioridade à aplicação de patches nos seus DCs em vez de implementar novos serviços de proxy.
  • A ativação de restrições RPC pode ter consequências negativas se for implementada em DCs. A Microsoft publicou um artigo sobre as potenciais consequências.
  • A maioria das empresas já tem um processo para testar os patches do Windows antes da sua implementação. Quaisquer restrições RPC requerem uma conceção e testes igualmente extensos, acções que consomem tempo e que provavelmente desviarão recursos da aplicação de patches críticos nos anfitriões afectados.

As organizações podem explorar o bloqueio de RPC numa camada de rede. No entanto, note que esse bloqueio pode perturbar o Active Diretory.

Como é que se pode detetar o LDAPNightmare?

Como é que pode determinar se o LDAPNightmare é uma ameaça no seu ambiente?

Verificar se existem correcções

A aplicação de patches é a principal via de defesa, pelo que o método mais fácil de determinar se o Active Diretory está protegido contra o LDAPNightmare é examinar o estado dos patches de dezembro de 2024 da Microsoft nos seus DCs. Pode utilizar as capacidades de relatório das suas plataformas de gestão de patches para determinar esta informação. Em alternativa, a Semperis escreveu o seguinte código PowerShell, que pode utilizar para avaliar o estado dos patches dos seus DCs.

      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

Este código do PowerShell verifica cada DC, de acordo com a versão do seu sistema operativo para o hotfix apropriado e, em seguida, envia o conteúdo para um ficheiro CSV. Se estiver a executar o Windows Server 2012 R2 ou anterior ou a utilizar hotpatching, terá de atualizar a instrução switch conforme adequado.

Nota: Este código requer acesso remoto e privilégios em cada CD, por isso, execute-o apenas a partir de um dispositivo de Nível 0 fiável, como uma estação de trabalho de acesso privilegiado (PAW).

Outros métodos de deteção

O SafeBreach indicou que o LDAPNightmare poderia ser usado para determinar se um DC é vulnerável à exploração do CVE-2024-49113. No entanto, este tipo de experiência consistiria em fazer crashar conscientemente os DCs, um ato que é melhor evitar contra um serviço de diretório de produção. Como a SafeBreach indicou, e como verificámos nos nossos próprios testes, os patches de dezembro de 2024 da Microsoft protegem contra o estouro de inteiros. Por conseguinte, recomendamos que as organizações se concentrem em inventariar quais os DCs e outros anfitriões de Nível 0 que não têm o patch relevante.

O SafeBreach também indica que as organizações podem monitorizar respostas de referência CLDAP suspeitas, chamadas DsrGetDcNameEx2 suspeitas e consultas DNS SRV suspeitas. No entanto, estes tipos de tráfego de rede ocorreriam provavelmente quando um ataque já estivesse a ser efectuado contra anfitriões vulneráveis. À velocidade a que esta exploração funciona, seria possível capturar estes eventos apenas momentos antes de um DC visado falhar.

Se notar que um DC está a reiniciar, pode verificar o registo de aplicações do Windows no DC para determinar se o LDAPNightmare está em jogo. Primeiro, procure o ID de evento 1000 com um nome de aplicação com falha lsass.exe e um nome de módulo com falha WLDAP32.dll(Figura 2).

Figura 2. Evento ID 1000

Em seguida, procure uma ID de evento 1015 subsequente indicando que o processo crítico lsass.exe falhou e que o Windows deve ser reiniciado(Figura 3).

Figura 3. Evento ID 1015

Instantâneo da Semperis

O LDAPNightmare é um exploit de prova de conceito recentemente publicado que abusa do CVE-2024-49113. A exploração tem o potencial de gerar ataques de negação de serviço contra sistemas Windows críticos, incluindo DCs.

Neste momento, não se conhecem ataques que utilizem o LDAPNightmare. No entanto, um atacante poderia potencialmente utilizar esta exploração para construir um sistema que poderia continuamente visar e derrubar DCs não corrigidos, afectando grandemente a disponibilidade do Active Diretory. Continuaremos a atualizar os nossos recursos sobre a vulnerabilidade à medida que a investigação prossegue.

Leitura adicional