Comprometimento Completo de Domínio com um Ataque de Golden Ticket
Aug 31, 2022
Esta série de blog post series abrange técnicas que os atacantes podem usar para encontrar e comprometer contas de serviço do Active Directory. Primeiro, detalhamos como eles podem descobrir contas de serviço com reconhecimento LDAP; em seguida, revelamos como eles podem extrair senhas de contas com Kerberoasting; e então explicamos como elevar os direitos de uma conta usando Silver Tickets para habilitar acesso e atividades adicionais.
Conteúdo relacionado selecionado:
Neste post final, exploramos a conta de serviço mais poderosa em qualquer ambiente do Active Directory: a conta KRBTGT, que é utilizada para emitir os tickets Kerberos necessários para acessar sistemas de TI e dados. Ao obter o hash da senha desta conta a partir do Key Distribution Center (KDC), um atacante é capaz de comprometer todas as contas no Active Directory, concedendo-lhes acesso ilimitado e praticamente indetectável a qualquer sistema conectado à rede AD.
O que é a conta KRBTGT no AD?
Os controladores de domínio do Windows Active Directory são responsáveis por processar solicitações de tickets Kerberos, que são utilizados para autenticar usuários e conceder-lhes acesso a computadores e aplicações. A senha da conta KRBTGT é usada para criptografar e descriptografar tickets Kerberos. Essa senha raramente muda e o nome da conta é o mesmo em todos os domínios, portanto, é um alvo comum para atacantes.
Criando Golden Tickets
Usando Mimikatz, é possível aproveitar a senha da conta KRBTGT para criar Tickets de Concessão de Kerberos (TGTs) falsificados que podem ser usados para solicitar tickets de Servidor de Concessão de Tickets (TGS) para qualquer serviço em qualquer computador no domínio.
Para criar Golden Tickets, um adversário precisa das seguintes informações:
- Hash da senha da conta KRBTGT
- O nome e SID do domínio ao qual a conta KRBTGT pertence
Vamos ver como reunir essas informações e criar Golden Tickets para Kerberos, passo a passo.
Passo 1. Obtenha o hash da senha KRBTGT e o nome e SID do domínio.
Obter o hash da senha KRBTGT é a parte mais difícil do ataque, pois exige acesso privilegiado a um controlador de domínio. Uma vez que um adversário consiga fazer login interativo ou remoto em um DC, ele pode usar Mimikatz para extrair as informações necessárias usando os seguintes comandos:
privilege::debug
lsadump::lsa /inject /name:krbtgt
Isso exibirá o hash da senha, bem como o nome de domínio e o SID:
Passo 2. Crie Golden Tickets.
Agora o hacker pode criar Golden Tickets quando quiser. Parâmetros úteis do Mimikatz para criar Golden Tickets incluem:
- Usuário— O nome da conta de usuário para a qual o ticket será criado. Observe que este pode ser um nome de conta válido, mas não é obrigatório.
- ID— O RID da conta que o atacante irá se passar. Pode ser um ID de conta real, como o ID de administrador padrão de 500, ou um ID falso.
- Grupos— Uma lista de grupos aos quais a conta no ticket pertencerá. Domain Admins está incluído por padrão, então o ticket será criado com privilégios máximos.
- SIDs— Isso inserirá um SID no atributo SIDHistory da conta no ticket. Isso é útil para autenticar entre domínios.
O exemplo a seguir cria um ticket para um usuário falso, mas fornece o ID do administrador padrão. Veremos em um momento como esses valores são aplicados quando este ticket é utilizado. O /ptt (Pass the Ticket) dispara a injeção do Golden Ticket que está sendo criado na sessão atual.
Etapa 3. Passe o ticket.
Agora é hora de usar o Golden Ticket que foi carregado na sessão atual. Vamos iniciar um prompt de comando sob o contexto desse ticket usando o comando misc::cmd.
Você pode ver no prompt de comando que o atacante opera como um usuário de domínio comum sem pertencer a nenhum grupo do domínio, o que significa que ele não deve ter direitos a nenhum outro computador do domínio.
No entanto, como o ticket Kerberos está na memória, é possível conectar-se a um controlador de domínio e obter acesso a todos os arquivos armazenados lá.
Usando PSExec, o atacante pode abrir uma sessão no controlador de domínio alvo; de acordo com essa sessão, agora eles estão logados como Administrador.
O sistema acredita que o atacante é o Administrador devido ao RID de 500 que eles usaram para gerar o Golden Ticket. Os registros de eventos no controlador de domínio também mostram que o sistema acredita que o atacante é o Administrador, mas as credenciais são as que foram falsificadas durante o ataque do Golden Ticket. Isso pode ser particularmente útil para atacantes que procuram evitar detecção ou criar registros de segurança enganosos.
Protegendo contra ataques Golden Ticket
Ataques com Golden Ticket do Active Directory são muito difíceis de detectar porque os Golden Tickets parecem TGTs perfeitamente válidos. No entanto, na maioria dos casos, eles são criados com validades de 10 anos ou mais, o que excede em muito os valores padrão no Active Directory para a duração dos tickets. Embora os carimbos de data/hora dos TGTs não sejam registrados nos logs de autenticação Kerberos, soluções de segurança adequadas do Active Directory security solutions são capazes de monitorá-los. Se você perceber que Golden Tickets estão sendo usados dentro da sua organização, deve redefinir a conta KRBTGT duas vezes; fazer isso pode ter consequências de grande alcance, portanto, proceda com cautela.
A proteção mais importante contra Golden Tickets é restringir os direitos de logon no controlador de domínio. Deve haver o mínimo absoluto de Administradores de Domínio, bem como membros de outros grupos que fornecem direitos de logon para DCs, como Operadores de Impressão e Servidor. Além disso, um protocolo de logon em camadas deve ser usado para impedir que os Administradores de Domínio façam logon em servidores e estações de trabalho onde seus hashes de senha podem ser despejados da memória e usados para acessar um DC para extrair o hash da conta KRBTGT.
Compartilhar em
Saiba Mais
Sobre o autor
Jeff Warren
Diretor de Produto
Jeff Warren supervisiona o portfólio de produtos da Netwrix, trazendo mais de uma década de experiência em gestão e desenvolvimento de produtos focados em segurança. Antes de se juntar à Netwrix, Jeff liderou a organização de produtos na Stealthbits Technologies, onde utilizou sua experiência como engenheiro de software para desenvolver soluções de segurança inovadoras em escala empresarial. Com uma abordagem prática e um talento para resolver desafios de segurança complexos, Jeff está focado em construir soluções práticas que funcionam. Ele possui um BS em Sistemas de Informação pela Universidade de Delaware.
Saiba mais sobre este assunto
Exemplo de Análise de Risco: Como Avaliar Riscos
O Triângulo da CIA e Sua Aplicação no Mundo Real
Criar usuários do AD em massa e enviar suas credenciais por e-mail usando PowerShell
Como adicionar e remover grupos AD e objetos nos grupos com PowerShell
Atributos do Active Directory: Último Logon