Para entender por que o Keberoasting funciona, é preciso primeiro entender o básico do Kerberos.
O Kerberos é um protocolo de autenticação que permite que usuários e serviços (como aplicativos, bancos de dados e servidores) se autentiquem e comuniquem com segurança no Active Directory e em outros domínios.
O processo de autenticação do Kerberos usa um sistema de tickets. No centro desse sistema está o centro de distribuição de chaves (KDC), que opera no controlador de domínio da rede.
O KDC é essencialmente o guardião do domínio. Ele autentica usuários e serviços na rede e emite tickets para eles. Os tickets são credenciais que comprovam a identidade dos usuários e permitem que eles acessem outros recursos na rede. Os usuários e os serviços trocam esses tickets para se verificarem mutuamente.
Quando um usuário faz login em um domínio, ele primeiro se autentica no KDC e recebe um ticket de concessão de ticket (TGT). Este TGT permite ao usuário solicitar acesso aos serviços do domínio.
Quando o usuário deseja acessar um serviço, ele envia uma solicitação ao serviço de concessão de tickets (TGS) do KDC. O TGT acompanha essa solicitação para garantir a identidade do usuário.
Em resposta, o KDC emite um ticket de serviço, também chamado de "ticket TGS", que é criptografado usando a senha da conta de serviço. Isso acontece para garantir que apenas o serviço de destino possa validar a solicitação de acesso do usuário. O usuário apresenta esse ticket de serviço ao serviço de destino, que autentica o usuário e inicia uma sessão segura.
Existem alguns detalhes no projeto do Kerberos que o deixam vulnerável ao Kerberoasting.
Primeiro, o KDC não verifica se os usuários estão autorizados a acessar um serviço. Qualquer usuário pode solicitar um tíquete para qualquer serviço. Cabe aos serviços individuais impor as permissões e bloquear usuários não autorizados. Portanto, os hackers não precisam se apoderar das contas dos administradores de domínio ou de outros usuários privilegiados. Qualquer conta comprometida funciona.
Em segundo lugar, cada serviço em um domínio do Kerberos deve ser associado a uma conta de serviço responsável por executar o serviço no domínio. As contas de serviço permitem que o Kerberos autentique serviços, emita tickets de serviço e imponha controles de segurança. Essas contas também representam um alvo para os hackers, pois costumam ter privilégios elevados.
Em terceiro lugar, os tickets do Kerberos são criptografados, usando os hashes de senha das contas associadas como chaves. É importante ressaltar que, para o Kerberoasting, os tickets de serviço usam os hashes de senha das contas de serviço relevantes.
As senhas de contas são chaves de criptografia simétricas convenientes porque apenas o KDC e o serviço relacionado devem conhecer essa senha. Mas, como os tickets são criptografados usando hashes de senha, os hackers podem fazer engenharia reversa de senhas de contas de serviço quebrando a criptografia de um ticket.
Além disso, as contas de serviço configuradas manualmente geralmente têm o sinalizador "a senha nunca expira" ativado. Em redes de longa duração, isso pode significar que as contas de serviço usam senhas muito antigas, que seguem diretrizes de segurança desatualizadas, tornando-as fáceis de quebrar.