O blog da segurança de dentro para fora Blog   /     /  

The Logging Dead: Duas vulnerabilidades de log de eventos que assombram o Windows

The Logging Dead: Duas vulnerabilidades de log de eventos que assombram o Windows

Conteúdos

    Você não precisa usar o Internet Explorer para que seu legado tenha deixado você vulnerável ao LogCrusher e OverLog, duas vulnerabilidades do Windows descobertas pela equipe do Varonis Threat Labs.

    A Microsoft parou de oferecer suporte ao Internet Explorer em 15 de junho de 2022.  No entanto, a profunda integração do IE no ecossistema do Windows afeta a segurança e a estabilidade dos sistemas operacionais Windows atuais. 

    Um dos recursos da integração do IE e do Windows é um log de eventos específico do Internet Explorer que está presente em todos os sistemas operacionais Windows atuais. Esse log de eventos específico do IE tem um conjunto separado de permissões que permitem duas explorações em sistemas Windows:

    LogCrusher, que permite que qualquer usuário do domínio interrompa remotamente a aplicação de log de eventos de qualquer máquina com Windows no domínio.

    OverLog, que causa um ataque remoto de negação de serviço (DoS), ao preencher o espaço em disco em qualquer máquina com Windows no domínio.

    Neste artigo, explicaremos como essas duas explorações funcionam e detalharemos seus respectivos fluxos de ataque. Como parte da nossa pesquisa, divulgamos prontamente essas vulnerabilidades à Microsoft, que lançou um patch parcial em 11 de outubro de 2022. Pedimos a todos os usuários que corrijam seus sistemas.

    Inserir MS-EVEN

    Microsoft Event Log Remoting Protocol

    Essas explorações (LogCrusher e OverLog) usam as funções do Microsoft Event Log Remoting Protocol (MS-EVEN), que permitem a manipulação remota dos logs de eventos de uma máquina.

    Identificador de log do Internet Explorer

    OpenEventLogW é uma função da API do Windows que permite que um usuário abra um identificador para um log de eventos específico em uma máquina local ou remota.

    Esse recurso é útil para serviços que podem usá-lo para ler, gravar e limpar logs de eventos para máquinas remotas, sem precisar efetuar login manualmente nas próprias máquinas.

    A função requer dois parâmetros:

    lpUNCServerName — O nome da máquina remota ou NULL para uma conexão local

    lpSourceName — O log de eventos específico para obter o identificador

    Como padrão, usuários não administrativos e com pouco privilégio não podem obter um identificador para logs de eventos de outras máquinas. A única exceção é o log “Internet Explorer” legado, que existe em cada versão do Windows e tem seu próprio descritor de segurança que substitui as permissões-padrão.

    O descritor de segurança do log de eventos do Internet Explorer pode ser encontrado no caminho do registro: HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Internet Explorer

    registro

    Analisando a string do descritor de segurança: CustomSD = O:BAG:SYD:(A;;0x07;;;WD)S:(ML;;0x1;;;LW) 

    descritor

    Consegue ver? O DiscretionaryACL o especifica.

    Este ACL permite que qualquer usuário leia e grave logs nele. Um invasor pode obter um identificador de log para cada máquina Windows no domínio de qualquer usuário.

    Isso prepara o cenário para ambas as nossas façanhas.

    LogCrusher

    Um bug lógico ElfClearELFW

    ElfClearELFW é uma função MS-EVEN que permite aos administradores limpar e fazer backup de logs de eventos remotamente.

    A função requer dois parâmetros:

    LogHandle — Identificador de log que já tem uma função OpenEventLog aberta.

    BackupFileName — Um ponteiro para uma estrutura de strings Unicode que mantém o local para fazer backup do log de eventos antes de ser limpo.

    Infelizmente, a função ELFClearElfw tem um bug de validação de entrada impróprio. Ele espera que a estrutura BackupFileName seja inicializada em zero, mas quando o ponteiro da estrutura é NULL, o processo falha.

    Blog_WindowsEventLogVulnerabilities_Diagram_LogCrusherInitialization_V1Fluxo de Ataque

    Ao combinar essas duas funções, é fácil entender o fluxo de ataque do LogCrusher. Chamamos a função OpenEventLog para o log de eventos do Internet Explorer na máquina da vítima:

    Handle = OpenEventLog(<Victim Machine>, "internet explorer") 

    Chamamos a função ElfClearELFW com o identificador que foi retornado e NULL como parâmetro BackupFileName:

    ElfClearELFW(Handle, NULL)

    Pronto! Assim, travamos o log de eventos na máquina da vítima.

    Por padrão, o serviço de log de eventos tentará reiniciar mais duas vezes. Na terceira vez, ele ficará inativo por 24 horas.

     

    Blog_WindowsEventLogVulnerabilities_Diagram_LogCrusherAttackFlow_V1

     Uma demonstração do LogCrusher que trava repetidamente o serviço de log de eventos até que ele pare de reiniciar.

    Desktop_logcrusher

    Isso tudo é ótimo. Mas qual é o impacto?

    O impacto está no fato de que muitos controles de segurança dependem da operação normal do serviço de log de eventos.

    1. Sem logs, os controles de segurança são inúteis.
    2. Em alguns casos, os produtos de controle de segurança se conectam ao serviço. Isso significa que quando ele trava de vez, o produto também trava.
    3. Isso, por sua vez, pode permitir que um invasor use qualquer tipo de exploração ou ataque geralmente detectado sem escrúpulos, pois muitos alertas não são acionados.

    DC_Logcrusher

    Interrupção da verificação do PowerShell do log de eventos.

    É um déjà vu?

    Outra descoberta interessante foi que o bug na função ElfClearELFW foi encontrado há dois anos e informado à Microsoft por um pesquisador que tem o apelido de “limbenjamin”.

    Na época, não foi possível explorar o bug de uma conta de usuário normal não administrador (e do Internet Explorer), então o impacto não estava claro e a Microsoft optou por não corrigi-lo.

    OverLog

    Com esse ataque, conseguimos usar a mesma metodologia e o identificador do log de eventos do Internet Explorer juntamente com outra vulnerabilidade na função BackupEventLogW, para causar uma DoS permanente em cada máquina Windows.

    Segundo a Microsoft, a função BackupEventLogW:

     

    overlog-1

    O bug aqui é ainda mais simples, e, embora diga na documentação que o usuário de backup precisa ter o privilégio SE_BACKUP_NAME, o código não o valida. Assim, todo usuário pode fazer backup de arquivos em uma máquina remota se tiver acesso de gravação a uma pasta naquela máquina.

    DC_OverlogFluxo de Ataque

    1. Obter um identificador para o log de eventos do Internet Explorer na máquina da vítima (mesmo que antes).
    2. Gravar alguns logs arbitrários no log de eventos (strings aleatórias; tamanhos diferentes).
    3. Fazer backup do log em uma pasta gravável na máquina (por exemplo: “c:\windows\tasks”) para a qual cada usuário de domínio tem permissão de gravação por padrão.
    4. Repetir o processo de backup até que o disco rígido esteja cheio e o computador pare de funcionar.
    5. A máquina da vítima não consegue escrever “pagefile” (memória virtual), tornando-a inutilizável.

    Blog_WindowsEventLogVulnerabilities_Diagram_OverLogAttackFlow_V1

    Resposta e recomendações da Microsoft

    A Microsoft optou por não corrigir totalmente a vulnerabilidade LogCrusher no Windows 10 (os sistemas operacionais mais recentes não são afetados).

    A partir da atualização do Patch Tuesday de 11 de outubro de 2022 da Microsoft, a configuração de permissões padrão que permitiu aos usuários não administrativos acesso ao log de eventos do Internet Explorer em máquinas remotas foi restrita aos administradores locais, reduzindo consideravelmente o potencial de danos.

    Embora isso aborde esse conjunto específico de explorações do log de eventos do Internet Explorer, ainda existe a possibilidade de outros logs de eventos de aplicativos acessíveis pelo usuário serem aproveitados de forma semelhante para ataques.

    Recomendamos que todos os sistemas potencialmente vulneráveis apliquem o patch fornecido pela Microsoft e monitorem qualquer atividade suspeita.

    Linha do tempo

    As vulnerabilidades informam a linha do tempo que contém a correspondência relevante:

    24/05/2022

    As vulnerabilidades “OverLog” e “LogCrusher” foram enviadas ao Microsoft Security Response Center (MSRC).

    02/06/2022

    O MSRC confirmou “OverLog” e mudou seu status para “develop”.

    25/07/2022

    O MSRC fechou o “LogCrusher e afirmou que o classificou como gravidade moderada porque requer privilégio de administrador e interação manual para explorar.

    26/07/2022

    Enviamos um e-mail de volta ao MSRC, mencionando especificamente que o relatório inicial informa que a vulnerabilidade pode ser explorada a partir do usuário do domínio na configuração-padrão do Windows. Não recebemos resposta do MSRC.

    11/10/2022

    Patch Tuesday — As vulnerabilidades foram nomeadas CVE-2022-37981 e corrigidas.

    25/10/2022

    Post publicado no blog.

    What you should do now

    Below are three ways we can help you begin your journey to reducing data risk at your company:

    1. Schedule a demo session with us, where we can show you around, answer your questions, and help you see if Varonis is right for you.
    2. Download our free report and learn the risks associated with SaaS data exposure.
    3. Share this blog post with someone you know who'd enjoy reading it. Share it with them via email, LinkedIn, Twitter, Reddit, or Facebook.

    We're Varonis.

    We've been keeping the world's most valuable data out of enemy hands since 2005 with our market-leading data security platform.

    We've been keeping the world's most valuable data out of enemy hands since 2005 with our market-leading data security platform.

    How it works