Demo di rilevamento e mitigazione di CVE-2020-1472 (ZeroLogon)
Questo progetto dimostra il rilevamento e la mitigazione della vulnerabilità critica di Windows CVE-2020-1472, nota anche come ZeroLogon. La vulnerabilità consente agli aggressori di ottenere accesso amministrativo non autenticato. Questo progetto è stato sviluppato come parte di un progetto scolastico di cybersecurity. Il merito del codice PoC va a Tom Tervoort (Secura) e il merito del ruleset Suricata va a Proofpoint Emerging Threats.
Componenti chiave:
- Testare la vulnerabilità di un controller di dominio utilizzando uno script PoC
- Monitorare gli indicatori tramite log eventi di Windows
- Implementare Suricata IDS con regole personalizzate
- Applicare aggiornamenti di Windows
Tecniche di rilevamento dimostrate
1. Script di test della vulnerabilità
- Script Python di Tom Tervoort (Secura)
- Utilizza la libreria
impacket per testare la vulnerabilità di un controller di dominio tramite bypass dell'autenticazione Netlogon
2. Analisi dei log eventi di Windows
Cerca questi eventi chiave:
4624: Accesso riuscito utilizzando le credenziali del DC
4672: Privilegi speciali assegnati all'aggressore (es., admin)
5805: Eventi di errore Netlogon (indicatore di sfruttamento)
3. Rilevamento delle intrusioni con Suricata
- Utilizza Suricata per analizzare il traffico di rete sul controller di dominio
- Implementa regole personalizzate dal ruleset Proofpoint Emerging Threats
- Rileva sequenze di byte zero comunemente utilizzate nell'exploit ZeroLogon
Requisiti
Per replicare questa dimostrazione, è necessaria la seguente configurazione:
Macchina dell'aggressore
Macchina target
- VirtualBox (stessa configurazione NATNetwork con modalità Promiscua abilitata)
- Windows Server 2019 Essentials (aggiornato a settembre 2019)
- Un nuovo dominio e DC creati (utilizzando il server della macchina target come DC)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- File delle regole dal repository Proofpoint Emerging Threats Rules
emerging-all.rules di Proofpoint
Nota di configurazione:
La configurazione di Suricata è stata modificata utilizzando Notepad++:
HOME_NET è stato impostato sull'indirizzo IP della macchina target
- La sezione
rule-files è stata aggiornata per utilizzare il file emerging-all.rules
Dimostrazione degli approcci di rilevamento
Passo 1: Scoprire il nome computer e l'indirizzo IP della macchina target
- Aprire Server Manager.
- Andare su Server locale. Prendere nota del nome computer e dell'indirizzo IP presenti sotto Ethernet. In questa dimostrazione, il nome computer è FTB4-Victim-Win e l'indirizzo IP è 10.0.2.4

Passo 2: Avviare lo script di test della vulnerabilità
- Nella macchina dell'aggressore, aprire il Terminale
- Eseguire lo script Python di test con il nome computer e l'IP della macchina target:
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- Lo script si concluderà con il messaggio che indica che il controller di dominio può essere completamente compromesso da un attacco ZeroLogon.

Passo 3: Analisi dei log eventi di Windows
- Ora, nella macchina target, avviare Visualizzatore eventi. L'icona si trova sulla barra delle applicazioni.
- Andare su Log di Windows, quindi su Sicurezza.
- Come mostrato di seguito, ci sono due eventi di sicurezza relativi al bypass ZeroLogon: Evento 4672 ed Evento 4624.


- Andare su Sistema, sempre sotto Log di Windows. Scorrere verso il basso fino a vedere l'evento con Livello Errore e Origine NETLOGON. Selezionarlo. Questo è un altro evento relativo al bypass ZeroLogon.

- È possibile chiudere Visualizzatore eventi di Windows.
Passo 4: Rilevamento delle intrusioni con Suricata
- Nella macchina target, aprire il Prompt dei comandi come amministratore.
- Eseguire il seguente comando per avviare Suricata:
cd C:\Program Files\Suricata\
- Eseguire il seguente comando con l'indirizzo IP appropriato
suricata -c suricata.yaml -i <target IP> -l log

- Aprire Esplora file dall'icona nella barra delle applicazioni. Andare su
C:\Program Files\Suricata\log
- Digitare
powershell nella barra di navigazione e premere Invio. Si avvierà Windows PowerShell.

- In Windows PowerShell, digitare
get-content .\fast.log -wait e premere Invio. Ignorare tutti i log precedenti in quanto provenienti da test precedenti e scorrere verso il basso fino allo spazio vuoto.

- Nella macchina dell'aggressore, avviare di nuovo lo script Python di test.
- Ora tornare alla macchina target e prendere nota dei nuovi avvisi generati. Questi avvisi indicano un tentativo o uno sfruttamento di ZeroLogon.

- È possibile chiudere le finestre di Windows PowerShell e del Prompt dei comandi.
- Aprire
fast.txt. I log vengono salvati in questo file.

Dimostrazione dell'approccio di mitigazione
La mitigazione più efficace per CVE-2020-1472 (ZeroLogon) è installare gli ultimi aggiornamenti di sicurezza di Windows.
Passaggi:
- Sulla macchina target, aprire l'app Impostazioni.
- Andare su Aggiornamento e sicurezza → Windows Update
- Fare clic su "Verifica disponibilità aggiornamenti" e consentire al sistema di scaricare e installare gli ultimi aggiornamenti.
- Riavviare la macchina se necessario.

Questi aggiornamenti applicano la correzione di Microsoft per la vulnerabilità ZeroLogon imponendo l'uso di protocolli remoti sicuri e abilitando la modalità di applicazione (enforcement) per impostazione predefinita nei controller di dominio.
Nota sui limiti
Gli approcci di rilevamento e mitigazione dimostrati in questo progetto sono progettati a scopo educativo all'interno di un ambiente di laboratorio controllato. Sebbene efficaci nell'illustrare i concetti alla base di CVE-2020-1472 (ZeroLogon), presentano dei limiti e non sono del tutto pratici per l'implementazione in ambienti aziendali reali. Trattandosi di un progetto scolastico, l'obiettivo è imparare e comprendere le tecniche di cybersecurity piuttosto che implementare soluzioni di livello produttivo.
Riconoscimenti
Un ringraziamento speciale a
Riferimenti
Autore
@tdevworks
Dichiarazione di non responsabilità
Questo repository è stato creato solo a scopo educativo.
Tutti gli strumenti, gli script e le tecniche dimostrati hanno lo scopo di aiutare a comprendere le vulnerabilità di cybersecurity in un ambiente di laboratorio controllato. Non tentare di utilizzare alcuno dei materiali forniti su sistemi o reti che non possiedi o per cui non hai esplicita autorizzazione a testare.
L'autore non è responsabile per qualsiasi uso improprio delle informazioni fornite.