Demonstração de Detecção e Mitigação do CVE-2020-1472 (ZeroLogon)
Este projeto demonstra a detecção e a mitigação da vulnerabilidade crítica do Windows CVE-2020-1472, também conhecida como ZeroLogon. A vulnerabilidade permite que atacantes obtenham acesso administrativo não autenticado. Este trabalho foi desenvolvido como parte de um projeto escolar de cibersegurança. O crédito pelo código PoC vai para Tom Tervoort (Secura), e o crédito pelo conjunto de regras do Suricata vai para Proofpoint Emerging Threats.
Componentes principais:
- Teste da vulnerabilidade de um controlador de domínio usando um script PoC
- Monitoramento de indicadores por meio dos Logs de Eventos do Windows
- Implementação do Suricata IDS com regras personalizadas
- Aplicação de Atualizações do Windows
Técnicas de Detecção Demonstradas
1. Script de Teste de Vulnerabilidade
- Script Python de Tom Tervoort (Secura)
- Utiliza a biblioteca
impacket para testar a vulnerabilidade de um controlador de domínio por meio do bypass de autenticação do Netlogon
2. Análise de Logs de Eventos do Windows
Procure por estes eventos-chave:
4624: Logon bem-sucedido usando credenciais do DC
4672: Privilégios especiais atribuídos ao atacante (ex.: administrador)
5805: Eventos de erro do Netlogon (indicador de exploração)
3. Detecção de Intrusão Usando Suricata
- Usa o Suricata para analisar o tráfego de rede no controlador de domínio
- Implementa regras personalizadas do conjunto de regras Proofpoint Emerging Threats
- Detecta sequências de bytes zero comumente usadas no exploit ZeroLogon
Requisitos
Para replicar esta demonstração, a seguinte configuração é necessária:
Máquina Atacante
Máquina Alvo
- VirtualBox (mesma configuração de NATNetwork com Modo Promíscuo ativado)
- Windows Server 2019 Essentials (atualizado em setembro de 2019)
- Um novo domínio e DC criados (usando o servidor da Máquina Alvo como DC)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- Arquivo de regras do repositório Proofpoint Emerging Threats Rules
emerging-all.rules por Proofpoint
Nota de Configuração:
A configuração do Suricata foi modificada usando o Notepad++:
HOME_NET foi definido como o endereço IP da Máquina Alvo
- A seção
rule-files foi atualizada para usar o arquivo emerging-all.rules
Demonstração das Abordagens de Detecção
Passo 1: Descobrir o Nome do Computador e o Endereço IP da Máquina Alvo
- Abra o Server Manager.
- Navegue até Servidor Local. Anote o Nome do Computador e o endereço IP encontrados em Ethernet. Nesta demonstração, o nome do computador é FTB4-Victim-Win e o endereço IP é 10.0.2.4

Passo 2: Executar o Script de Teste de Vulnerabilidade
- Na Máquina Atacante, abra o Terminal
- Execute o script de teste em Python com o nome do computador e o IP da máquina alvo:
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- O script terminará com a mensagem indicando que o controlador de domínio pode ser totalmente comprometido por um ataque ZeroLogon.

Passo 3: Analisando o Log de Eventos do Windows
- Agora, na Máquina Alvo, abra o Event Viewer. O ícone está na barra de tarefas.
- Navegue até Logs do Windows e depois em Segurança.
- Como mostrado abaixo, há dois eventos de Segurança relacionados ao bypass do ZeroLogon: Evento 4672 e Evento 4624.


- Vá até Sistema, também em Logs do Windows. Role a tela para baixo até ver o evento com Nível Erro e Origem NETLOGON. Selecione-o. Este é outro evento relacionado ao bypass do ZeroLogon.

- Você pode fechar o Event Viewer do Windows.
Passo 4: Detecção de Intrusão Usando Suricata
- Na Máquina Alvo, abra o Prompt de Comando como Administrador.
- Execute o seguinte comando para iniciar o Suricata:
cd C:\Program Files\Suricata\
- Execute o seguinte comando com o endereço IP apropriado
suricata -c suricata.yaml -i <target IP> -l log

- Abra o Explorador de Arquivos pelo ícone na barra de tarefas. Navegue até
C:\Program Files\Suricata\log
- Digite
powershell na barra de navegação e pressione Enter. O Windows PowerShell será iniciado.

- No Windows PowerShell, digite
get-content .\fast.log -wait e pressione Enter. Ignore todos os logs anteriores, pois eles eram de testes prévios, e role a tela para baixo até o espaço vazio.

- Na Máquina Atacante, execute o script de teste em Python novamente.
- Agora volte para a Máquina Alvo e observe os novos alertas gerados. Esses alertas indicam uma tentativa ou exploração do ZeroLogon.

- Você pode fechar as janelas do Windows PowerShell e do Prompt de Comando.
- Abra o
fast.txt. Os logs são salvos neste arquivo.

Demonstração da Abordagem de Mitigação
A mitigação mais eficaz para o CVE-2020-1472 (ZeroLogon) é instalar as atualizações de segurança mais recentes do Windows.
Passos:
- Na Máquina Alvo, abra o aplicativo Configurações.
- Navegue até Atualização e Segurança → Windows Update
- Clique em "Verificar se há atualizações" e permita que o sistema baixe e instale as atualizações mais recentes.
- Reinicie a máquina, se necessário.

Essas atualizações aplicam a correção da Microsoft para a vulnerabilidade ZeroLogon, impondo o uso de protocolo remoto seguro e habilitando o modo de imposição por padrão nos controladores de domínio.
Nota sobre Limitações