1. Introdução
1.1. Contexto sobre Active Directory (AD)
Quando falamos em segurança de redes corporativas, o Active Directory (AD) é um dos pilares centrais. O AD é essencial para a autenticação e autorização em ambientes Windows, servindo como a espinha dorsal para gerenciar usuários, computadores, e permissões dentro de uma organização. A sua importância vai além de simplesmente permitir que os funcionários façam login em suas máquinas; ele define quem tem acesso a quais recursos, e sob quais condições.
O Active Directory atua como um guardião das credenciais e dos acessos em uma rede, tornando-se, portanto, um alvo frequente para atacantes. Quando um invasor consegue comprometer o AD, ele não apenas obtém acesso a recursos críticos, mas pode também escalar privilégios e mover-se lateralmente pela rede, explorando as relações de confiança e permissões inadequadas que frequentemente existem em ambientes corporativos.
Entender o Active Directory e sua estrutura é fundamental para qualquer profissional de segurança, especialmente quando se trata de serviços de pentest. Uma vez que você compreende como o AD funciona, fica mais fácil identificar as vulnerabilidades e implementar medidas defensivas que realmente façam a diferença.
Neste artigo, vamos explorar o BloodHound, uma ferramenta poderosa que auxilia na identificação e mapeamento de caminhos de ataque dentro do Active Directory. Com ela, tanto ofensores quanto defensores podem visualizar as relações e permissões dentro do AD, permitindo uma análise mais profunda e a criação de estratégias mais eficazes para proteção ou ataque.
1.2. A importância do mapeamento de caminhos de ataque
Entender os caminhos de ataque no Active Directory (AD) é crucial para qualquer profissional de segurança que deseja proteger a infraestrutura da sua organização. Caminhos de ataque são as rotas que um invasor pode seguir para escalar privilégios ou se mover lateralmente dentro de uma rede, explorando permissões mal configuradas, relações de confiança e outras vulnerabilidades.
Por que o mapeamento desses caminhos é tão importante? Simplesmente porque, em muitos casos, um invasor pode começar com acesso limitado a um sistema e, através dessas rotas, pode comprometer contas de alto privilégio, como as de Domain Admins. Isso pode ocorrer de várias maneiras, como exploração de ACLs, abuso de sessões de usuários com privilégios elevados, ou até mesmo através de trusts mal configurados entre domínios.
O mapeamento de caminhos de ataque permite aos defensores identificar e remediar essas rotas antes que possam ser exploradas. Com uma visão clara de como as permissões e relacionamentos no AD se conectam, é possível ajustar configurações, fortalecer políticas de segurança e, assim, proteger a rede contra ataques sofisticados.
Neste artigo, ao explorar como o BloodHound pode ser usado durante um pentest de Active Directory para mapear esses caminhos, você vai ganhar ferramentas práticas e insights que podem ser aplicados diretamente na segurança do seu ambiente de Active Directory.
1.3. Introdução ao BloodHound
O BloodHound é uma ferramenta poderosa que revolucionou a forma como profissionais de segurança mapeiam e analisam vulnerabilidades em ambientes de Active Directory (AD). Criado por especialistas em segurança ofensiva, o BloodHound utiliza teoria dos grafos para revelar as complexas relações e permissões que existem dentro de um AD. Essas relações podem ser exploradas por invasores para comprometer redes inteiras, e o BloodHound oferece uma forma visual e prática de identificar e mitigar esses riscos.
A história do BloodHound começa com a necessidade de uma ferramenta que pudesse visualizar os caminhos de ataque possíveis em um AD, algo que era extremamente difícil de fazer de forma manual devido à complexidade e escala dos ambientes corporativos modernos. O BloodHound preencheu essa lacuna, permitindo que tanto ofensores (pentesters e red teams) quanto defensores (blue teams e analistas de segurança) pudessem entender melhor como as permissões e relações entre objetos do AD poderiam ser exploradas ou fortalecidas.
Usando o BloodHound, é possível mapear o caminho que um invasor pode seguir desde uma conta de usuário comum até uma conta de Domain Admin. Isso é feito durante um pentest de Active Directory coletando dados detalhados do AD, como grupos de segurança, permissões ACL, sessões de usuários, trusts entre domínios, e muito mais. Esses dados são então processados e visualizados em um grafo, onde cada nó e cada aresta representa uma entidade ou uma relação dentro do AD.
Ao longo deste artigo, vamos explorar como usar o BloodHound para entender e proteger melhor seu ambiente de Active Directory. Você aprenderá a instalar a ferramenta, coletar e importar dados, interpretar os resultados, e implementar defesas contra os caminhos de ataque identificados.
2. O Que é BloodHound?
2.1. Visão geral da ferramenta
O BloodHound é uma ferramenta especializada em mapear caminhos de ataque em ambientes de Active Directory (AD), utilizando a teoria dos grafos para representar visualmente as relações e permissões dentro de um AD. Com ele, é possível identificar como essas relações podem ser exploradas por atacantes para escalar privilégios ou mover-se lateralmente dentro da rede.
O BloodHound foi projetado tanto para equipes ofensivas, como pentesters e red teams, quanto para defensores, como analistas de segurança e blue teams. Sua principal função é ajudar a identificar vulnerabilidades que, muitas vezes, passam despercebidas em auditorias tradicionais, devido à complexidade do AD. Isso inclui permissões excessivas, grupos de segurança mal configurados, trusts entre domínios que não seguem boas práticas de segurança, entre outros.
A ferramenta é composta por dois componentes principais: o SharpHound, que é responsável pela coleta de dados do AD, e o Neo4j, um banco de dados orientado a grafos que armazena e permite a análise desses dados. A interface gráfica do BloodHound então permite que os usuários explorem essas relações e identifiquem potenciais caminhos de ataque de forma visual.
Ao longo deste artigo, veremos como instalar, configurar e usar o BloodHound para maximizar os resultados do seu pentest em Active Directory, identificando vulnerabilidades antes que possam ser exploradas por invasores.
2.2. Componentes principais
Para entender como o BloodHound funciona, é necessário conhecer seus principais componentes: o SharpHound e o Neo4j. Esses dois elementos trabalham em conjunto para coletar, armazenar e analisar os dados do Active Directory (AD), permitindo que você visualize as relações e permissões dentro do AD de forma gráfica e detalhada.
SharpHound
O SharpHound é o coletor de dados do BloodHound. Ele é responsável por varrer o ambiente de Active Directory e extrair informações críticas que serão usadas para mapear os caminhos de ataque. Entre os dados coletados estão:
- Grupos de segurança: Identifica as associações entre usuários e grupos, o que pode revelar contas com privilégios excessivos.
- ACLs (Access Control Lists): Coleta permissões configuradas nos objetos do AD, que podem ser exploradas para escalada de privilégios.
- Sessões de usuários: Verifica onde os usuários estão logados, o que é necessário para identificar possíveis vetores de movimento lateral.
- Trusts entre domínios: Mapeia as relações de confiança entre domínios, que podem ser exploradas para ataques em ambientes com múltiplos domínios.
O SharpHound pode ser executado de várias maneiras, dependendo da necessidade, desde uma coleta completa de todos os dados até operações mais furtivas que minimizam a detecção.
Neo4j
O Neo4j é o banco de dados orientado a grafos utilizado pelo BloodHound. Ele armazena todas as informações coletadas pelo SharpHound e permite que essas informações sejam representadas e analisadas em forma de grafo. A teoria dos grafos é a base para entender como diferentes objetos no AD estão conectados e como essas conexões podem ser exploradas por um atacante.
Cada nó no grafo representa uma entidade, como um usuário, um computador ou um grupo, e cada aresta representa uma relação, como uma associação de grupo ou uma permissão ACL. Essa visualização permite que você identifique rapidamente caminhos de ataque e pontos fracos na configuração do AD.
Em resumo, o SharpHound coleta os dados e o Neo4j organiza e apresenta esses dados de forma a permitir uma análise profunda e visual dos caminhos de ataque no Active Directory.
2.2.1 BloodHound Community Edition (CE)
O BloodHound Community Edition (CE) evoluiu para atender às necessidades de segurança em ambientes híbridos, onde o Active Directory (AD) on-premises se integra com o Azure. Com a nova arquitetura containerizada e uma API REST aprimorada, o BloodHound CE facilita a análise e mapeamento de caminhos de ataque que cruzam entre esses ambientes, permitindo identificar vetores que exploram tanto o AD quanto o Azure.
Diferenças de Arquitetura A arquitetura do BloodHound CE agora utiliza containers para simplificar a implantação e garantir compatibilidade, com bancos de dados Postgres e Neo4J operando em harmonia. A nova API REST permite uma automação mais eficiente e interações seguras com os dados, facilitando a análise de cenários complexos onde os caminhos de ataque envolvem múltiplos domínios e florestas interconectadas.
2.3. Instalação do BloodHound Community Edition (CE)
-
Certifique-se de que o Docker está instalado em sua máquina. Se ainda não estiver, siga as instruções no site oficial do Docker.
-
Execute o comando de instalação:
No terminal, execute o seguinte comando para baixar e iniciar o BloodHound CE:
curl -L https://ghst.ly/getbhce | docker compose -f - up
-
Localize a senha gerada:
Após a execução do comando acima, o Docker Compose exibirá uma senha gerada aleatoriamente no terminal. Guarde essa senha, pois você precisará dela para fazer login.
-
Acesse a interface web do BloodHound CE:
No seu navegador, acesse o seguinte endereço:
http://localhost:8080/ui/login
Faça login utilizando o nome de usuário
admin
e a senha gerada no passo 2.
Para mais detalhes ou configurações avançadas, consulte as instruções oficiais do BloodHound CE.
3. Usando o BloodHound
3.1. Coleta de dados com SharpHound
Para começar a usar o BloodHound, a coleta de dados com o SharpHound ou outras ferramentas de coleta citadas abaixo é uma das etapas mais relevantes do pentest de rede AD. O SharpHound é a ferramenta que permite extrair informações valiosas do Active Directory (AD), como sessões de usuários, grupos de segurança, permissões (ACLs), e muito mais. Esses dados são necessários para mapear os caminhos de ataque que podem existir em sua rede.
3.1.1. Visão Geral do SharpHound
O SharpHound é o coletor de dados utilizado pelo BloodHound para mapear as relações e permissões no AD. Ele pode ser executado em diferentes modos, permitindo que você colete informações de maneira abrangente ou focada, dependendo das necessidades específicas de sua análise de segurança. O SharpHound interage diretamente com os objetos do AD, coletando dados que serão posteriormente processados e visualizados no BloodHound.
3.1.2. Métodos de Coleta do SharpHound
O SharpHound oferece vários métodos de coleta, cada um focado em diferentes aspectos do AD. Abaixo estão os métodos mais comuns e suas respectivas funções:
-
All:
- Descrição: Coleta todas as informações possíveis dentro do AD, incluindo grupos de segurança, permissões (ACLs), sessões de usuários, trusts entre domínios, e muito mais.
- Quando usar: Ideal para uma visão completa do ambiente, especialmente útil em auditorias de segurança iniciais ou quando o objetivo é uma análise profunda.
-
DCOnly:
- Descrição: Foca exclusivamente em dados disponíveis nos Controladores de Domínio (Domain Controllers).
- Quando usar: Útil em situações onde se deseja limitar a coleta de dados apenas às informações críticas armazenadas nos DCs.
-
Stealth:
- Descrição: Modifica o método de coleta para ser o mais discreto possível, minimizando o risco de detecção por sistemas de segurança.
- Quando usar: Ideal para operações de Red Team ou quando a furtividade é um requisito.
-
Session:
- Descrição: Coleta informações sobre sessões ativas de usuários, incluindo onde usuários específicos estão logados. Esse método pode ser configurado para repetir a coleta para capturar sessões dinâmicas que mudam frequentemente.
- Quando usar: Para monitorar o movimento de usuários privilegiados e mapear possíveis vetores de ataque lateral.
-
ACL:
- Descrição: Coleta permissões configuradas nos objetos do AD, especialmente aquelas que podem ser abusadas para escalada de privilégios.
- Quando usar: Importante quando o foco é identificar permissões inadequadas que podem representar riscos à segurança.
-
GPOLocalGroup:
- Descrição: Correlaciona GPOs com computadores para determinar a associação em grupos locais relevantes.
- Quando usar: Útil para auditorias que buscam verificar a aplicação e o impacto das GPOs em um ambiente de domínio.
-
Trusts:
- Descrição: Coleta relações de confiança entre domínios, que podem ser exploradas para ataques em ambientes com múltiplos domínios.
- Quando usar: Em ambientes complexos com múltiplos domínios ou florestas de AD.
-
LocalAdmin, RDP, DCOM, PSRemote:
- Descrição: Coleta informações sobre membros dos grupos locais em computadores do domínio, como administradores locais, usuários de RDP, DCOM e Gerenciamento Remoto.
- Quando usar: Importante para mapear a superfície de ataque relacionada a administração local e acessos remotos.
3.1.3. Flags Importantes e Configurações Avançadas
O SharpHound oferece uma série de flags que permitem configurar e otimizar a coleta de dados de acordo com as necessidades do ambiente:
-
Stealth:
- Descrição: Executa a coleta de dados de maneira furtiva, evitando a detecção.
- Exemplo de uso:
SharpHound.exe --CollectionMethods Session --Stealth
- Quando usar: Em operações onde a detecção pode comprometer a coleta ou gerar alertas indesejados.
-
ExcludeDomainControllers (ExcludeDCs):
- Descrição: Instrui o SharpHound a evitar tocar em Controladores de Domínio, focando a coleta em outras partes do AD.
- Exemplo de uso:
SharpHound.exe -d contoso.local --ExcludeDCs
- Quando usar: Para evitar detecção por ferramentas de monitoramento que focam em atividades nos DCs.
-
SearchBase:
- Descrição: Define uma DistinguishedName base para iniciar a busca, limitando a coleta a uma área específica do AD.
- Exemplo de uso:
SharpHound.exe --SearchBase "OU=New York,DC=Contoso,DC=Local"
- Quando usar: Útil para segmentar a coleta em grandes ambientes, permitindo foco em áreas específicas.
-
LDAPFilter:
- Descrição: Filtra a coleta de informações de acordo com um filtro LDAP especificado.
- Exemplo de uso:
SharpHound.exe --LDAPFilter "(CN=*,OU=New York,DC=Contoso,DC=Local)"
- Quando usar: Quando se deseja coletar dados de um subconjunto muito específico de objetos, como uma unidade organizacional ou grupo.
-
RealDNSName:
- Descrição: Resolve problemas onde o DNS do AD não corresponde ao DNS real, ajudando o SharpHound a localizar sistemas no DNS correto.
- Exemplo de uso:
SharpHound.exe --RealDNSName COMPANY.COM
- Quando usar: Em ambientes onde o DNS não é sincronizado com o AD.
-
Loop e LoopDuration:
- Descrição: Repetição da coleta de métodos baseados em computadores, útil para capturar dados dinâmicos.
- Exemplo de uso:
SharpHound.exe --CollectionMethods LocalGroup --Loop
- Quando usar: Quando se deseja capturar sessões de usuários que mudam frequentemente.
-
OutputDirectory e OutputPrefix:
- Descrição: Define diretórios de saída e prefixos para os arquivos gerados, organizando melhor os dados coletados.
- Exemplo de uso:
SharpHound.exe --OutputDirectory C:\temp\ --OutputPrefix "Audit"
- Quando usar: Útil para grandes auditorias, onde a organização dos dados é essencial.
-
CollectAllProperties:
- Descrição: Coleta todas as propriedades LDAP de cada objeto enumerado.
- Exemplo de uso:
SharpHound.exe --CollectAllProperties
- Quando usar: Quando se deseja uma coleta detalhada e abrangente de todos os dados disponíveis no AD.
3.1.4. Exemplos de Uso e Melhores Práticas
Abaixo estão alguns cenários comuns e dicas de otimização para o uso do SharpHound:
-
Cenários Comuns:
- Coleta inicial em um ambiente desconhecido: Utilize o método
All
para obter uma visão completa e inicial do ambiente. - Operações Red Team: Use
Stealth
eExcludeDCs
para minimizar detecção e evitar comprometer a operação. - Foco em permissões específicas: Aplique
ACL
eLDAPFilter
para identificar permissões perigosas ou inadequadas.
- Coleta inicial em um ambiente desconhecido: Utilize o método
-
Dicas de Otimização:
- Segmentação por OU: Utilize
SearchBase
para acelerar a coleta em grandes ambientes, focando em partes específicas do AD. - Coleta repetitiva de sessões: Use
Loop
para garantir que todas as sessões de usuários sejam capturadas, especialmente em ambientes com alta rotação de usuários.
- Segmentação por OU: Utilize
Com essas práticas e a correta utilização do SharpHound, você estará pronto para realizar uma coleta de dados eficiente e detalhada em seu pentest, garantindo que o BloodHound tenha as informações necessárias para mapear os caminhos de ataque no seu Active Directory.
3.2. Importação de dados no BloodHound
Depois de realizar a coleta de dados com o SharpHound, o próximo passo no uso do BloodHound é importar esses dados para análise. Os dados coletados representam as diversas relações e permissões dentro do Active Directory (AD), e é através dessa importação que o BloodHound pode começar a mapear os possíveis caminhos de ataque.
Processo de importação
-
Localização dos arquivos de dados:
- Após a execução do SharpHound, ele gera vários arquivos JSON, normalmente compactados em um arquivo ZIP. Esses arquivos contêm todas as informações coletadas, como grupos de segurança, permissões (ACLs), sessões de usuários, entre outros.
-
Importando os dados:
- Para importar os dados, abra a interface gráfica do BloodHound e localize a opção de importação. Normalmente, isso pode ser feito na tela inicial do BloodHound, onde há uma área dedicada à importação de dados.
- Arraste e solte o arquivo ZIP gerado pelo SharpHound na interface do BloodHound ou clique para selecionar o arquivo manualmente. O BloodHound então começará a processar os dados.
-
Processamento dos dados:
- Durante o processo de importação, o BloodHound descompacta e processa os arquivos JSON, inserindo todas as informações no banco de dados Neo4j. Dependendo do tamanho do ambiente e da quantidade de dados coletados, esse processo pode levar algum tempo.
- É importante garantir que o Neo4j esteja funcionando corretamente durante essa fase, pois é nele que os dados serão armazenados e organizados.
Otimização da importação
-
Segmentação de dados:
- Em ambientes grandes, é possível que a quantidade de dados seja significativa. Para otimizar o processo de importação e análise, considere segmentar os dados em partes menores, importando os arquivos ZIP individualmente, se necessário.
-
Verificação de integridade:
- Após a importação, é recomendável verificar a integridade dos dados importados, garantindo que todas as informações críticas foram processadas corretamente. Isso pode ser feito revisando os gráficos e consultas iniciais para ver se todas as entidades esperadas (como usuários, grupos, máquinas) estão presentes.
-
Organização do banco de dados:
- Mantenha o banco de dados Neo4j organizado. Se você realizar múltiplas importações, considere usar prefixos nos arquivos ou diretórios para diferenciar cada conjunto de dados. Isso facilita a análise e evita confusão durante consultas complexas.
Benefícios da importação completa
-
Visão global e detalhada:
- Com todos os dados devidamente importados, o BloodHound permite uma visão completa das interconexões dentro do AD, oferecendo a possibilidade de identificar rapidamente pontos críticos de vulnerabilidade.
-
Análise contínua:
- A importação de novos dados pode ser feita regularmente, permitindo que o BloodHound seja usado para monitoramento contínuo do ambiente, especialmente em operações de defesa ativa onde o ambiente está em constante mudança.
Com o processo de importação concluído, você estará pronto para começar a explorar e analisar os caminhos de ataque mapeados no Active Directory usando o BloodHound.
3.3. Representação gráfica dos caminhos de ataque
Após a importação dos dados para o BloodHound, o próximo passo é utilizar a interface gráfica da ferramenta para analisar os caminhos de ataque potenciais dentro do Active Directory (AD). A representação gráfica é um dos maiores pontos fortes do BloodHound, pois permite que você visualize as complexas relações entre usuários, grupos, permissões e outros objetos no AD de uma forma clara e intuitiva.
Visualização gráfica no BloodHound
-
Nós e arestas:
- No BloodHound, cada entidade do AD (como usuários, computadores, grupos) é representada como um nó. As conexões ou relações entre esses nós, como permissões ACL ou associações de grupos, são representadas por arestas.
- Nós: Podem representar objetos como
User
,Computer
,Group
,Domain
, entre outros. - Arestas: Representam relações como
MemberOf
,AdminTo
,CanRDP
,HasSession
, etc.
-
Exploração dos caminhos de ataque:
- O BloodHound permite que você explore os caminhos de ataque clicando em um nó e examinando todas as conexões possíveis a partir desse ponto. Por exemplo, você pode começar com uma conta de usuário comum e seguir as conexões até identificar como essa conta pode ser usada para comprometer uma conta de Domain Admin.
- Exemplo prático: Um usuário com privilégios limitados pode ter permissões em um grupo que, por sua vez, tem permissões em outro grupo com acesso privilegiado. Seguindo esses passos, o BloodHound ajuda a revelar como um atacante poderia explorar essas permissões em cadeia.
Consultas predefinidas e personalizadas
-
Consultas predefinidas:
- O BloodHound vem com uma série de consultas predefinidas que ajudam a identificar rapidamente caminhos de ataque comuns. Essas consultas incluem:
- Find Shortest Paths to Domain Admins: Identifica as rotas mais curtas que levam a contas de Domain Admins.
- Find Principals with DCSync Rights: Revela usuários e grupos com direitos de replicação de dados do DC, uma prática frequentemente usada em ataques avançados.
- Find Computers Where Domain Admins Are Logged In: Mapeia os computadores onde contas de Domain Admin estão ativas, indicando possíveis alvos para movimento lateral.
- O BloodHound vem com uma série de consultas predefinidas que ajudam a identificar rapidamente caminhos de ataque comuns. Essas consultas incluem:
-
Consultas Cypher personalizadas:
- Além das consultas predefinidas, o BloodHound permite que você crie consultas personalizadas utilizando a linguagem Cypher, que é nativa do Neo4j. Isso é especialmente útil para análises específicas que vão além das consultas padrão.
- Exemplo de consulta Cypher personalizada:
MATCH (n:User)-[r:AdminTo]->(m:Computer) RETURN n.name, type(r), m.name
- Essa consulta retorna todos os usuários que têm direitos administrativos em computadores, ajudando a identificar pontos de entrada que podem ser explorados para escalada de privilégios.
Interpretação dos resultados
-
Identificação de pontos fracos:
- Ao analisar o grafo, é possível identificar rapidamente pontos de vulnerabilidade. Por exemplo, você pode ver se um grupo com permissões elevadas tem muitos membros, aumentando a superfície de ataque.
-
Visualização de impacto:
- A representação gráfica permite entender o impacto potencial de uma exploração específica. Se um nó crítico, como uma conta de Domain Admin, está diretamente conectado a várias arestas, isso indica uma alta probabilidade de comprometimento se uma das permissões intermediárias for explorada.
-
Exportação e relatórios:
- Após analisar os dados, o BloodHound permite exportar os resultados em diferentes formatos, como JSON ou CSV, para criação de relatórios ou integração com outras ferramentas de segurança.
Ao dominar a interface gráfica do BloodHound e as consultas Cypher, você estará capacitado para realizar análises detalhadas e identificar os caminhos de ataque mais críticos dentro do seu Active Directory, permitindo uma resposta proativa e eficaz.
3.4. Outras Ferramentas de Coleta de Dados
bloodhound.py e bloodhound-python
-
bloodhound.py: Uma versão em Python do coletor, projetada para ser executada em sistemas não-Windows, como Linux. Utilizado para coletar dados de ambientes AD de forma remota, especialmente quando a execução do SharpHound não é viável.
- Cenário de uso: Ideal em ambientes com acesso limitado e necessidade de execução a partir de um sistema Linux, ou para evitar detecção em sistemas Windows.
-
bloodhound-python: Similar ao bloodhound.py, esta ferramenta em Python é utilizada em diversos sistemas operacionais, oferecendo flexibilidade para coleta de dados sem depender de infraestruturas Windows.
- Cenário de uso: Recomendado para coleta de dados remota e furtiva, sem necessidade de ferramentas nativas do Windows.
sharphound.ps1 e sharphound.bat
-
sharphound.ps1: Script em PowerShell, uma variante do SharpHound para execução direta em sistemas Windows. Útil em ambientes onde a execução de executáveis é monitorada, mas o uso de scripts PowerShell é permitido.
- Cenário de uso: Ideal para ambientes onde executáveis .exe geram alertas, mas scripts PowerShell são permitidos, permitindo execução embutida em scripts administrativos.
-
sharphound.bat: Versão em lote (batch) do SharpHound para execução em ambientes Windows. Útil em operações automatizadas.
- Cenário de uso: Usado em processos automatizados ou scripts de execução em lote.
Coleta Manual de Dados
-
Queries LDAP: Queries LDAP personalizadas para extração de informações específicas do AD, como associações de grupos, permissões de usuários, e políticas, complementando a coleta automatizada.
- Cenário de uso: Útil para auditorias focadas em aspectos específicos do AD ou validação manual dos dados coletados automaticamente.
-
PowerShell para enumeração manual: Scripts PowerShell, como
Get-ADUser
,Get-ADGroup
, eGet-ACL
, usados para enumeração manual detalhada de permissões e configurações no AD.- Cenário de uso: Recomendado para auditorias detalhadas e personalizadas, com controle granular sobre coleta e análise dos dados.
4. Identificação de Caminhos de Ataque
4.1. O que são caminhos de ataque?
Os caminhos de ataque em um ambiente de Active Directory (AD) são as sequências de etapas que um invasor pode seguir para escalar privilégios ou mover-se lateralmente dentro da rede. Esses caminhos exploram as permissões e as relações existentes entre objetos no AD, como usuários, grupos, e computadores, para atingir contas ou sistemas de alto valor, como um Domain Admin.
Entender e mapear esses caminhos permitirá antecipar e bloquear potenciais ataques. Em muitos casos, um invasor pode começar com acesso a uma conta de usuário comum e, ao explorar permissões configuradas incorretamente ou relações de confiança mal gerenciadas, pode eventualmente obter acesso a contas de alto privilégio.
No BloodHound, esses caminhos são representados graficamente, permitindo que você veja as conexões entre diferentes objetos e como essas conexões podem ser exploradas. Através dessa visualização, é possível identificar pontos fracos na configuração do AD que podem ser corrigidos para prevenir que esses caminhos de ataque sejam usados por invasores.
- Exemplo prático: Um invasor que compromete uma conta de serviço pode usar as permissões dessa conta para acessar um servidor, onde, por meio de outra permissão configurada incorretamente, pode ganhar acesso administrativo. Esse tipo de caminho de ataque pode ser facilmente identificado e visualizado no BloodHound.
Importância de identificar caminhos de ataque
A identificação de caminhos de ataque não é apenas uma prática defensiva; é uma abordagem proativa para a segurança do AD. Ao entender como um invasor pode navegar pela rede, as equipes de segurança podem implementar controles mais rígidos e revisar permissões para garantir que os caminhos críticos sejam bloqueados.
Além disso, o mapeamento desses caminhos permite priorizar as ações de mitigação. Em vez de tentar corrigir todas as permissões no AD, as equipes podem se concentrar nas áreas mais vulneráveis, onde um comprometimento teria o maior impacto.
Neste contexto, o BloodHound se torna uma ferramenta indispensável, permitindo uma análise profunda e contínua dos caminhos de ataque dentro do Active Directory, ajudando a proteger os ativos mais valiosos da organização.
4.2. Encontrando caminhos para Domain Admins
No contexto de um Active Directory (AD), as contas de Domain Admins representam o nível mais alto de privilégio. Consequentemente, essas contas são os principais alvos para qualquer invasor que tenha conseguido um ponto de apoio dentro da rede, assim como para pentesters em um pentest com foco em AD. Encontrar e bloquear os caminhos que levam a essas contas é uma das etapas mais críticas para proteger um ambiente AD.
O BloodHound facilita essa tarefa através de sua capacidade de mapear e visualizar os caminhos de ataque que podem ser usados para escalar privilégios até uma conta de Domain Admin. Ao identificar esses caminhos, é possível tomar medidas proativas para bloquear ou mitigar essas vulnerabilidades.
Técnicas para identificar caminhos para Domain Admins
-
Consulta “Find Shortest Paths to Domain Admins”:
- Esta é uma das consultas predefinidas mais poderosas no BloodHound. Ela permite que você identifique rapidamente as rotas mais curtas que um invasor poderia usar para chegar a uma conta de Domain Admin.
- Como funciona: A consulta analisa todas as relações e permissões configuradas no AD e retorna o caminho mais direto entre um usuário comum ou outro objeto e uma conta de Domain Admin.
- Exemplo de uso: Um usuário com permissões de administrador local em um servidor pode usar essa posição para comprometer uma conta de serviço, que por sua vez tem direitos de execução em outro servidor, onde uma conta de Domain Admin está ativa. Esse encadeamento de permissões e acessos é exibido claramente na interface gráfica do BloodHound.
-
Consultas Cypher personalizadas:
- Para situações específicas, onde as consultas predefinidas não são suficientes, você pode criar consultas personalizadas usando a linguagem Cypher, nativa do Neo4j.
- Exemplo de consulta personalizada: Se você quiser encontrar todos os usuários que têm permissões de administrador em servidores onde contas de Domain Admin estão ativas, você pode utilizar uma consulta como:
MATCH (n:User)-[r:AdminTo]->(m:Computer)<-[s:HasSession]-(d:User {name:'Domain Admins'}) RETURN n.name, m.name, d.name
- Benefícios: Essas consultas permitem uma análise mais granular e direcionada, possibilitando a identificação de caminhos de ataque que possam não ser óbvios em uma visualização mais ampla.
Interpretação dos resultados
Ao encontrar caminhos que levam a contas de Domain Admin, precisamos entender e agir sobre os resultados:
- Avaliação do risco: Nem todos os caminhos identificados representam um risco imediato. Avalie a facilidade com que um invasor pode explorar essas rotas e priorize as correções com base na criticidade dos ativos envolvidos.
- Correção de permissões: Revise e ajuste as permissões identificadas como vulneráveis. Isso pode incluir a remoção de membros desnecessários de grupos privilegiados, a aplicação de restrições adicionais em ACLs, ou o reforço das políticas de grupo (GPOs).
- Monitoramento contínuo: Use o BloodHound como parte de um processo contínuo de segurança, reavaliando regularmente os caminhos de ataque à medida que o ambiente AD evolui e novas vulnerabilidades são introduzidas.
Identificar e mitigar caminhos que levam a contas de Domain Admins é um dos aspectos mais críticos da segurança do Active Directory. Usando o BloodHound, você pode transformar uma tarefa complexa em um processo gerenciável e altamente eficaz.
4.3. BloodHound CE: Capacidades de Caminhos de Ataque Híbridos
O BloodHound Community Edition (CE) introduz capacidades inovadoras para mapear caminhos de ataque híbridos que conectam o Active Directory (AD) on-premises ao ambiente de Azure (Entra ID). Esses caminhos híbridos são relevantes à medida que as empresas adotam cada vez mais infraestruturas híbridas, onde as permissões e identidades são compartilhadas entre o AD local e a nuvem.
Esses caminhos híbridos podem ser explorados em cenários complexos, como a sincronização de contas de usuário do AD para o Azure. Por exemplo, uma conta comprometida no AD pode ser usada para ganhar acesso a privilégios no Azure, ou vice-versa, criando uma cadeia de comprometimento que atravessa tanto o ambiente on-premises quanto o ambiente em nuvem.
Um aspecto importante das capacidades híbridas é que o BloodHound CE permite visualizar como essas sincronizações de contas podem ser exploradas para realizar movimentos laterais e escaladas de privilégios entre os dois ambientes. Isso pode incluir ataques como a elevação de privilégios de uma conta no AD para uma conta administrativa no Azure, que, por sua vez, pode ser usada para comprometer outros recursos na nuvem e até mesmo retornar ao ambiente on-premises com privilégios elevados.
Recomendamos o artigo da Security Boulevard, que mostra como a introdução dessas capacidades híbridas pelo BloodHound CE representa um avanço significativo na capacidade de entender ambientes que envolvem múltiplas plataformas e como trabalhar nesses sistemas ( Security Boulevard – Hybrid Attack Paths, New Views and your favorite dog learns an old trick ) .
4.4. Análise de exemplos de caminhos de ataque
Para compreender plenamente o potencial do BloodHound e sua aplicação na segurança de ambientes Active Directory (AD), abaixo listamos alguns exemplos práticos de como um pentester pode explorar caminhos de ataque identificados pela ferramenta. Esses exemplos ajudam a ilustrar como permissões mal configuradas, relações entre objetos e falta de segmentação adequada podem ser explorados durante testes de penetração para comprometer a rede.
Exemplo 1: Escalada de Privilégios através de ACLs Abusáveis
Uma das vulnerabilidades comuns no AD envolve a configuração inadequada de Access Control Lists (ACLs). Considere o seguinte cenário:
- Situação inicial: Um usuário comum possui permissões básicas de leitura em uma unidade organizacional (OU). No entanto, através do BloodHound, é identificado que essa conta tem a capacidade de modificar permissões (WriteDACL) em um objeto crítico do AD, como um servidor ou uma conta de serviço.
- Exploração: O invasor pode modificar as permissões desse objeto para adicionar sua conta a um grupo com maiores privilégios, como o grupo de administradores locais do servidor. Com isso, ele ganha acesso a esse servidor e pode executar comandos com privilégios elevados.
- Resultado: Esse acesso pode ser usado para capturar credenciais de contas de alto privilégio que estão logadas no servidor ou para executar outras ações que facilitem a escalada de privilégios dentro do AD.
Exemplo 2: Movimento Lateral usando Sessões de Usuários
Outro cenário comum envolve o movimento lateral dentro da rede, utilizando sessões de usuários privilegiados:
- Situação inicial: O BloodHound revela que uma conta de serviço tem permissões de acesso remoto (RDP) em vários servidores. Ao investigar as sessões ativas nesses servidores, é identificado que um usuário com privilégios elevados, como um Domain Admin, está logado em um desses servidores.
- Exploração: O invasor compromete a conta de serviço com acesso RDP e usa essa conta para acessar o servidor onde o Domain Admin está logado. Uma vez dentro, ele pode utilizar técnicas como Pass-the-Hash ou Pass-the-Ticket para roubar as credenciais do Domain Admin e ganhar controle total sobre o AD.
- Resultado: A partir desse ponto, o invasor pode realizar uma série de ações destrutivas, desde a criação de novas contas administrativas até a exfiltração de dados sensíveis, comprometendo toda a infraestrutura da organização.
Exemplo 3: Exploração de Trusts entre Domínios
Em ambientes com múltiplos domínios, as relações de confiança (trusts) entre esses domínios podem se tornar um vetor de ataque:
- Situação inicial: O BloodHound identifica que existe uma relação de confiança entre dois domínios, e um dos domínios confiáveis tem permissões excessivas no domínio principal.
- Exploração: Um invasor que compromete uma conta no domínio confiável pode usar essas permissões excessivas para executar comandos ou modificar configurações no domínio principal. Isso pode incluir a adição de usuários ao grupo de Domain Admins do domínio principal.
- Resultado: Esse tipo de exploração pode permitir que o invasor comprometa o domínio principal a partir de um domínio secundário, o que é especialmente perigoso em organizações com arquiteturas complexas de AD.
Exemplo 4: Movimentação Lateral Entre Florestas com Usuários de Baixo Privilégio
Situação inicial: O BloodHound identifica um usuário que, embora tenha permissões básicas, é membro de um grupo Foreign com permissões de leitura ou acesso a sistemas em uma floresta diferente.
Exploração: O invasor compromete essa conta de baixo privilégio na floresta atual e utiliza as permissões limitadas dessa conta para acessar recursos na floresta externa, como servidores ou compartilhamentos de arquivos. Ao explorar vulnerabilidades nesses sistemas acessíveis, o invasor pode capturar credenciais de contas com mais privilégios na floresta local ou naquela outra floresta, permitindo movimentação lateral e, potencialmente, escalada de privilégios.
Resultado: O invasor, inicialmente restrito a uma conta de baixo privilégio em uma floresta, consegue mover-se lateralmente entre florestas e escalar seus privilégios, utilizando as conexões e permissões entre as florestas para comprometer recursos em locais diferentes.
Lições Aprendidas e Ações Recomendadas
- Revisão de ACLs: É crucial revisar regularmente as ACLs dentro do AD para garantir que as permissões são estritamente necessárias e que não existem caminhos de escalada de privilégios não intencionais.
- Monitoramento de Sessões: O monitoramento contínuo das sessões de usuários, especialmente de contas privilegiadas, pode ajudar a detectar e bloquear tentativas de movimento lateral.
- Gerenciamento de Trusts: Em ambientes com múltiplos domínios, é fundamental gerir cuidadosamente as relações de confiança, minimizando as permissões concedidas e aplicando o princípio do menor privilégio.
Através desses exemplos práticos, fica claro como o BloodHound pode ser uma ferramenta poderosa para identificar e mitigar os caminhos de ataque dentro de um ambiente Active Directory, fortalecendo significativamente a postura de segurança da organização.
5. Como BloodHound Funciona
5.1. O que o BloodHound de fato executa?
O BloodHound é uma ferramenta projetada por especialistas em pentests e segurança ofensiva para mapear as relações e permissões dentro de um Active Directory (AD), utilizando dados coletados pelo SharpHound. Para entender como o BloodHound funciona, é essencial analisar as operações executadas pelo SharpHound durante a coleta de dados e como esses dados são usados para identificar caminhos de ataque.
Funções nativas do Active Directory exploradas pelo BloodHound
O BloodHound se aproveita de várias funções nativas do AD para realizar suas análises, explorando principalmente:
-
Security Descriptors (SDs) e Access Control Lists (ACLs):
- Descrição: O AD utiliza SDs para definir permissões sobre objetos, e essas permissões são configuradas através de ACLs. O BloodHound analisa essas listas para identificar permissões excessivas ou configuradas incorretamente, que podem permitir a escalada de privilégios.
- Exploração: Um invasor pode usar permissões WriteDACL para modificar as ACLs de um objeto, concedendo a si mesmo ou a outros usuários permissões administrativas.
-
Active Directory Users and Computers (ADUC):
- Descrição: O ADUC é a ferramenta usada para gerenciar objetos no AD, incluindo contas de usuários, grupos, e computadores. O BloodHound coleta dados sobre como esses objetos estão relacionados, como as associações entre grupos e as permissões delegadas.
- Exploração: A análise dessas relações pode revelar cadeias de permissões que levam a contas de alto privilégio, como contas de Domain Admin.
-
Session Enumeration:
- Descrição: O AD mantém registros de sessões de usuários, indicando onde e quando as contas de usuário estão logadas. O BloodHound coleta esses dados para identificar possíveis vetores de movimento lateral.
- Exploração: Se um usuário com privilégios elevados está logado em um sistema vulnerável, um invasor pode comprometer esse sistema e usar as sessões ativas para obter acesso a essas credenciais privilegiadas.
Comandos específicos do SharpHound
Durante a coleta de dados, o SharpHound executa uma série de comandos para extrair informações detalhadas do AD. Alguns dos comandos mais relevantes incluem:
-
Coleta de ACLs:
- Comando:
SharpHound.exe -c ACL
- Descrição: Este comando coleta permissões configuradas nos objetos do AD. Isso inclui permissões que podem ser exploradas para ganhar controle sobre objetos críticos, como usuários, grupos ou computadores.
- Comando:
-
Coleta de sessões de usuários:
- Comando:
SharpHound.exe -c Session
- Descrição: Este comando coleta informações sobre onde os usuários estão logados, permitindo que o BloodHound mapeie potenciais vetores de movimento lateral.
- Comando:
-
Coleta de Group Membership:
- Comando:
SharpHound.exe -c Group
- Descrição: Coleta as associações entre usuários e grupos, para entender como as permissões são distribuídas no AD.
- Comando:
-
Coleta de Trusts entre domínios:
- Comando:
SharpHound.exe -c Trusts
- Descrição: Mapeia as relações de confiança entre domínios no AD, identificando como um domínio pode influenciar ou comprometer outro.
- Comando:
5.2. Contas do Active Directory
Dentro de um ambiente de Active Directory (AD), as contas padrão desempenham papéis cruciais na administração e operação da rede. Compreender essas contas é essencial para garantir que elas estejam devidamente protegidas e configuradas para minimizar os riscos de segurança. Vamos explorar as principais contas padrão do AD e suas funções.
1. Administrator
- Função: A conta
Administrator
é a conta de superusuário do AD e tem controle total sobre o domínio. Ela pode modificar qualquer configuração, acessar qualquer recurso e conceder ou revogar permissões a outras contas. - Riscos: Devido aos privilégios elevados, se a conta
Administrator
for comprometida, o invasor terá controle total sobre o domínio. É recomendável renomear essa conta e monitorar seu uso de perto. - Boas práticas: Desativar a conta quando possível e utilizar contas administrativas separadas com o mínimo de privilégios necessários para tarefas específicas.
2. Guest
- Função: A conta
Guest
é destinada a usuários temporários que precisam de acesso limitado aos recursos da rede. Por padrão, essa conta tem permissões muito restritas. - Riscos: Se habilitada, a conta
Guest
pode ser explorada para movimentação lateral dentro da rede, especialmente se as permissões padrão tiverem sido modificadas. - Boas práticas: Desativar a conta
Guest
para minimizar a superfície de ataque, especialmente em ambientes onde o uso de contas temporárias é raro ou desnecessário.
3. KRBTGT
- Função: A conta
KRBTGT
é usada pelo serviço de autenticação Kerberos para emitir tickets de autenticação (TGTs). Esta conta é crítica para a segurança do Kerberos no AD. - Riscos: Se a conta
KRBTGT
for comprometida, um invasor pode criar tickets Kerberos válidos (Golden Tickets) que permitem acesso ilimitado ao domínio. - Boas práticas: A senha da conta
KRBTGT
deve ser alterada regularmente, e é crucial que essa conta seja monitorada de perto para qualquer sinal de comprometimento.
4. Enterprise Admins
- Função: O grupo
Enterprise Admins
tem autoridade administrativa em toda a floresta AD, podendo realizar tarefas administrativas em qualquer domínio dentro da floresta. - Riscos: Membros desse grupo têm controle total sobre a infraestrutura AD, o que torna essa conta um alvo principal para atacantes.
- Boas práticas: Minimizar o número de membros no grupo
Enterprise Admins
e utilizar contas separadas com privilégios limitados para tarefas administrativas diárias.
5. AdminSDHolder e o Processo SDProp
- Função: O objeto
AdminSDHolder
e o processo associado,SDProp
, são responsáveis por proteger contas privilegiadas, comoDomain Admins
eEnterprise Admins
, garantindo que as permissões dessas contas não possam ser alteradas indevidamente. - Riscos: Se um invasor conseguir modificar o objeto
AdminSDHolder
, ele pode garantir que as permissões de todas as contas privilegiadas permaneçam comprometidas. - Boas práticas: Monitorar alterações no objeto
AdminSDHolder
e assegurar que o processo SDProp esteja funcionando corretamente.
6. Outras Contas Padrão
- Schema Admins: Controle sobre a estrutura do esquema do AD, usada principalmente durante a instalação ou atualização de software que requer modificações no esquema.
- Domain Controllers: Grupo que inclui todos os controladores de domínio, com privilégios para replicar dados entre si e gerenciar objetos dentro do domínio.
Compreender e proteger essas contas padrão no Active Directory é fundamental para manter a segurança da rede. Monitorar continuamente essas contas e aplicar as melhores práticas de segurança ajuda a reduzir significativamente os riscos de comprometimento dentro do AD.
5.3. Representação gráfica dos caminhos de ataque
A representação gráfica dos dados coletados pelo BloodHound é o elemento central que torna essa ferramenta tão poderosa para a análise de segurança em ambientes de Active Directory (AD). A visualização gráfica permite uma compreensão imediata e intuitiva das relações complexas entre usuários, grupos, computadores e permissões, destacando potenciais caminhos de ataque que poderiam ser explorados por um invasor.
Como o BloodHound visualiza as relações no AD
-
Nós (Nodes) e Arestas (Edges):
- Nós: Representam entidades no AD, como
Users
,Groups
,Computers
,Domains
, entre outros. Cada nó é um objeto que pode ter várias propriedades associadas, como membros de grupos ou permissões. - Arestas: Representam as relações ou permissões entre esses objetos. Por exemplo, uma aresta pode mostrar que um
User
é membro de umGroup
ou que umGroup
tem permissões administrativas em umComputer
. - Exemplo prático: Se um
User
possui permissões para modificar as ACLs de umComputer
, isso será representado graficamente como uma aresta ligando o nóUser
ao nóComputer
, com uma descrição da permissão associada.
- Nós: Representam entidades no AD, como
-
Consultas e visualizações personalizadas:
- Consultas predefinidas: O BloodHound oferece uma série de consultas predefinidas que ajudam a identificar rapidamente os caminhos de ataque mais comuns, como “Shortest Paths to Domain Admins” ou “Find Principals with DCSync Rights”. Essas consultas são essenciais para uma análise rápida e eficaz.
- Consultas Cypher personalizadas: Para análises mais detalhadas, os usuários podem criar suas próprias consultas usando a linguagem Cypher, nativa do Neo4j. Isso permite personalizar a visualização de dados de acordo com as necessidades específicas da análise de segurança.
- Exemplo de consulta personalizada: Identificar todos os usuários que têm a capacidade de resetar senhas em contas privilegiadas.
MATCH (u:User)-[:CanResetPassword]->(p:PrivilegedAccount) RETURN u.name, p.name
Interpretação dos resultados gráficos
-
Identificação de pontos fracos:
- A análise gráfica permite identificar rapidamente as áreas de maior risco no AD. Por exemplo, se um nó representando um usuário comum está diretamente conectado a um nó de
Domain Admin
através de múltiplas arestas, isso indica um caminho de ataque direto que deve ser mitigado imediatamente.
- A análise gráfica permite identificar rapidamente as áreas de maior risco no AD. Por exemplo, se um nó representando um usuário comum está diretamente conectado a um nó de
-
Análise de impacto:
- Visualizando como diferentes objetos estão interconectados, é possível entender o impacto potencial de uma exploração específica. Se uma conta comprometida está conectada a várias permissões críticas, o impacto de seu comprometimento pode ser muito maior do que inicialmente previsto.
-
Exportação e relatórios:
- Após a análise, o BloodHound permite exportar os dados em formatos como JSON ou CSV. Isso é útil para a criação de relatórios ou para a integração com outras ferramentas de segurança. A exportação dos gráficos também permite compartilhar insights com outras equipes ou stakeholders.
Uso de consultas avançadas para visualização
- Consultas Cypher avançadas: Além das consultas padrão, o uso de consultas avançadas em Cypher pode revelar relações complexas que não são óbvias à primeira vista. Essas consultas podem ser usadas para descobrir, por exemplo, caminhos de ataque que envolvem múltiplos saltos entre diferentes tipos de objetos no AD.
- Filtragem de dados: Usar filtros avançados para focar apenas em tipos específicos de relacionamentos ou objetos pode ajudar a simplificar a visualização em ambientes muito grandes, onde a quantidade de dados pode ser esmagadora.
Com a visualização gráfica e as consultas avançadas do BloodHound, você pode identificar rapidamente os caminhos de ataque mais perigosos no seu Active Directory e tomar medidas preventivas eficazes para proteger sua rede contra invasores.
6. Mitigação e Defesas Contra Caminhos de Ataque
6.1. Endurecendo as políticas de segurança
Um dos aspectos mais críticos na segurança de um ambiente de Active Directory (AD) é a implementação de políticas que endureçam a postura de segurança e minimizem os caminhos de ataque identificados em pentests. Endurecer as políticas de segurança envolve uma combinação de técnicas para reduzir superfícies de ataque, limitar privilégios e reforçar controles de acesso.
Implementação do Princípio de Menor Privilégio
- Descrição: O Princípio de Menor Privilégio (PoLP) é uma prática fundamental em segurança da informação. Ele se baseia na ideia de que os usuários e sistemas devem ter o menor nível de acesso necessário para realizar suas funções.
- Ações recomendadas:
- Revisão de permissões: Realize uma auditoria completa das permissões atribuídas a usuários e grupos, removendo qualquer acesso desnecessário ou excessivo.
- Segregação de funções: Implemente a segregação de funções (SoD) para garantir que nenhum usuário ou sistema tenha permissões suficientes para comprometer totalmente um processo ou sistema.
- Controle de acesso a grupos privilegiados: Restringir o acesso aos grupos mais críticos, como
Domain Admins
,Enterprise Admins
eSchema Admins
, apenas às contas que realmente necessitam desses privilégios.
Configuração de políticas de grupo (GPOs)
- Descrição: As Group Policy Objects (GPOs) são ferramentas poderosas dentro do AD que permitem controlar as configurações e permissões de um grande número de máquinas e usuários de forma centralizada.
- Ações recomendadas:
- Aplicação de GPOs restritivas: Crie e aplique GPOs que restringem o uso de contas privilegiadas e que forcem a utilização de práticas seguras, como a troca regular de senhas, o uso de autenticação multifator (MFA) e o bloqueio de contas após tentativas de login malsucedidas.
- GPOs de login restrito: Configure GPOs para controlar onde contas privilegiadas podem fazer login, limitando esses logins a máquinas específicas para reduzir o risco de comprometimento em massa.
- Políticas de auditoria: Configure GPOs que forcem a auditoria detalhada de eventos de segurança, como mudanças em ACLs, acessos a objetos críticos, e alterações em contas de usuários privilegiados.
Revisão e Endurecimento das ACLs
- Descrição: As Access Control Lists (ACLs) são o mecanismo pelo qual permissões são aplicadas a objetos no AD. ACLs configuradas inadequadamente são uma das principais causas de vulnerabilidades em ambientes AD.
- Ações recomendadas:
- Revisão periódica: Realize revisões periódicas das ACLs, focando especialmente em objetos críticos como controladores de domínio, contas de administrador e servidores de aplicação.
- Remoção de permissões excessivas: Identifique e remova permissões excessivas que podem ser exploradas para escalada de privilégios. Foque em remover permissões de WriteDACL, WriteOwner, e outras permissões sensíveis de contas que não necessitam delas.
- Monitoramento contínuo: Implante sistemas de monitoramento que alertem automaticamente quando mudanças suspeitas são feitas nas ACLs.
Segmentação e Isolamento de Redes
- Descrição: Segmentar e isolar redes é uma prática que impede que um comprometimento em uma parte da rede se espalhe facilmente para outras.
- Ações recomendadas:
- Segmentação por funções: Divida a rede em segmentos baseados em funções e aplique controles de acesso estritos entre esses segmentos.
- Isolamento de servidores críticos: Servidores que hospedam dados críticos ou controladores de domínio devem ser isolados em segmentos de rede protegidos, acessíveis apenas por administradores e serviços autorizados.
- Firewalls internos e listas de controle de acesso (ACLs) de rede: Use firewalls internos e ACLs de rede para restringir o tráfego entre segmentos, limitando a comunicação apenas ao necessário.
Endurecer as políticas de segurança no Active Directory (AD) não só protege contra comprometimentos iniciais, mas também torna mais difícil para um invasor explorar a rede uma vez dentro. Essas práticas são fundamentais para fortalecer a postura de segurança e minimizar os riscos de ataques.
6.2. Monitoramento contínuo
Após a realização de um pentest, o monitoramento contínuo é fundamental para garantir que potenciais caminhos de ataque não sejam reintroduzidos na rede. A ideia é que, mesmo após a implementação de políticas de segurança rigorosas, o ambiente AD deve ser monitorado constantemente para detectar qualquer atividade suspeita ou anômala que possa indicar uma tentativa de ataque ou uma configuração incorreta.
Importância do Monitoramento Contínuo
-
Detecção precoce de ameaças:
- O monitoramento contínuo permite que a equipe de segurança detecte rapidamente atividades incomuns, como tentativas de login repetidas, mudanças em ACLs ou a criação de contas de usuário não autorizadas. Quanto mais cedo uma ameaça é identificada, mais rápida e eficaz é a resposta.
-
Adaptação às mudanças no ambiente:
- Em um ambiente AD, mudanças ocorrem constantemente—novos usuários são criados, permissões são ajustadas, e novas políticas são implementadas. O monitoramento contínuo garante que todas essas mudanças sejam acompanhadas e que qualquer alteração que introduza riscos seja rapidamente identificada e corrigida.
Ferramentas e Estratégias de Monitoramento
-
SIEM (Security Information and Event Management):
- Descrição: Ferramentas SIEM agregam logs de eventos de segurança de diferentes fontes, incluindo AD, e utilizam regras e inteligência para detectar padrões suspeitos.
- Exemplo de ferramentas: Splunk, QRadar, e ArcSight são exemplos de soluções SIEM amplamente usadas para monitorar e analisar eventos de segurança em tempo real.
- Benefícios: Um SIEM permite a correlação de eventos em toda a rede, facilitando a identificação de atividades maliciosas que podem ser sutis ou espalhadas por vários sistemas.
-
Monitoramento de Sessões e Logins:
- Descrição: Manter registros detalhados de sessões de usuários e logins é crucial para identificar tentativas de movimento lateral e escalada de privilégios.
- Ferramentas recomendadas: A utilização de soluções como o Microsoft Advanced Threat Analytics (ATA) ou o Azure Advanced Threat Protection (ATP) pode ajudar a monitorar e detectar atividades anômalas relacionadas a logins e acessos de usuários.
- Práticas recomendadas: Configurar alertas para logins em horários incomuns, tentativas de login em massa, e acessos a sistemas críticos por contas que normalmente não os acessam.
-
Auditoria de Mudanças no AD:
- Descrição: Configurar auditorias para monitorar mudanças críticas no AD, como modificações em grupos privilegiados, alterações em GPOs, e mudanças em ACLs.
- Ferramentas e scripts: Ferramentas nativas do Windows, como o Event Viewer combinado com scripts PowerShell personalizados, podem ser configuradas para gerar alertas ou relatórios sobre alterações críticas.
- Automação e relatórios: Implementar processos automatizados que enviem relatórios periódicos sobre as alterações no AD, permitindo uma revisão regular e detalhada.
-
Honeytokens e Armadilhas:
- Descrição: Implementação de honeytokens (contas falsas ou recursos isca) dentro do AD para detectar atividades maliciosas.
- Como funciona: Honeytokens são configurados de modo que, se um invasor tentar acessá-los, um alerta é gerado automaticamente. Como esses tokens não são usados por usuários legítimos, qualquer interação com eles é sinal de uma possível ameaça.
- Exemplo de uso: Configurar uma conta de usuário com um nome atraente, como
BackupAdmin
, e monitorar qualquer tentativa de acesso a ela.
Resposta e Ação Imediata
-
Ação rápida em resposta a alertas:
- Descrição: A eficácia do monitoramento contínuo depende não só da detecção, mas também da resposta rápida às ameaças detectadas. Quando um alerta é gerado, uma ação imediata deve ser tomada para investigar e mitigar a ameaça.
- Planos de resposta a incidentes: Ter um plano de resposta a incidentes bem definido e testado é crucial para garantir que, quando uma ameaça é detectada, a resposta seja rápida e coordenada.
-
Testes e Ajustes Regulares:
- Descrição: Regularmente testar e ajustar as regras de monitoramento para garantir que estão alinhadas com as últimas ameaças e com a evolução do ambiente AD.
- Benefícios: As ameaças e táticas de ataque evoluem, e o ambiente AD também muda com o tempo. Testes regulares garantem que as ferramentas de monitoramento estejam sempre prontas para detectar as ameaças mais recentes.
Implementar um monitoramento contínuo eficaz no Active Directory é essencial para manter a integridade e a segurança do ambiente, garantindo que qualquer tentativa de exploração ou alteração não autorizada seja rapidamente identificada e tratada.
6.3. Ferramentas complementares
Além do BloodHound, existem várias outras ferramentas e práticas que podem ser utilizadas em conjunto para melhorar ainda mais a segurança do Active Directory (AD) e mitigar os riscos de caminhos de ataque. Integrar essas ferramentas complementares ajuda a criar uma defesa em profundidade, garantindo que todas as possíveis vulnerabilidades sejam abordadas de maneira eficaz.
SIEM (Security Information and Event Management)
- Descrição: Ferramentas de SIEM, como Splunk, QRadar, e ArcSight, são cruciais para a coleta, análise, e correlação de logs de eventos de segurança em tempo real. Elas permitem que a equipe de segurança tenha uma visão abrangente de todas as atividades na rede, incluindo as operações no AD.
- Integração com BloodHound: Usar um SIEM em conjunto com o BloodHound permite monitorar continuamente as mudanças nas permissões e acessos no AD, correlacionando eventos suspeitos com possíveis caminhos de ataque mapeados no BloodHound.
- Benefícios: Um SIEM pode detectar atividades anômalas que o BloodHound identifica como potenciais vetores de ataque, permitindo uma resposta imediata e informada.
Impacket
- Descrição: Impacket é uma coleção de scripts e ferramentas Python para trabalhar com protocolos de rede, como SMB, RDP, e LDAP, que são frequentemente usados em ataques direcionados ao AD.
- Integração com BloodHound: Impacket pode ser utilizado para realizar operações que complementam a coleta de dados do SharpHound, como a exploração de ACLs e a execução de ataques de movimento lateral.
- Exemplo de uso: Ferramentas como
secretsdump.py
podem ser usadas para extrair hashes de senhas de contas privilegiadas que o BloodHound identificou como críticas, permitindo uma avaliação mais profunda dos riscos.
PingCastle
- Descrição: PingCastle é uma ferramenta de auditoria de segurança especificamente projetada para o Active Directory. Ela realiza avaliações de risco automatizadas e gera relatórios detalhados sobre a saúde e segurança do AD.
- Integração com BloodHound: PingCastle pode ser usado para complementar as análises feitas pelo BloodHound, fornecendo uma visão geral do estado de segurança do AD, incluindo recomendações para mitigação de riscos.
- Benefícios: A combinação de PingCastle e BloodHound oferece uma visão completa do estado de segurança do AD, desde a identificação de caminhos de ataque até a saúde geral da infraestrutura.
LAPS (Local Administrator Password Solution)
- Descrição: O LAPS é uma solução da Microsoft para gerenciar as senhas das contas de administrador local em cada computador do domínio, garantindo que cada máquina tenha uma senha única e rotacionada regularmente.
- Integração com BloodHound: O uso do LAPS pode ser validado através do BloodHound para garantir que as senhas locais não possam ser exploradas para comprometer contas mais privilegiadas.
- Exemplo de uso: Após a implementação do LAPS, o BloodHound pode ser utilizado para verificar se as permissões de leitura das senhas do LAPS estão corretamente configuradas, garantindo que apenas usuários autorizados tenham acesso.
MITRE ATT&CK Framework
- Descrição: O MITRE ATT&CK é um framework de conhecimento que mapeia as técnicas e táticas utilizadas por adversários em ciberataques, incluindo aquelas direcionadas a ambientes AD.
- Integração com BloodHound: Alinhar as descobertas do BloodHound com o MITRE ATT&CK permite mapear as táticas identificadas na rede com técnicas conhecidas de adversários, ajudando a priorizar as respostas e mitigações.
- Benefícios: Essa integração facilita a criação de playbooks de resposta a incidentes que são informados por ameaças reais e alinhados com as melhores práticas da indústria.
Windows Event Forwarding (WEF)
- Descrição: Windows Event Forwarding é uma solução nativa da Microsoft para centralizar a coleta de logs de eventos de múltiplos sistemas Windows, incluindo controladores de domínio.
- Integração com BloodHound: WEF pode ser configurado para coletar eventos críticos relacionados ao AD que o BloodHound identifica como vulnerabilidades potenciais, permitindo um monitoramento contínuo e centralizado.
- Exemplo de uso: Configurar WEF para coletar eventos relacionados a mudanças em ACLs e sessões de usuários privilegiados, que podem ser correlacionados com os dados do BloodHound para uma análise mais abrangente.
Integrar essas ferramentas complementares ao uso do BloodHound cria uma abordagem de segurança em camadas, permitindo que a equipe de segurança do AD monitore, detecte, e responda a ameaças de forma mais eficaz e proativa.
7. Conclusão – Recapitulação dos pontos principais
Ao longo deste artigo, exploramos detalhadamente como o BloodHound pode ser utilizado para identificar e mitigar caminhos de ataque em um ambiente de Active Directory (AD) em um pentest. Desde a introdução ao papel do AD nas redes corporativas até a análise prática de caminhos de ataque e as melhores estratégias para endurecimento e monitoramento da segurança, cobrimos os aspectos necessários para fortalecer a postura de segurança de sua organização.
-
Introdução ao BloodHound: Compreendemos como o BloodHound utiliza teoria dos grafos para mapear relações complexas dentro do AD, permitindo uma visualização clara dos potenciais caminhos de ataque que poderiam ser explorados por invasores.
-
Coleta e Importação de Dados: Detalhamos como o SharpHound coleta informações críticas do AD e como esses dados são importados e analisados no BloodHound para criar uma representação gráfica dos caminhos de ataque.
-
Identificação de Caminhos Críticos: Exploramos exemplos práticos de como permissões inadequadas e configurações de trust podem ser exploradas para comprometer contas de alto privilégio, como as de Domain Admins.
-
Mitigação e Monitoramento: Discutimos estratégias de mitigação, como a implementação do Princípio de Menor Privilégio, o endurecimento de ACLs, e o uso de ferramentas complementares para monitoramento contínuo e resposta a incidentes.