
Introduzione al lab su ZeroLogon
Una configurazione di laboratorio per testare la vulnerabilità dell'exploit ZeroLogon (CVE-2020-1472). Contiene uno script Python che utilizza la libreria Impacket per testare la vulnerabilità e una macchina virtuale (VM) con Windows Server 2019 configurata come Domain Controller (DC).
Lo script tenta di eseguire il bypass dell'autenticazione Netlogon. Termina immediatamente quando il bypass viene eseguito con successo e non esegue alcuna operazione Netlogon. Quando il DC è patchato, lo script di rilevamento si arrende dopo aver inviato un certo numero di coppie di chiamate RPC e conclude che il target non è vulnerabile (con una probabilità di falso negativo dello 0,04%).
Opzionale
Digita semplicemente vagrant up per caricare una build vulnerabile di Windows Server 2019 come VM.
Quindi, configura la VM come Domain Controller seguendo questo tutorial.
Infine, lancia l'attacco sul DC (zerologon_tester.py).
Si consiglia di usare la versione Dockerizzata di questo attacco o un virtual environment.
Opzione Docker. Esegui:
# NOTE: On Windows, you may need to enable the `Hyper-V` Wiwndows feature.
# NOTE2: On Windows, you may need to switch to `Linux Containers`.
$ docker build -f Dockerfile . -t zerologon
# This command run the zerologon test on the DC with domain VAGRANT in the address 192.168.33.10
$ docker run zerologon VAGRANT 192.168.33.10
Opzione VirtualEnv. Esegui:
$ python3 -m virtualenv zerologon
$ zerologon/Scripts/Activate.ps1
# NOTE: This may give you some issues with your firewall!!
$ pip install git+https://github.com/SecureAuthCorp/impacket
$ pip install -r requirements.txt
$ python zerologon_tester.py VAGRANT 192.168.33.10
L'output di questo attacco dovrebbe apparire più o meno così:

Questo script serve solo a testare la fattibilità dell'attacco; non sfrutta il server in nessun altro modo. Lo script non apporta alcuna modifica al DC. Se sei curioso di sapere come implementare un attacco PoC, consulta questo writeup o uno simile.
Le destinazioni dello script possono essere utilizzate per colpire un DC o un DC di backup. Probabilmente funziona anche contro un DC di sola lettura, ma non è stato testato. Il nome del DC deve essere il suo nome computer NetBIOS. Se questo nome non è corretto, lo script fallirà probabilmente con un errore STATUS_INVALID_COMPUTER_NAME. Un whitepaper su questa vulnerabilità sarà pubblicato qui.
NOTA: Se qualcosa va storto e ricevi un errore
STATUS_INVALID_COMPUTER_NAME, eseguinbtstat -A 192.168.33.10: questo ti darà un'idea di cosa sta succedendo su quell'indirizzo. In alternativa, puoi sempre verificare se la macchina è raggiungibile dal tuo host con un ping (ping 192.168.33.10).NOTA2: Se l'attacco fallisce, potrebbe essere che la macchina sia stata aggiornata con le patch di sicurezza. Controlla gli aggiornamenti e rimuovi qualsiasi cosa che assomigli a
Security Patchesdal 2020 in poi.