Author: zackDate: 2025-06-17
Pré-requisitos para conseguir facilitar o seu entendimento :
- Networking (Essencial)
- Fundamentos do Linux (Essencial)
- Fundamentos de Active Directory (Obrigatório)
Tópicos :
- O que é Kerberos?
- O que é TGT/TGS?
- Funcionamento do Kerberos
- O que é a vulnerabilidade AS-REP Roasting?
- Exploração Prática
- Enumerando usuários
- Procurando usuários vulneráveis
- Quebrando o hashe.
- Conclusão
O que é Kerberos?
Kerberos é um protocolo de autenticação responsável pela validação dos usuários e serviços, o objetivo do Kerberos é garantir uma comunicação segura. O Kerberos utiliza de tickets para a validação dos usuários/serviços, através de uma comunicação que ocorre entre o cliente e o KDC, são enviados os famosos tickets que são blocos de dados criptografados com chaves derivadas.
O que é TGT/TGS?
TGT (Ticket Granting Ticket) : é um ticket que é utilizado para conseguir o TGS (Ticket Granting Service); TGS (Ticket Granting Service) : é um serviço responsável pela emissão dos tickets ao cliente após a pre-autenticação ter acontecido;
Funcionamento do Kerberos
Abaixo contém um diagrama, na qual mostra o processo que ocorre na comunicação entre o cliente e o KDC;

Vamos começar a entender como funciona esse processo de comunicação;
- O cliente vai enviar uma solicitação AS-REQ ao KDC para pedir o TGT, nessa solicitação, o cliente envia um timestamp criptografado com uma chave derivada do hashe da senha dele e o nome de usuário dele;
- O AS (Authentication Service) do KDC vai receber a solicitação do cliente, em seguida, pegar o dado recebido e consultar o banco de dados a procura do nome do usuário passado, em seguida copia o hashe da senha do usuário, e descriptografar esse timestamp, se caso sucesso, ele envia uma resposta AS-REP para o cliente com o TGT e uma chave de sessão, caso ao contrário, ela rejeita a solicitação;
- O cliente vai receber o ticket TGT e a chave de sessão e em seguida enviar outra requisição TGS-REQ com o TGT, timestamp e o nome do serviço que o cliente quer usar, só que dessa vez, o timestamp é criptografado com a chave de sessão recebida anteriormente, essa requisição é feita para conseguir utilizar o serviço; OBS: A chave de sessão é uma chave aleatória gerada pelo KDC e criptografada com uma chave derivada do hashe da senha do usuário;
- O KDC recebe essa requisição com o TGT, timestamp e o nome do serviço, em seguida, ele pega o TGT recebido e através da chave do TGS, ele faz a extração da chave de sessão que está no TGT e com ela, ele faz a descriptografia do timestamp e caso seja sucesso, ele envia uma resposta TGS-REP a solicitação do cliente com o TGS, caso ao contrário, ele rejeita a solicitação;
- O cliente recebe a resposta do KDC, e com a TGS, ele envia outra solicitação AP-REQ, só que dessa vez, para o serviço que ele quer acessar;
- O serviço ao receber a solicitação do cliente, faz a verificação localmente para ver se o certificado enviado pelo cliente, se trata de um certificado legítimo, e caso seja, ela responde a solicitação AP-REP do cliente permitindo com que ele acesse aquele serviço, caso não, ela rejeita a solicitação;
O que é AS-REP Roasting?
AS-REP Roasting é uma vulnerabilidade que ocorre quando a flag de pre-autenticação do usuário está desabilitada permitindo assim com que um invasor receba uma resposta de autenticação sem precisar ter a senha desse usuário; Quando o invasor envia um AS-REQ, ele envia um dado com o nome do usuário que está com a flag de pre-autenticação desabilitada, e em seguida, como o KDC não faz a verificação para ver se realmente se trata do usuário, ele envia uma resposta AS-REP para o invasor com um bloco criptografado com a chave derivada do hashe da senha do usuário. Logo após, o invasor captura esse bloco e tenta quebra-lo off-line, caso consiga, ele obtém a senha real do usuário.
Exploração Prática
Agora que você já entendeu os conceitos essenciais, vamos partir para a exploração prática; Primeiramente precisamos enumerar os usuários do Active Directory, pra isso, vamos usar uma ferramenta KerBrute, ela vai nos ajudar a enumera-los de forma mais eficiente e rápida.

Após a execução do KerBrute, foram retornados 16 usuários nesse domínio, antes de prosseguirmos, vamos entender melhor através do Wireshark o que o KerBrute fez para retornar esses usuários.





Se analisarmos o conteúdo da resposta, encontramos exatamente o hashe retornado pelo GetNPUsers





Conclusão
Não sei exatamente o que por aqui, mas creio eu que você tenha aprendido bastante e entendido os conceitos e funcionamentos dessa vulnerabilidade, o objetivo desse paper foi trazer de forma "aprofundada" sobre o funcionamento dessa vulnerabilidade AS-REP Roasting, obrigado por ler até aqui e até a próxima :)