Introdução ao Bloodhound
- Gustavo Viana
- Linux , Segurança da informação , Segurança ofensiva , Windows
- 28 de março de 2022
O BloodHound
é uma ferramenta para análise de relações do Active Directory (AD) que utiliza teoria dos grafos.
Através dos grafos é possível, por exemplo, identificar rapidamente caminhos que um atacante pode utilizar para tornar-se Domain Admin (DA) em um domínio.
Normalmente a descoberta destes caminhos seriam extremamente difíceis de serem encontrados, sendo necessário muito tempo de análise.
Quem pode se beneficiar com o uso dele?
Tanto equipes de segurança ofensiva (Pentesters e Red Teams) quanto de segurança defensiva (Blue Teams) podem se beneficiar com o uso da ferramenta.
As equipes de ataque a utilizam para identificar caminhos para escalação de privilégios e movimentação lateral de forma rápida.
As equipes de defesa podem melhorar a segurança do Active Directory com base nos resultados apresentados.
Instalação
Instalação do Neo4j
Antes de tudo, o Bloodhound utiliza o Neo4j como base de dados para realizar as análises. Para instalar o neo4j no Kali basta executar o comando abaixo:
sudo apt update; sudo apt install apt-transport-https neo4j
Agora, basta iniciar o neo4j:
sudo neo4j start
Em seguida, aguarde alguns segundos para o neo4j iniciar e, em seguida, acesse http://localhost:7474 em seu browser. Você verá uma tela semelhante a esta:
Em seguida, utilize o usuário neo4j e senha neo4j e clique em Connect. Será solicitado que você altere a sua senha. Digite a nova senha e clique em Change Password. Agora seu neo4j já está pronto para uso.
Instalação do Bloodhound
Pré-compilado
Os binários pré-compilados podem ser encontrados Releases Bloodhound .
Via apt no Kali
sudo apt install bloodhound
Gerando dados para input
A fim de gerar os dados, será necessário executar o SharpHound para coletar os objetos do Active Directory. Você pode:
Compilar o SharpHound, o código fonte (C#) encontra-se em: SharpHound Utilizar o binário pré-compilado, disponível em:
Uma vez que tenha o executável do SharpHound, basta executá-lo da seguinte maneira para coletar todos os dados (-c all):
Sharphound.exe -c all
Lembre-se de que o SharpHound possui diversos métodos de coleta (o all faz a coleta de todos os dados possíveis) e ainda há diversas outras configurações possíveis, incluindo opções para deixar a execução mais furtiva (stealth).
O output será algo semelhante a imagem abaixo.
Importando dados para o Bloodhound
Primeiramente, garanta que seu neo4j está rodando e inicie o Bloodhound:
sudo neo4j start; bloodhound &
Em seguida, aparecerá uma tela de login. Insira o usuário neo4j e a senha escolhida anteriormente.
Logo depois, você pode importar o arquivo .zip gerado pelo SharpHound arrastando-o para a área central do BloodHound:
Logo após, dependendo de quantos objetos do Active Directory foram mapeados, você poderá interagir com os dados, utilizando a opção Analysis no canto superior esquerdo ou no centro inferior Raw Query para identificar as possíveis fraquezas do(s) domínio(s) envolvidos em sua coleta.
No próximo POST veremos algumas queries importantes e como tirar proveito dos dados retornados no BloodHound!
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !