Extração de senhas de contas de serviço com Kerberoasting
Aug 31, 2022
Em nosso post de reconhecimento LDAP, exploramos como um atacante pode realizar reconhecimento para descobrir contas de serviço para atacar em um domínio do Active Directory (AD). Agora vamos explorar uma maneira que um atacante pode usar para comprometer essas contas e explorar seus privilégios: Kerberoasting. Esta técnica é especialmente assustadora porque não requer privilégios de administrador no domínio, é muito fácil de realizar e é praticamente indetectável.
Conteúdo relacionado selecionado:
Kerberoasting: Visão Geral
Kerberoasting é um ataque que abusa de um recurso do protocolo Kerberos para colher hashes de senha para contas de usuário do Active Directory: Qualquer usuário de domínio autenticado pode solicitar tickets de serviço para uma conta especificando seu Nome Principal de Serviço (SPN), e o serviço de concessão de tickets (TGS) no controlador de domínio retornará um ticket que é criptografado usando o hash NTLM da senha da conta.
Conteúdo relacionado selecionado:
Portanto, uma vez que um adversário descobriu SPNs de conta de serviço usando uma tática como reconhecimento LDAP, ele pode coletar tickets para todas essas contas. Ao levar esses dados para fora da rede, eles podem realizar um ataque de força bruta para decifrar a senha em texto simples de cada conta de serviço — sem nenhum risco de detecção ou bloqueio de conta.
Leva apenas alguns minutos para um atacante obter acesso a um domínio, coletar tickets e iniciar o processo de cracking. A partir daí, é apenas uma questão de tempo até que eles comprometam uma ou mais contas de serviço, que podem usar para roubar ou criptografar dados sensíveis ou causar outros danos.
Os adversários concentram-se em contas de serviço por várias razões. Primeiro, essas contas muitas vezes têm privilégios muito mais extensos do que outras contas de usuário do AD, então comprometê-las concede ao atacante mais acesso. Além disso, as senhas das contas de serviço raramente mudam, então é provável que o adversário mantenha o acesso por um longo tempo. Para entender os tipos de acesso que podem ser obtidos usando Kerberoasting, olhe para a lista de SPNs do Active Directory mantida por Sean Metcalf.
Kerberoasting: Como funciona
Passo 1. Obtenha os SPNs das contas de serviço.
. Existem muitas maneiras de obter esses SPNs, incluindo:
- Consultas PowerShell e reconhecimento LDAP
- Módulo do Active Directory para PowerShell
- Script GetUserSPNs no Kerberoast toolkit
- Comando Get-NetUser do PowerSploit
Passo 2. Solicite bilhetes de serviço para SPNs de contas de serviço.
Basta executar algumas linhas de PowerShell, e um ticket de serviço será retornado e armazenado na memória do seu sistema.
Add-Type –AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken –ArgumentList ‘MSSQLSvc/jefflab-sql02.jefflab.local:1433’
Etapa 3. Extraia tickets de serviço usando Mimikatz.
Mimikatz extrairá tickets locais e os salvará no disco para quebra offline. Simplesmente instale Mimikatz e emita um único comando:
Passo 4. Quebre os tickets.
Os tickets Kerberos são criptografados com a senha da conta de serviço associada ao SPN especificado na solicitação do ticket. As ferramentas Kerberoasting fornecem um script em Python para decifrar tickets e fornecer suas senhas em texto claro, executando um dicionário de hashes de senha contra eles. Pode ser necessário alguma configuração para garantir que você tenha o ambiente necessário para executar o script, mas este blog cobre esses detalhes.
Alternativamente, você pode coletar tickets Kerberos usando o script GetUserSPNs e quebrá-los com a ferramenta de recuperação de senha Hashcat.
Protegendo contra ataques de Kerberoasting
A principal mitigação para ataques de Kerberoasting é garantir que todas as contas de serviço utilizem senhas longas e complexas que sejam mais difíceis de quebrar, e trocá-las regularmente para minimizar o tempo em que a conta poderia ser utilizada por um adversário que consiga decifrar uma senha. Usar group managed service accounts é uma prática recomendada para atribuir senhas aleatórias e complexas que podem ser alteradas automaticamente.
Uma vez que os adversários quebram os tickets offline, o processo não resulta em tráfego de rede, tornando essa parte do ataque indetectável. Mas você pode identificar os passos anteriores monitorando o Active Directory com uma solução de segurança robusta. Em particular, contas de serviço são normalmente usadas dos mesmos sistemas e da mesma forma, então fique atento para detectar pedidos de autenticação anômalos. Além disso, monitore picos nos pedidos de tickets de serviço.
Por fim, especialistas em segurança também recomendam desativar a criptografia baseada em RC4. Caso contrário, mesmo que uma conta de usuário suporte criptografia AES, um atacante pode solicitar um ticket criptografado em RC4, o qual é mais fácil de decifrar do que um criado usando criptografia AES.
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