# T1558.003 - Kerberoasting
> [!info] Identificação MITRE ATT&CK
> **Tática:** Credential Access · **ID:** T1558.003 · **Plataforma:** Windows · **Técnica pai:** [[t1558-steal-or-forge-kerberos-tickets|T1558 - Steal or Forge Kerberos Tickets]]
## Descrição
Kerberoasting é uma técnica de pós-exploração amplamente utilizada por adversários para obter credenciais de contas de serviço do Active Directory sem precisar de privilégios elevados no domínio. A técnica abusa do protocolo de autenticação Kerberos - específicamente da fase de emissão de tickets TGS (Ticket-Granting Service) - para extrair hashes de senhas que podem ser quebrados offline.
Em ambientes Windows com Active Directory, todo serviço que requer autenticação Kerberos deve estar associado a um **Service Principal Name (SPN)**. Quando um usuário autenticado solicita acesso a um serviço, o Domain Controller (DC) emite um ticket TGS criptografado com a hash NT da senha da conta de serviço associada ao SPN. Adversários que possuem um TGT válido (o que exige apenas uma conta de domínio comum, sem privilégios especiais) podem solicitar TGS tickets para qualquer SPN registrado no domínio.
A parcela crítica da vulnerabilidade reside no algoritmo de criptografia: quando a conta de serviço usa criptografia RC4 (etype 23, identificado como `Kerberos 5 TGS-REP etype 23`), o ticket é criptografado com a hash NTLM da senha da conta. Essa hash pode ser extraída do ticket e submetida a ataques de [[t1110-brute-force|força bruta]] offline ou a ataques de dicionário, sem gerar alertas diretamente nos logs do Domain Controller - pois a solicitação de TGS é uma operação legítima do protocolo.
Contas de serviço são alvos especialmente atrativos porque frequentemente possuem senhas que raramente são rotacionadas, às vezes configuradas com privilégios excessivos (como Domain Admin), e muitas organizações não monitoram adequadamente as solicitações de TGS em volume. Uma vez que a hash é quebrada offline, o adversário obtém a senha em texto claro e pode usá-la para [[ta0008-lateral-movement|movimentação lateral]], [[ta0004-privilege-escalation|escalação de privilégios]] e acesso a [[t1078-valid-accounts|contas válidas]] em toda a infraestrutura.
> [!warning] Impacto Potencial
> Em ambientes onde contas de serviço têm senhas fracas ou são membros de grupos privilegiados, um único ataque de Kerberoasting bem-sucedido pode levar à comprometimento total do domínio Active Directory.
## Como Funciona
O ataque de Kerberoasting segue um fluxo técnico preciso que explora o funcionamento normal do protocolo Kerberos:
**1. Reconhecimento de SPNs**
O adversário, com acesso a qualquer conta de domínio válida, consulta o Active Directory para enumerar todos os SPNs registrados. Isso é feito via LDAP utilizando ferramentas como `setspn -T domain -Q */*` ou via módulos PowerShell. O objetivo é identificar contas de serviço com SPNs, especialmente aquelas que usam criptografia RC4.
**2. Solicitação de Tickets TGS**
Para cada SPN identificado como interessante, o adversário solicita um TGS ao Domain Controller. Esta é uma operação completamente legítima no protocolo Kerberos - qualquer conta autenticada pode solicitar TGS para qualquer SPN. Ferramentas como [[s1071-rubeus|Rubeus]] automatizam esse processo com o parâmetro `kerberoast`.
**3. Extração do Hash**
O TGS retornado contém a hash da senha da conta de serviço na porção criptografada do ticket. As ferramentas de Kerberoasting extraem automaticamente essa hash no formato `$krb5tgs$23$*...*` compatível com hashcat ou John the Ripper.
**4. Quebra Offline da Hash**
Com a hash em mãos, o adversário realiza o ataque de dicionário ou força bruta completamente offline, sem interação adicional com a rede corporativa. Hashcat com modo `-m 13100` (Kerberos 5 TGS-REP etype 23) é o método mais comum.
**5. Uso das Credenciais**
Com a senha em texto claro da conta de serviço, o adversário pode autenticar no domínio com privilégios equivalentes aos da conta comprometida, potencialmente escalando para Domain Admin se a conta de serviço for membro de grupos privilegiados.
> [!note] Variante: AS-REP Roasting
> Técnica relacionada (T1558.004) que ataca contas com pré-autenticação Kerberos desabilitada, não requerendo nem mesmo um TGT válido para iniciar o ataque.
## Attack Flow
```mermaid
graph TB
A["🔐 Conta de Domínio Válida<br/>(qualquer usuário autenticado)"] --> B["🔍 Enumeração de SPNs<br/>via LDAP Query ao AD"]
B --> C{"SPNs encontrados<br/>com RC4 (etype 23)?"}
C -->|Sim| D["📨 Solicitação de TGS<br/>para SPNs alvo"]
C -->|Não - AES128/256| E["⚠️ Menor chance de sucesso<br/>Continuar com cautela"]
D --> F["🎫 Domain Controller emite<br/>TGS (operação legítima)"]
E --> F
F --> G["📦 Extração do Hash<br/>krb5tgs 23 do ticket"]
G --> H["💻 Quebra Offline<br/>Hashcat / John the Ripper"]
H --> I{"Senha<br/>quebrada?"}
I -->|Sim| J["🔑 Credenciais em Texto Claro<br/>da Conta de Serviço"]
I -->|Não - senha forte| K["❌ Ataque falhou<br/>Tentar outra conta"]
J --> L["🚀 Movimentação Lateral<br/>Escalação de Privilégios"]
L --> M["🌐 Acesso a Recursos<br/>do Domínio / Domain Admin"]
M --> N["📂 Exfiltração de Dados<br/>/ Persistência"]
```
## Exemplos de Uso
### Grupos de Ameaça Documentados
**[[g0102-conti-group|Wizard Spider]]** - O grupo por trás do ransomware Ryuk utilizou Kerberoasting como parte de sua cadeia de ataque pós-comprometimento inicial, frequentemente combinando com [[t1059-001-powershell|PowerShell]] e ferramentas como [[s0154-cobalt-strike|Cobalt Strike]] para movimentação lateral antes de implantar o ransomware. Em incidentes documentados contra hospitais e infraestrutura crítica, o grupo utilizou [[s1071-rubeus|Rubeus]] para extrair hashes de contas de serviço SQL e Exchange.
**[[g0046-fin7|FIN7]]** - Grupo financeiramente motivado ativo contra setores de varejo, hotelaria e finanças. Incorporou Kerberoasting em sua métodologia de escalação de privilégios, frequentemente direcionado a contas de serviço associadas a sistemas de ponto de venda (POS). O grupo combinava Kerberoasting com [[t1566-phishing|spear-phishing]] para obter acesso inicial antes de escalar privilégios.
**[[g0119-indrik-spider|Indrik Spider]]** - Operadores do ransomware WastedLocker e Hades. Documentados usando Kerberoasting como parte de operações de acesso inicial a ambientes corporativos, especialmente em campanhas de Big Game Hunting (BGH) contra organizações de grande porte.
### Ferramentas Comuns
| Ferramenta | Comando Típico | Observação |
|---|---|---|
| [[s1071-rubeus\|Rubeus]] | `Rubeus.exe kerberoast /outfile:hashes.txt` | Mais completo, filtra por etype |
| [[s0357-impacket\|Impacket]] | `GetUserSPNs.py domain/user -request` | Via Python, funciona remotamente |
| [[s0194-powersploit\|PowerSploit]] | `Invoke-Kerberoast -OutputFormat Hashcat` | PowerShell, mais visível para EDRs |
| [[s0363-empire\|Empire]] | Módulo `powershell/credentials/invoke_kerberoast` | Framework C2 completo |
| [[brute-ratel-c4\|Brute Ratel C4]] | Módulo integrado de Kerberoasting | Framework adversarial moderno |
| [[s0692-silenttrinity\|SILENTTRINITY]] | Módulo `kerberoast` | Baseado em IronPython |
## Detecção
### Indicadores de Comprometimento
- Volume elevado de solicitações TGS em curto período de tempo (dezenas ou centenas de requisições em minutos)
- Solicitações de TGS para múltiplos SPNs diferentes de uma única conta de usuário
- Solicitações de TGS usando RC4 (etype 23) em ambientes que migraram para AES
- Uso de ferramentas conhecidas: `Rubeus.exe`, `GetUserSPNs.py`, `Invoke-Kerberoast`
- Autenticações bem-sucedidas de contas de serviço em horários ou origens incomuns após período de inatividade
### Regra de Detecção - Sigma
```yaml
title: Kerberoasting - Múltiplas Solicitações TGS RC4
status: experimental
description: >
Detecta padrões de Kerberoasting através de múltiplas solicitações
de TGS com algoritmo RC4 (etype 23) em curto período
logsource:
category: authentication
product: windows
service: security
detection:
selection:
EventID: 4769
TicketEncryptionType: '0x17'
TicketOptions: '0x40810000'
filter_computer_accounts:
ServiceName|endswith: '