ESC1

O ESC1 é a técnica mais famosa e direta de escalação de privilégios no Active Directory Certificate Services (AD CS). Ele permite que um usuário comum solicite um certificado digital e se passe por qualquer outra pessoa (incluindo um Domain Admin).

1. O que é?

Ocorre quando um Template de Certificado está mal configurado e permite que o solicitante especifique um SAN (Subject Alternative Name) personalizado. O SAN é um campo do certificado que define a identidade do dono (ex: Administrator).

2. Como acontece? (Pré-requisitos)

Para que o ESC1 exista, quatro condições devem ser verdadeiras simultaneamente:

  1. Enrollment Rights: Usuários comuns (ex: Domain Users) têm permissão para solicitar o certificado.

  2. Client Authentication: O template permite o uso do certificado para autenticação (Smart Card Logon, Client Auth, etc).

  3. Manager Approval: A aprovação do gerente de CA está desabilitada (o certificado é emitido na hora).

  4. CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT: Esta é a falha principal. O template permite que o usuário forneça o nome do sujeito no pedido (CSR).

3. Como explorar? (Passo a passo)

A. Enumeração (via Certipy):

certipy find -u user@domain.local -p password -dc-ip 10.10.10.10 -vulnerable

Procure por: [!] Vulnerabilities: ESC1.

B. Solicitação do Certificado (Impersonando o Admin):

Isso gera um arquivo .pfx para o usuário Administrator.

C. Autenticação e Obtenção do Hash NT:

O comando retornará o Hash NT do Administrador, que você pode usar via Pass-the-Hash.

4. Como mitigar?

  • Remover permissões de Enroll de grupos amplos (Domain Users, Authenticated Users)

  • Desabilitar “Supply in request” em templates sensíveis

  • Restringir EKUs apenas ao mínimo necessário

  • Habilitar Manager Approval para emissão de certificados críticos

Atualizado