Active Directory – Brute Force Attack via Power Shell
Você sabe o que é um Brute Force Attack? Um ataque de força bruta é uma técnica na qual um invasor tenta obter acesso a um sistema testando todas as combinações possíveis de senhas ou chaves de criptografia. Esse método é caracterizado pela sua abordagem de tentativa e erro, em que o atacante utiliza recursos computacionais para automatizar o processo de testar diferentes combinações até encontrar a correta.
Geralmente, é utilizado em contextos de autenticação, como tentativas de login em sistemas online ou locais, e pode representar uma ameaça significativa se as senhas não forem suficientemente complexas ou se medidas de segurança adequadas não estiverem em vigor para detectar e prevenir tais ataques. Medidas como o bloqueio temporário após várias tentativas falhas e o uso de autenticação de dois fatores são comumente implementadas para mitigar os riscos associados a ataques de força bruta.
Preparando-se para o Hands on
Para realizar este tutorial, você precisa ter uma base sólida em Redes de Computadores e principalmente um nível intermediário em Windows Server e Controladores de Domínio, do contrário, apenas estará executando uma “Receita de Bolo” sem entender o Porquê.
???O cenário de teste foi implantado com uma instalação limpa do Windows Server 2022 + Controlador de Domínio, UO´S, Usuários, DNS e DNS REVERSO devidamente instalados, criados e configurados. Todos os protocolos e Firewall (Windows Defender) estão ATIVIDADOS! Ou seja, a proteção padrão do Sistema, nao consegue barrar este tipo de ataque que criei. ❗Lembrando, a ideia do post é expor vulnerabilidades para que possamos nos proteger.
⚠️ Importante! Coloquei um kit que precisaremos para realizar o ataque no Link abaixo:
Clique aqui para Download do KIT
Neste kit, temos o script em Power Shell e uma Wordlist para scanearmos as possíveis senhas.
O tutorial deste guia será dividido em 6 partes:
- Wordlist
- Configurações básicas
- Power Shell Scripts
- Descobrindo a senha de um usuário
- Descobrindo a senha de vários usuários
- Conclusão
Wordlist
Uma wordlist, também conhecida como lista de palavras, é um arquivo contendo uma coleção de palavras, senhas ou combinações de caracteres utilizadas em testes de segurança, especialmente em ataques de força bruta. As wordlists são utilizadas em ferramentas de cracking de senhas para tentar diferentes combinações até encontrar aquela que concede acesso não autorizado. Além de serem aplicadas em testes de segurança, wordlists também podem ser utilizadas em contextos diversos, como análise de dados linguísticos, pesquisa de palavras-chave e outras atividades relacionadas ao processamento de linguagem natural.
Existem diversas destas listas na Internet, geralmente com 10, 100 ou mais GIGAS, isso mesmo, GIGABYTES! Abrir este tipo de arquivo pelo Bloco de Notas do Windows, por exemplo, pode causar travamento na máquina.
Eu utilizo um Software para esta situação, chamado Pilot Edit.
Recomendo o download quando realizar este teste em ambientes Reais.
Configurações Básicas
Feito o download do kit na máquina, podemos começar o ataque. Eu descompactei a pasta diretamente no C:\.
Abra o Power Shell no Modo Active Directory Module.
Em seguida execute os seguintes comandos:
Write-Output $env:PSModulePath
IEX (Get-Content .\powerbrutelogon.psm1 -Raw)
Estes dois comandos farão com que o script seja executado.
Power Shell Scripts – Funções
Abaixo, as 3 principais funções do Script que importamos:
Invoke-BruteLogonAccount – Descobrir a senha de apenas um usuário
Invoke-BruteLogonList – Descobrir a senha de usuários específicos criados com duas wordlists, uma para os usuários e outra para as senhas.
Invoke-BruteAvailableLogons – Descobrir a senha de vários usuários ao mesmo tempo. (Não é eficaz em ambientes reais com endpoints e boas práticas de segurança)
Descobrindo a senha de um usuário
Fazendo uma varredura no cenário que montei, vamos atacar o usuário Valdívia que trabalha no departamento Financeiro.
Execute o comando abaixo para fazer o ataque a somente um usuário:
Invoke-BruteLogonAccount -Username “nome_do_usuario” -Wordlist “C:\bruteforce\Wordlist.txt”
Vejam que conseguimos detectar a senha do usuário Valdivia, que se chama “P@ssword”.
Descobrindo a senha de vários usuários
Execute o comando:
Invoke-BruteAvailableLogons -WordList “C:\bruteforce\Wordlist.txt”
Repare que agora ele fará uma busca de todos os usuários Locais e do Active Directory, dependendo da sua estrutura, isto levará um bom tempo de scan… Pode variar em minutos, horas ou até mesmo dias…
PS: Esse ataque em específico só é eficaz caso a máquina estiver sem um bom endpoint e as boas práticas de seguranças do Sistema não estiverem devidamente configuradas.
Olha só que interessante, foram descobertas as senhas de 10 usuários em um total de 12. Exceto os usuários Daniel Vasconcelos e Flávio Prado.
Conclusão
Os ataques de força bruta representam uma ameaça significativa, onde invasores tentam acessar sistemas ou contas por meio da tentativa sistemática de combinações de senhas. A proteção contra esses ataques é crucial para garantir a integridade, confidencialidade e disponibilidade dos dados.
Ao implementar medidas eficazes de segurança, como políticas de senha robustas, autenticação de dois fatores e monitoramento contínuo, as organizações e usuários individuais podem reduzir significativamente o risco de comprometimento de suas informações. Além disso, a conscientização sobre boas práticas de segurança cibernética desempenha um papel crucial, educando os usuários sobre a importância de senhas únicas e complexas.
Precisando de uma auditoria para se proteger desse e outros tipos de ataques e ameaças, entre em contato conosco. Estamos prontos para atendê-los!
Um comentário
Estava precisando disso há tempos, não achava nenhum conteúdo em português que fizesse isso em domínios, só conseguia em máquinas Locais.
Obrigado pelo conteudo!!! Muito rico e direto ao ponto!