Elad Shamir

Depois de lançar patches de segurança para duas vulnerabilidades do Active Directory durante a Patch Tuesday de novembro de 2021, a Microsoft pediu aos clientes em 20 de dezembro que aplicassem os patches imediatamente para evitar que os invasores assumissem o controle dos domínios do Windows. Além da aplicação de patches, as organizações podem aumentar suas defesas contra ataques executando algumas ações que ajudarão a impedir a criação não autorizada de contas que podem levar ao aumento de privilégios e a um ataque.

Leitura relacionada

Ver os bastidores do CVE-2021-42278 e do CVE-2021-42287

Em9 de Novembro de 2021, a Microsoft lançou quatro CVEs relacionados com problemas de segurança no Active Directory e atribuiu-os a Andrew Bartlett. O tema comum a três destas actualizações de segurança parece envolver a validação da exclusividade de determinados atributos de objectos do AD e a verificação de que não há cruzamento de fios ao emitir bilhetes Kerberos, o que leva à emissão de bilhetes para o mandante errado ou para o serviço errado.

Enquanto muitos na comunidade infosec especulavam que a exploração destes problemas envolveria condições de corrida não fiáveis ou outros casos extremos, os investigadores de segurança Charlie Clark e Ceri Coburn publicaram um artigo que demonstra como o CVE-2021-42278 pode ser utilizado abusivamente para aumentar privilégios por defeito de forma fiável em qualquer domínio/floresta, e mesmo em relações de confiança entre florestas em configurações específicas.

Antes desta actualização de segurança, não existia qualquer imposição que exigisse que o atributo sAMAccountName das contas de computador/serviço terminasse com um sinal de dólar ($), permitindo a existência de contas com um nome idêntico ao de contas privilegiadas, como o controlador de domínio, excepto pelo sinal de dólar final.

Charlie e Ceri descobriram que um atacante podia pedir um TGT (Ticket Granting Ticket) Kerberos para uma conta com um sAMAcountName idêntico ao de um controlador de domínio (excluindo o sinal de dólar à direita) e depois alterar o atributo sAMAccountName dessa conta. O TGT do atacante continuaria a ser válido, apesar de alterar o atributo sAMAccountName da conta.

Agora, o atacante pode chamar a extensão S4U2Self Kerberos para obter um Ticket de Serviço Kerberos para qualquer utilizador arbitrário, incluindo utilizadores privilegiados - como membros do grupo Admins do Domínio - para o serviço associado ao TGT do atacante. O controlador de domínio tentaria emitir o bilhete para um serviço associado ao nome da conta no TGT sem o sinal de dólar. Quando o controlador de domínio não consegue encontrar essa conta porque o atributo sAMAccountName foi alterado, procura um serviço associado ao nome no TGT com um sinal de dólar à direita e encontra a conta do controlador de domínio. Como resultado, o controlador de domínio emitiria de forma fiável um bilhete para o utilizador privilegiado para o controlador de domínio e enviá-lo-ia para o atacante.

Apesar de uma funcionalidade da extensão de delegação restrita Kerberos ser utilizada de forma abusiva neste ataque (S4U2Self), adicionar todas as contas privilegiadas ao grupo Protected Users ou defini-las como sensíveis para delegação não reduziria o risco porque estes controlos de segurança apenas afectam o S4U2Proxy.

Embora este ataque exija privilégios de escrita no atributo sAMAccountName de uma conta que tenha pelo menos um Service Principal Name (SPN), por predefinição, todos os utilizadores autenticados podem criar até dez novas contas de computador no domínio, o que lhes permite "trazer a sua própria conta de computador" e explorar esta vulnerabilidade.

Note-se que o grupo Utilizadores Autenticados inclui utilizadores estrangeiros de outras florestas com uma relação de confiança adequada, o que significa que - de acordo com a configuração predefinida - os atacantes podem criar uma conta de computador numa floresta de confiança e executar o ataque também nessa floresta, quebrando outro limite de segurança.

Como mitigar o CVE-2021-42278 e o CVE-2021-42287

Para evitar ataques que exploram o CVE-2021-42278 e o CVE-2021-42287, recomendo vivamente três itens de acção:

  1. Instalar imediatamente as correcções(CVE-42287 e CVE-422278)
  2. Alterar o valor do atributo MSDS-MachineAccountQuota para zero
  3. Aplicar o Princípio do Privilégio Mínimo à atribuição de direitos de utilizador com a etiqueta "Adicionar estações de trabalho ao domínio" (SeMachineAccountPrivilege)

Este plano de acção ajudará a evitar a criação não autorizada de contas de computador e a elevar a fasquia para a execução deste ataque, bem como de vários outros ataques que requerem uma conta de computador ou uma conta que tenha um SPN.