Kerberoasting é uma técnica de ataque usada para obter o hash de senha de contas do Active Directory que são associadas ao SPN - Service Principal Name. No Mitre ATT&CK, esse ataque é classificado na tática "Credential Access" (Credencial de acesso), e sua técnica é "Roubo de Tickets Kerberos" e possui o ID T1558-003.
Táticas referem-se as etapas dentro de um ataque, servindo como indicadores do objetivo do atacante. Por outro lado, as técnicas descrevem as ações técnicas usadas pelos atacantes, ou seja, a técnica é o ataque propriamente dito.
Active Directory
O AD é um repositório ou catalogo que armazena informações sobre computadores, usuários, grupos, políticas, impressoras, permissões. Essas informações são organizadas em objetos e esses objetos são usados para gerenciar a autenticação e autorização em uma rede.
Controlador de Domínio
O controlador de domínio é o servidor que suporta os Serviços de Domínio do Active Directory (AD-DS). Quando são feitas atualizações nas regras existentes ou novas regras são adicionadas ao Controlador de Domínio, as alterações são propagadas por todos os objetos interconectados da rede.
Domain
O Domain ou Domínio é a unidade lógica que centraliza o gerenciamento de objetos em uma rede. Atribuimos um nome para o domínio, ao qual chamamos de namespace e que possui o formato FQDN.
Kerberos
Kerberos é um protocolo de autenticação de rede projetado para permitir que usuários e serviços se autentiquem em uma rede.
Componentes do Kerberos
KDC (Key Distribution Center) é o servidor central responsável pela autenticação.
Contém duas funções:
AS (Authentication Server): autentica o usuário inicialmente.
TGS (Ticket Granting Server): emite tickets para acessar serviços.
- Tickets
- Credenciais temporárias criptografadas emitidas pelo KDC.
- Substituem o envio da senha em cada autenticação.
Funcionamento do Kerberos (Fluxo Simplificado)
Autenticação inicial (AS Exchange)
-
O cliente envia uma requisição ao Servidor de Autenticação (AS - Authentication Server, KDC).
-
O AS verifica as credenciais e retorna um TGT (Ticket Granting Ticket), criptografado com a chave do usuário e do KDC.
Obtenção de tickets de serviço (TGS Exchange)
-
Com o TGT, o cliente pede um ticket de serviço TGS para acessar um serviço específico (ex.: servidor de arquivos).
-
O TGS emite um Service Ticket.
Autenticação no serviço (Client/Server Exchange)
Processo de Autenticação
Quando o usuário se conecta ao Active Directory, ele se autentica no servidor DC (Controlador de Domínio) usando seu nome de usuário e senha. Nesse processo, o controlador de domínio envia ao usuário um tícket Kerberos TGT, e o usuário solicita um ticket de serviço TGS para acessar um serviço.
Quais são as contas vulneráveis ao ataque de Kerberoasting?
A primeira etapa do ataque consiste em identificar quais contas de usuários possuem permissão para acessar serviços, ou seja, quais contas possuem o SPN - Service Principal Name e, portanto, podem solicitar tickets TGS de serviço.
Qualquer usuário autenticado no domínio pode realizar essa busca, e por isso, o ataque Kerberoasting é tão nocivo. Basta que o atacante obtenha uma credencial comum para se autenticar no domínio e iniciar a busca por contas vulneráveis.
Etapas do ataque Kerberoasting
[1]: O atacante obtém acesso ao domínio
O atacante efetua login no domínio usando uma conta de usuário válida com poucos privilégios. Não são necessárias permissões especiais ou acesso de administrador, qualquer conta de usuário do domínio serve.
[2]: Enumerar SPNs (Service Principal Name)
O atacante verifica o domínio para encontrar contas de serviço que tenham SPNs associados. Esses SPNs representam serviços em execução na rede como SQL, HTTP, etc e estão vinculados a contas de domínio.
[3]: Solicitar TGS para o SPN
Assim que o atacante encontrar os SPNs, ele solicitará um tíquete de Serviço (TGS) ao Controlador de Domínio (KDC) para esses serviços. Esses tíquetes são criptografados usando o hash NTLM da senha da conta de serviço. O invasor não precisa da senha para solicitar o tíquete apenas do SPN.
[4]: Extrair o Ticket TGS
O invasor extrai o ticket TGS da memória ou diretamente usando ferramentas.
[5]: Quebrar o Ticket TGS Offline
O ticket TGS criptografado agora é quebrado offline, usando ferramentas como hashcat, john the ripper.
O invasor executa um ataque de força bruta ou de dicionário para recuperar a senha em texto simples da conta de serviço. Como o ticket é criptografado com o hash da conta, quebrar o ticket é o mesmo que obter a senha.
[6]: Use a senha quebrada
Se for bem-sucedido, o invasor agora terá as credenciais da conta de serviço. Muitas contas de serviço têm privilégios altos (como administrador local ou até mesmo administrador de domínio) ou podem ser usadas para movimentação lateral, acesso a bancos de dados ou aumento de privilégios.
Permissões que devem ser observadas
As permissões listadas abaixo podem ser exploradas para realização do ataque Kerberoasting ou para movimentação lateral que resulta neste ataque.
WriteSPN
servicePrincipalName (SPN) é o mapeamento entre um serviço (por exemplo, HTTP/webserver.example.com) e a conta de serviço no AD que representa esse serviço.
WriteSPN permite que o objeto com essa permissão adicione, remova ou modifique SPNs no objeto de conta (usuário/computador) alvo.
Normalmente só contas administrativas ou de serviço têm permissão para modificar SPNs; quando essa permissão é delegada incorretamente, surge um vetor de ataque.
GenericAll
Grupo: O controle total de um grupo permite que você modifique os membros do grupo.
Conta de usuário: Permite alterar a senha do usuário.
Permite "Shadow Credentials" ataque ao modificar o atributo "msds-KeyCredentialLink" para criar "Shadow Credentials" e se autenticar usando o método Kerberos PKINIT.
É possível modificar o atributo "servicePrincipalNames" de uma conta para realizar Kerberoasting ataque.
Computador: O atacante pode ler a senha armazenada no LAPS do computador. Também permite alteração nos atributos "msds-KeyCredentialLink" e "servicePrincipalNames".
GPO: Permite modificar políticas de GPO que podem ser usadas para enviar uma política maliciosa como uma nova tarefa agendada.
OU: Permite criar OUs que herdam políticas maliciosas.
ForceChangePassword: Permite alterar a senha de uma conta de usuário sem saber a senha atual.
GenericWrite: Permite alterar atributos como membros de um grupo ou o SPN. O atacante pode adicionar a si mesmo em um grupo. Ações maliciosas também podem ser realizadas em GPO e OUs como descrito na permissão GenericAll.
Remote Management Users: Grupo que dá acesso remoto, inclusive usando o protocolo WinRM.
Ferramentas para executar Kerberoasting
- BloodHound
- Impacket
- Evil-WinRM
- Netexec
- net
Artigos relacionados:
AD Exploit - Evil-WinRM e BloodHound
#HACKINGBR
Comentários
Postar um comentário