🛡️ Laboratório de Segurança · Active Directory
Uma missão de infiltração no domínio lab.local. A conta de alice foi comprometida — e agora está sendo usada como porta de entrada. Aprenda como o ataque funciona e como defender o castelo.
MISSÃO: 0% concluída
Fase I · Reconhecimento
Antes de qualquer operação, conheça o território. Este é o ambiente do laboratório.
| Item | Valor | Risco |
|---|---|---|
| Domínio | lab.local |
● NEUTRO |
| Conta de serviço | svc_sql |
● CRÍTICO |
| SPN configurado | MSSQLSvc/sql.lab.local:1433Etiqueta que anuncia o serviço SQL Server no domínio |
● OBSERVAR |
| Senha de svc_sql | Fraca (Password123!) | ● CRÍTICO |
| svc_sql nos grupos | Domain Admins 🚨 | ● CRÍTICO |
🏰 Metáfora do Castelo
O castelo lab.local tem muros (autenticação), guardas (DC), e salas internas (serviços). Qualquer funcionário com crachá válido pode pedir acesso à sala do SQL — mas esse crachá é protegido com a chave pessoal do responsável. Se a chave for fraca, um inimigo que roubou o crachá pode abri-la em casa, no conforto da taverna.
Fase II · Teoria
Entenda o mecanismo antes de executar o ataque.
SPN significa Service Principal Name — é basicamente o endereço oficial de um serviço dentro do domínio. Funciona como uma etiqueta que diz: "esse serviço existe, está rodando nessa máquina, nessa porta, e pertence a essa conta."
🏰 Metáfora
Imagine que o castelo tem várias salas. Cada sala tem uma placa na porta com o nome da sala, o número e o responsável. O SPN é essa placa. Sem um SPN válido, o KDC não consegue identificar aquele serviço para emitir seu ticket Kerberos. Com a placa registrada, um usuário autenticado pode pedir um crachá para aquela sala.
No laboratório, o SPN configurado na conta svc_sql é:
| Pergunta | Resposta |
|---|---|
| Quem cria o SPN? | Um administrador ou um serviço com permissão para registrar o atributo no AD |
| Onde fica armazenado? | No atributo servicePrincipalName da conta no AD |
| Por que o SPN importa pro ataque? | Sem SPN, o DC não emite TGS para aquela conta — ou seja, sem SPN, não há Kerberoasting possível |
| O SPN em si é o problema? | Não. O SPN permite identificar o serviço e solicitar o ticket. Senha fraca facilita a quebra offline; privilégio alto aumenta o impacto. |
Kerberos é o sistema de autenticação do Active Directory. Em vez de enviar a senha pela rede, ele usa tickets temporários. Clique em cada mensagem para entender o que ela faz.
💡 Clique nas setas para ver a explicação de cada etapa
👆 Clique em uma seta numerada para ver o que acontece naquela etapa
No TGS-REP (etapa ④), o ticket de serviço é cifrado com uma chave de longo prazo derivada do segredo da conta de serviço. No caso RC4-HMAC do laboratório, essa chave está ligada ao hash NT da senha. Isso permite testar palpites de senha offline sem enviar cada tentativa ao DC.
O SPN viabiliza a solicitação do ticket; a senha fraca torna a recuperação offline mais provável; o privilégio excessivo aumenta o impacto. As duas últimas condições não são necessárias para solicitar o TGS, mas tornam o cenário muito mais grave.
| # | Condição | No laboratório |
|---|---|---|
| 1 | Conta com SPN registrado | ✓ svc_sql tem SPN |
| 2 | Senha fraca ou antiga | ✓ Password123! |
| 3 | Privilégios altos | ✓ Domain Admins |
🏰 Metáfora Completa
| Mundo real | Kerberos |
|---|---|
| Alice, funcionária vítima de phishing | Conta comprometida usada pelo atacante |
| Recepção do castelo | Domain Controller (KDC) |
| Crachá para entrar na sala do SQL | Ticket de serviço entregue no TGS-REP |
| Cadeado do crachá | Cifra com senha de svc_sql |
| Tentar abrir o cadeado em casa | Teste offline de senhas sobre os dados cifrados do ticket |
Importante: o atacante não precisa ser Domain Admin. Uma conta comum, após se autenticar, pode obter um TGT e solicitar tickets de serviço para SPNs registrados.
Fase III · Execução
Execute o ataque passo a passo. Cada comando revela uma etapa da operação.
🎣 Ponto de partida — Como o atacante conseguiu a conta de alice?
Alice não é o atacante. Ela é uma vítima. O atacante obteve as credenciais dela por um destes caminhos comuns:
| Vetor | Como ocorre |
|---|---|
| 🎣 Phishing | Alice clicou num link falso e digitou a senha num portal imitando o login da empresa |
| 🔑 Senha fraca | A senha de Alice era simples (ex: Alice@2024) e foi quebrada por força bruta ou spray |
| 💾 Credential dump | O atacante já tinha acesso a outra máquina e encontrou credenciais salvas |
Com as credenciais de alice, o atacante tem um pé dentro do domínio — e isso é tudo que o Kerberoasting precisa.
Antes de qualquer operação, confirmar que o Kali alcança o Domain Controller.
✔ Conectividade confirmada. Rota livre até o Domain Controller.
Com as credenciais de alice em mãos — obtidas via phishing ou ataque de senha fraca — o atacante lista todos os usuários do domínio a partir do Kali.
↑ svc_sql aparece no domínio. Próximo passo: verificar se tem SPN.
Este é o coração do ataque. GetUserSPNs encontra contas com SPN e requisita o ticket criptografado.
🔑 O que aconteceu?
O atacante tem as credenciais de Alice — ela caiu num phishing e nem sabe disso. Com o crachá dela, ele pede ao DC um crachá de acesso ao SQL. O DC entrega sem questionar — afinal, Alice é funcionária válida. Mas o crachá está lacrado com a senha de svc_sql. O atacante não precisa entrar na sala. Ele só precisa do lacre — e vai quebrá-lo offline, na taverna.
O terminal valida parâmetros, respeita a ordem das etapas e explica tentativas incorretas. A fase só termina quando o hash estiver salvo e confirmado.
Fase IV · Quebra Offline
O ticket está em mãos. Agora o ataque acontece completamente offline — sem tocar no DC.
Uma lista pequena de senhas candidatas. Em ambientes reais, wordlists chegam a bilhões de entradas.
O modo -m 13100 é específico para hashes Kerberos TGS-REP (Kerberoasting).
Confira a wordlist, execute o Hashcat no modo correto e valide a senha recuperada.
Fase V · Defesa
Agora que o ataque foi demonstrado, aplique as medidas de hardening. Marque cada ação conforme implementa.
Aplique menor privilégio, valide os grupos, rotacione a senha comprometida e consulte os eventos Kerberos.
Com a política Audit Kerberos Service Ticket Operations habilitada no DC, use o evento 4769 para investigar solicitações TGS. O filtro abaixo é um exemplo inicial e deve ser correlacionado com conta, serviço, origem, volume e padrão histórico:
| Configuração | Antes (Vulnerável) | Estado recomendado |
|---|---|---|
| Senha de svc_sql | Password123! (fraca) | gMSA rotaciona auto |
| Grupos | Domain Admins | Apenas o necessário |
| Criptografia TGS | RC4 (0x17) | AES preferido após validar compatibilidade |
| Monitoramento | Nenhum | 4769 correlacionado com contexto e baseline |
| Expiração de senha | Never | gMSA: 30 dias auto |
Missão Concluída
Kerberoasting & Hardening em Windows/AD
lab.local · svc_sql · Domain Admins eliminado
Kerberoasting não é um exploit sofisticado. É um abuso de comportamento legítimo do protocolo Kerberos. O ponto de entrada foi a conta de uma usuária comum — alice — comprometida via phishing ou senha fraca. A partir daí, bastou solicitar legitimamente um ticket de serviço, tentar recuperar a senha offline e explorar o privilégio excessivo da conta de serviço. A defesa precisa atuar em todas as camadas: conscientização de usuários, senhas fortes, menor privilégio e monitoramento ativo.
🔬 Ambiente: lab.local · Hyper-V · Windows Server + Kali Linux
🛠️ Ferramentas: impacket, hashcat
📋 Escopo: laboratório acadêmico controlado
Conteúdo revisado com base na especificação do Kerberos e na documentação oficial da Microsoft: