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.
Da Microsoft
O Event Log Remoting Protocol é um protocolo baseado em RPC que expõe métodos de chamada de procedimento remoto (RPC) para leitura de eventos em logs ao vivo e de backup em computadores remotos.
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
Analisando a string do descritor de segurança: CustomSD = O:BAG:SYD:(A;;0x07;;;WD)S:(ML;;0x1;;;LW)
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.
Fluxo 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.
Uma demonstração do LogCrusher que trava repetidamente o serviço de log de eventos até que ele pare de reiniciar.
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.
- Sem logs, os controles de segurança são inúteis.
- 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.
- 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.
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:
Da Microsoft
Salva o log de eventos especificado em um arquivo de backup. A função não limpa o log de eventos.
...A função BackupEventLog falha com o erro ERROR_PRIVILEGE_NOT_HELD se o usuário não tiver o privilégio SE_BACKUP_NAME.
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.
Fluxo de Ataque
- Obter um identificador para o log de eventos do Internet Explorer na máquina da vítima (mesmo que antes).
- Gravar alguns logs arbitrários no log de eventos (strings aleatórias; tamanhos diferentes).
- 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.
- Repetir o processo de backup até que o disco rígido esteja cheio e o computador pare de funcionar.
- A máquina da vítima não consegue escrever “pagefile” (memória virtual), tornando-a inutilizável.
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.
O que devo fazer agora?
Listamos abaixo três recomendações para reduzir os riscos de dados na sua organização:
Agende uma demonstração conosco: Veja a usabilidade de Varonis em uma sessão personalizada com base nas necessidades de segurança de dados da sua organização. Responderemos a todas as suas perguntas.
Veja um exemplo do nosso Relatório de Risco de Dados: Conheça as ameaças que podem permanecer no seu ambiente. O Relatório da Varonis é gratuito e demonstra claramente como realizar a remediação automatizada.
Siga-nos no LinkedIn, YouTube e X (Twitter): Obtenha insights detalhados sobre todos os aspectos da segurança de dados, incluindo DSPM, detecção de ameaças, segurança de IA, entre outros.