retornar retornar
Descodificação de ameaças cibernéticas  para 2023

POR:Martín Gelbort
(pesquisador e instrutor de segurança cibernética)

COMPARTILHAR

Twitter Facebook Linkedin

Delegação Kerberos: quando a segurança se torna uma vulnerabilidade

No Active Directory (AD), a delegação restrita é um recurso de segurança que permite que um serviço (conta de serviço ou servidor) atue em nome de um usuário somente para serviços específicos definidos. A delegação restrita é configurada para evitar o uso indevido de credenciais e limitar a possível exposição das credenciais.

No entanto, essa funcionalidade apresentou vulnerabilidades críticas. Essas falhas podem permitir que invasores mal-intencionados elevem privilégios e acessem indevidamente recursos confidenciais.

Uso

Imagine um ambiente em que um servidor da Web precise acessar um banco de dados SQL em nome de usuários autenticados. Com a delegação restrita, você configuraria a conta de serviço do servidor Web de modo que ela só pudesse delegar credenciais ao serviço SQL. Isso impede que essa conta acesse outros serviços não relacionados. Em outras palavras:

 • O servidor Web, com delegação restrita configurada, pode usar o tíquete Kerberos do usuário para solicitar um tíquete de serviço para o banco de dados SQL.

 • O Active Directory verifica as configurações de delegação restrita do servidor Web para garantir que ele esteja autorizado a delegar credenciais somente para o banco de dados SQL SPN.

Exemplo

 • Um usuário, John, autentica-se no serviço da Web (executado na conta de serviço "webservice") usando um mecanismo de autenticação (não compatível com Kerberos).

 • O serviço da Web solicita um tíquete do Key Distribution Center (KDC) para a conta de John sem fornecer uma senha, como a conta "webservice".

 • O KDC verifica o valor de userAccountControl do webservice para o atributo TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION e se a conta do John não está bloqueada para delegação. Se estiver OK, ele retorna um tíquete encaminhável para a conta do John (S4U2Self).

 • Em seguida, o serviço retorna esse tíquete ao KDC e solicita um tíquete de serviço para o serviço "CIFS/arg-mssql.argentina.contoso.corp".

 • O KDC verifica o campo "msDS-AllowedToDelegateTo" na conta do serviço da Web. Se o serviço estiver listado, ele retornará um tíquete de serviço para "arg-mssql" (S4U2Proxy).

 • O serviço da Web agora pode se autenticar no CIFS em "arg-mssql" como John usando o TGS fornecido.


Enumeração

Para enumerar os usuários com delegação restrita, podemos usar o PowerView. Execute o seguinte comando em uma sessão do PowerShell:


O comando lista os usuários com a permissão "Trusted to Authenticate for Delegation" e mostra que o usuário "webservice" pode delegar credenciais aos serviços CIFS especificados.

Abuso

Em teoria, a delegação restrita limita os danos que podem ocorrer se uma conta do AD for comprometida. Mas a delegação restrita pode ser abusada: um adversário que compromete a senha em texto simples ou o hash de senha de uma conta configurada com delegação restrita a um serviço pode se passar por qualquer usuário no ambiente para acessar esse serviço. Por exemplo, se a delegação restrita estiver configurada em um SPN do Microsoft SQL, um invasor poderá obter acesso privilegiado a esse banco de dados.

Para abusar da delegação restrita no cenário acima, precisamos ter acesso à conta do serviço da Web. O acesso inicial pode ser possível por meio de vulnerabilidades no serviço da Web que poderiam permitir a execução de comandos no sistema operacional ou outras vulnerabilidades no Active Directory.

Se tivermos acesso a essa conta, poderemos acessar os serviços listados em "msDS-AllowedToDelegateTo" da conta "webservice" como QUALQUER usuário.

Observe que ainda não temos acesso ao compartilhamento de administração C$ no host de destino:


Para executar a varredura, podemos usar o seguinte comando:


O comando acima é uma execução do Rubeus (uma ferramenta pós-exploração para lidar com tíquetes Kerberos no Windows). Esse comando específico usa a funcionalidade S4U (Service for User) para executar uma delegação restrita para obter um tíquete de serviço (TGS) para outro serviço em nome de um usuário:

 • /user:webservice: especifica o nome do usuário do serviço (conta de serviço) a ser usado. Nesse caso, o usuário é "webservice".

 • /aes256:7d214...: Fornece a chave AES256 do usuário "webservice". Essa chave é necessária para gerar tíquetes Kerberos.

 • /impersonateuser:Administrator: especifica o usuário a ser personificado, nesse caso "Administrador".

 • /msdsspn: "CIFS/arg-mssql.argentina.contoso.corp: Define o Service Principal Name (SPN) do serviço que você deseja acessar. Aqui, o SPN é para o serviço CIFS no servidor "arg-mssql.argentina.contoso.corp".

 • /pptt: significa "Pass-The-Ticket". Esse parâmetro diz ao Rubeus para injetar o tíquete TGS gerado diretamente na sessão atual, efetivamente "passando" o tíquete.

Após a execução, o tíquete é importado com sucesso:


Ao executar o comando a seguir, podemos ver que o tíquete existe:


Dessa forma, podemos acessar o sistema de arquivos em "arg-mssql", demonstrando que o movimento lateral é possível usando essa técnica:


Mitigação

Configurações da conta

Uma técnica de defesa contra ataques relacionados à delegação é colocar as contas confidenciais que não devem ser delegadas no grupo Usuários Protegidos ou marcar a caixa "A conta é confidencial e não pode ser delegada" em "Usuários e computadores do Active Directory" na guia "Conta".

Monitorar os registros de segurança

Implemente uma auditoria detalhada dos registros de segurança do Windows, especialmente dos eventos relacionados ao Kerberos:

 • 4768 (Concessão de tíquete Solicitação de tíquete)
 • 4769 (Solicitação de tíquete de serviço)
 • 4770 (renovação do TGT)
 • 4771 (Falha na pré-autenticação do Kerberos)

Usar ferramentas SIEM

As ferramentas de gerenciamento de eventos e informações de segurança (SIEM) podem ajudar a detectar padrões anômalos e comportamentos suspeitos.

Rotação regular de senhas e chaves

Altere periodicamente as senhas e as chaves das contas de serviço e os privilégios elevados para reduzir a janela de oportunidade para os invasores.