
Zerologon AutoExploit Tool | CVE-2020-1472
Il protocollo di crittografia vulnerabile viene implementato al posto del meccanismo di autenticazione nel protocollo Netlogon. Un attaccante non autenticato, sfruttando la vulnerabilità Zerologon, può impostare la password dell'account computer del Domain Controller su valore nullo (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0). In questo modo, l'attaccante può accedere al Domain Controller con le credenziali così create e ottenere le credenziali di altri utenti. Ottenendo le credenziali di utenti autorizzati, è possibile ottenere una sessione con privilegi elevati sul Domain Controller.
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
python3 ADZero.py dc_ip
Utilizzando lo strumento ADZero sviluppato dal team di Privia Security, è possibile ottenere una sessione Command Prompt con privilegi nt authority\system su un Domain Controller vulnerabile a Zerologon.
Eseguendo il comando python3 ADZero.py dc_ip, si ottiene una sessione Command Prompt sul Domain Controller con indirizzo IP dc_ip.
Lo strumento ADZero invia una richiesta di login SMB con credenziali nulle per ottenere le informazioni dc_name (nome computer) e dom_name (nome dominio) del Domain Controller target. Dalla risposta è possibile ricavare il dc_name (nome computer) e il dom_name (dominio) del Domain Controller.
Utilizzando dc_name (nome computer), com_name (account computer creato aggiungendo il simbolo $ alla fine del nome computer) e dc_ip (indirizzo IP del Domain Controller), viene attivata la vulnerabilità. Come risultato di una richiesta sul protocollo Netlogon Remote, la vulnerabilità viene innescata e la password di com_name (account computer) viene impostata su valore nullo (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0).
Utilizzando il modulo secretdump.py di Impacket con com_name (account computer), dom_name, dc_ip e la password vuota creata per com_name, viene effettuato il dump della password dell'utente Administrator dal Domain Controller come hash LM:NTLM. Inoltre, l'hash LM:NTLM ottenuto durante il dump viene scritto in un file chiamato out.
L'hash LM:NTLM ottenuto viene poi utilizzato con il modulo smbexec.py di Impacket, ottenendo così una sessione Command Prompt sul Domain Controller. La tecnica di usare il valore dell'hash LM:NTLM come password è chiamata Pass The Hash. Una sessione meterpreter sul Domain Controller può essere ottenuta utilizzando l'hash LM:NTLM scritto nel file out con il modulo exploit exploit/windows/smb/psexec di Metasploit Framework.
