
Ferramenta Zerologon AutoExploit | CVE-2020-1472
O protocolo de criptografia vulnerável é implementado no lugar do mecanismo de autenticação no protocolo Netlogon. Um atacante não autenticado pode, explorando a vulnerabilidade Zerologon, definir a senha da conta de computador do controlador de domínio como nula (null) (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0). Assim, com as credenciais criadas, o atacante pode acessar o controlador de domínio e obter as credenciais de outros usuários. Ao obter as credenciais de usuários autorizados, é possível obter uma sessão com privilégios elevados no controlador de domínio.
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
python3 ADZero.py dc_ip
Utilizando a ferramenta ADZero desenvolvida pela equipe da Privia Security, é possível obter uma sessão do Command Prompt com privilégios nt authority\system em um controlador de domínio vulnerável ao Zerologon.
Ao executar o comando python3 ADZero.py dc_ip, é obtida uma sessão do Command Prompt no controlador de domínio com o endereço IP dc_ip.
A ferramenta ADZero envia uma solicitação de login SMB com credenciais nulas para obter as informações dc_name (nome do computador) e dom_name (nome do domínio) do controlador de domínio alvo. A partir da resposta, é possível obter o dc_name (nome do computador) e dom_name (domínio) do controlador de domínio.
Usando as informações dc_name (nome do computador), com_name (conta de computador criada adicionando o símbolo $ ao final do nome do computador) e dc_ip (endereço IP do controlador de domínio), a vulnerabilidade é disparada. Como resultado da requisição feita no protocolo remoto Netlogon, a senha de com_name (conta de computador) é definida como nula (NT hash = 31d6cfe0d16ae931b73c59d7e0c089c0).
Utilizando o módulo secretdump.py, um dos módulos do Impacket, com as informações de com_name (conta de computador), dom_name, dc_ip e a senha nula gerada para com_name, o hash da senha do usuário Administrator do controlador de domínio é extraído no formato LM:NTLM. Além disso, o hash LM:NTLM obtido durante a extração é salvo em um arquivo chamado out.
Usando o hash LM:NTLM obtido com o módulo smbexec.py do Impacket, é obtida uma sessão do Command Prompt no controlador de domínio. A técnica de usar o valor do hash LM:NTLM como senha é chamada de Pass The Hash. Uma sessão do meterpreter no controlador de domínio pode ser obtida usando o valor do hash LM:NTLM salvo no arquivo out com o módulo de exploit exploit/windows/smb/psexec do Metasploit Framework.
