Active Directory Domain Services Elevation of Privilege Vulnerability
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply updates per vendor instructions.
Resumo
CVE-2021-42287 é a segunda metade da cadeia conhecida como 'noPac' (ou sAMAccountName spoofing), que permite a um usuário de domínio comum escalar para privilégios de Domain Admin explorando como o KDC do Active Directory resolve nomes de contas de máquina no Kerberos. Combinada com CVE-2021-42278, ela vira um dos caminhos mais diretos e confiáveis de comprometimento total de domínio já documentados, e por isso está no catálogo KEV da CISA com exploração confirmada. O impacto é crítico, mas a exploração exige que a política padrão de MachineAccountQuota (permitir que usuários comuns criem contas de computador) não tenha sido restringida — condição que existe por padrão na maioria dos domínios que nunca foi endurecida.
Detalhamento técnico
A falha (CWE-269, gestão inadequada de privilégios) está na forma como o Key Distribution Center (KDC) do Active Directory Domain Services valida a identidade de uma entidade ao montar o Privilege Attribute Certificate (PAC) durante a emissão de tickets Kerberos. Contas de computador no AD normalmente têm um sAMAccountName terminado em '$' (ex.: DC01$), o que as diferencia de contas de usuário. A vulnerabilidade irmã, CVE-2021-42278, permite renomear o sAMAccountName de uma conta de computador para um valor sem o '$', inclusive coincidindo com o nome de um Domain Controller existente (ex.: 'DC01' em vez de 'DC01$').
CVE-2021-42287 entra na segunda etapa: quando o atacante solicita um Ticket Granting Ticket (TGT) para essa conta renomeada e, em seguida, restaura o nome original da conta (ou apaga a conta de computador criada), o KDC — ao processar a requisição de ticket de serviço subsequente — falha em revalidar corretamente que a entidade referenciada no PAC ainda existe com aquele SID e nome. Isso permite que o ticket resultante seja tratado como pertencente à conta de máquina do Domain Controller original, efetivamente impersonando o próprio DC dentro do protocolo Kerberos.
O atacante controla três elementos: a criação de uma conta de computador arbitrária (via privilégio padrão de MachineAccountQuota), o valor do sAMAccountName dessa conta (renomeável para se sobrepor ao nome de um DC) e a sequência de chamadas Kerberos (S4U2Self/TGT request, rename, TGS request) que explora a janela de inconsistência entre nome e SID no KDC. Não é necessário controlar código, driver ou serviço — é abuso de lógica de protocolo, não corrupção de memória.
Como é explorada
O pré-requisito real é autenticação de domínio com qualquer conta de usuário comum — não é necessário nenhum privilégio administrativo — combinada com a configuração padrão de MachineAccountQuota (tipicamente 10 no AD out-of-the-box), que permite a qualquer usuário autenticado criar até dez objetos de computador no domínio. Sem essa cota disponível (organizações que zeraram MachineAccountQuota, prática recomendada há anos, ou que já usaram a cota), o vetor descrito não funciona diretamente, embora um atacante que já controle qualquer conta de computador existente ainda possa tentar variantes do ataque.
Na prática, o fluxo é: o atacante cria uma conta de computador, renomeia seu sAMAccountName para coincidir com o nome de um Domain Controller do ambiente (sem o sufixo '$'), solicita um TGT nesse estado, depois desfaz a renomeação (ou remove a conta), e usa o ticket resultante para pedir um Service Ticket a serviços como o próprio LDAP/DRSUAPI do domínio. O ticket obtido carrega o contexto de segurança de uma conta de máquina de DC, o que abre caminho para operações como DCSync (extração de hashes de todas as contas do domínio, incluindo krbtgt) ou emissão de tickets com privilégios equivalentes a Domain Admin.
Existem ferramentas públicas de prova de conceito amplamente distribuídas (implementações batizadas de 'noPac' e variantes construídas sobre o framework Impacket), o que reduz a complexidade prática de exploração a um nível baixo para quem já tem uma credencial de domínio válida — mesmo a de menor privilégio, como uma conta de serviço ou usuário comum comprometido por phishing. A presença no catálogo KEV da CISA confirma exploração ativa observada fora de laboratório.
Versões
Como se proteger
A correção primária é aplicar a atualização de segurança da Microsoft de novembro de 2021 (Patch Tuesday) nos Domain Controllers das versões afetadas listadas — Windows Server 2008 SP2, 2008 R2 SP1, 2012 e 2012 R2 (incluindo instalações Server Core). A Microsoft trata essa CVE junto com CVE-2021-42278 na mesma leva de patches; aplicar apenas uma das duas atualizações não neutraliza a cadeia completa, então os dois boletins devem ser instalados em conjunto.
Se o patch não puder ser aplicado imediatamente, o controle compensatório mais eficaz e de baixo custo é reduzir o atributo ms-DS-MachineAccountQuota para 0 em nível de domínio, impedindo que usuários comuns criem novas contas de computador — isso quebra o vetor de criação de conta usado pela cadeia noPac, embora não corrija a falha de validação do KDC em si (um atacante que já controle uma conta de computador existente continua com superfície de ataque). Monitorar e auditar quem tem permissão delegada de criar objetos de computador em OUs específicas também reduz exposição residual.
Não funciona como mitigação: apenas trocar senhas de contas privilegiadas ou reforçar políticas de senha — a falha é de lógica de protocolo Kerberos/AD, não de força de credencial. Isolamento de rede também não resolve, já que a exploração ocorre via tráfego Kerberos/LDAP legítimo dentro do próprio domínio, indistinguível em nível de rede de operações normais de junção de máquina ao domínio.
Como detectar
Nos logs de segurança de Domain Controllers, procurar por sequências anômalas de Event ID 4741 (criação de conta de computador) seguidas rapidamente por Event ID 4742 (modificação de conta, especificamente alteração do atributo sAMAccountName) onde o novo nome se assemelha a um Domain Controller existente do ambiente, e depois uma reversão do nome em curto intervalo de tempo. Também vale correlacionar com Event ID 4768/4769 (emissão de TGT/TGS) associados a contas de computador criadas fora do processo normal de provisionamento de máquinas (imaging, GPO de junção ao domínio).
Não há assinatura de rede única e confiável, já que o tráfego usa Kerberos/LDAP padrão; a detecção depende quase inteiramente de correlação de eventos de auditoria do AD e de ferramentas de threat hunting específicas para AD (ex.: consultas voltadas a criação/renomeação de objetos computer fora de padrão). Ferramentas públicas de exploração (variantes 'noPac') costumam gerar esse padrão de criação-renome-renome-reverso em janela de segundos, o que é o indicador mais forte disponível.