Saltar al contenido principal
Introducción: ¿Qué es AD CS y por qué es un objetivo crítico?
Penetration Testing

Introducción: ¿Qué es AD CS y por qué es un objetivo crítico?

WWladimir Hernandez
2026-05-10
12 min
SerieAD CS: Atacando la PKI de Windows
  1. 1Introducción: ¿Qué es AD CS y por qué es un objetivo crítico?
  2. 2ESC1 — Enrollee Supplies Subject (SAN arbitrario)

AD CS (Active Directory Certificate Services) es la implementación de PKI de Microsoft integrada en Windows Server. En la práctica, actúa como la autoridad certificadora interna de una organización: el componente encargado de emitir y validar certificados digitales en los que todo el dominio confía por diseño.

Y suele estar mucho más presente de lo que parece:

Autenticación vía Smart Cards y certificados para VPN y Wi-Fi corporativo
Kerberos PKINIT: autenticarse en el dominio con un certificado en lugar de contraseña
Cifrado de archivos con EFS
Firma de scripts y binarios internos
Certificados para servicios web internos como IIS, Exchange o RDP Gateway

Muchas organizaciones lo instalaron hace años, lo configuraron una vez, y nunca más lo tocaron. Ese es el problema.


Conceptos clave

Antes de entrar a las vulnerabilidades, vale la pena tener claros algunos conceptos que van a aparecer en el blog. No es necesario memorizarlos, pero sí entenderlos para que cada ataque tenga sentido.


Plantillas de certificados (Certificate Templates)

Una plantilla es la configuración que define cómo se emite un certificado. Establece quién puede solicitarlo, para qué sirve, cuánto tiempo es válido, y si requiere aprobación manual.

Cuando un usuario solicita un certificado, la CA no improvisa: sigue exactamente lo que dice la plantilla, y ahí está el problema cuando esa plantilla está mal configurada.


EKUs (Extended Key Usages)

Los EKUs, también llamados Application Policies en la documentación de Microsoft, son los atributos que definen para qué puede usarse el certificado que emite una plantilla. Cada propósito está representado por un Object Identifier (OID).

PropósitoOID
Client Authentication1.3.6.1.5.5.7.3.2
Smart Card Logon1.3.6.1.4.1.311.20.2.2
Document Signing1.3.6.1.4.1.311.10.3.12
File Recovery (EFS)1.3.6.1.4.1.311.10.3.4.1
Any Purpose2.5.29.37.0

El EKU más crítico en el contexto de estos ataques es Client Authentication: permite que el certificado se use para autenticarse en el dominio vía Kerberos. Si una plantilla mal configurada lo tiene habilitado, un atacante puede obtener un certificado y autenticarse como cualquier usuario del dominio.


SAN (Subject Alternative Name)

El SAN es el campo del certificado que indica a quién representa. En condiciones normales, la CA construye ese campo desde los atributos reales del usuario en el AD.

El problema ocurre cuando la plantilla permite que el solicitante especifique el SAN libremente. En ese caso, el atacante puede indicar el UPN de cualquier usuario, incluyendo el Administrador del dominio, y la CA lo acepta sin validar.


Enrollment

Enrollment es el proceso mediante el cual un usuario o equipo solicita un certificado a la CA. Los permisos de enrollment en una plantilla definen quién puede hacer esa solicitud.

Cuando esos permisos son demasiado amplios, por ejemplo asignados a Domain Users o Authenticated Users, cualquier cuenta del dominio puede solicitar certificados desde esa plantilla, sea o no su intención legítima.


Manager Approval

Control en la plantilla que indica la solicitud de certificado en estado pendiente hasta que un CA Manager la aprueba manualmente. Cuando está deshabilitado, la CA emite el certificado de inmediato sin intervención humana.

En el contexto de los ataques, la ausencia de Manager Approval es lo que permite que el ataque sea completamente automático.


TGT (Ticket Granting Ticket)

Es el ticket que Kerberos entrega después de una autenticación exitosa. Con un TGT válido de una cuenta privilegiada, el atacante puede solicitar acceso a cualquier servicio del dominio como si fuera esa cuenta.


PKINIT

PKINIT es la extensión de Kerberos que permite autenticarse usando un certificado en lugar de una contraseña. Cuando un atacante obtiene un certificado válido de una cuenta privilegiada, usa PKINIT para solicitar un TGT de Kerberos como esa cuenta, sin necesitar su contraseña.


Caso de uso real: Auto-enrollment + EFS

Para entender por qué ADCS es infraestructura crítica y no solo un servicio técnico, quisimos mostrarlo con un ejemplo práctico y cercano a lo que se podría hacer como empresa.

La empresa COFIACORE genera reportes de ethical hacking con información altamente sensible: vulnerabilidades encontradas, credenciales comprometidas, accesos obtenidos, entre otros. Esos documentos no pueden estar disponibles para cualquier usuario del dominio.
La solución: cifrar esos archivos con EFS usando certificados emitidos por nuestra propia CA. Solo el usuario que tiene el certificado correspondiente puede abrir el archivo. Sin este, sería un acceso denegado.

Paso 1 — Crear la plantilla EFS

Antes de que los usuarios puedan obtener certificados EFS, necesitamos una plantilla configurada en la CA.

En DC1-COFIACORE, duplicamos la plantilla base "EFS básico" y la configuramos de la siguiente manera:

Nombre: EFSUsuario
Validez: 2 años
Subject Name: Generado desde Active Directory, incluye UPN
Seguridad: Domain Users con permisos de Lectura, Inscribir e Inscripción automática

Plantilla EFSUsuario configurada en certsrv.msc con permisos para Domain Users


Paso 2 — Obtener el certificado

ADCS permite configurar auto-enrollment para que el certificado llegue automáticamente cuando el usuario inicia sesión. Para que esto funcione correctamente se debe configurar la GPO de inscripción automática en el dominio.

Para este laboratorio lo generaremos de forma manual para que el proceso sea más visible y fácil de seguir.

En WKS01, como david.soto, abrimos certmgr.msc:

Acción → Todas las tareas → Solicitar automáticamente certificados → Siguiente → Inscribir → Finalizar

Resultado: David tiene su certificado emitido por cofiacore-DC1-COFIACORE-CA en Personal → Certificados.

Certificado EFS emitido para david.soto visible en certmgr.msc


Paso 3 — Crear el archivo confidencial

David acaba de terminar un reporte de vulnerabilidades. Creamos el archivo con PowerShell para simular el escenario:

powershell
New-Item -ItemType Directory ` -Path "$env:USERPROFILE\Documents\Reportes-Confidenciales" ` -Force @" REPORTE DE VULNERABILIDADES - CONFIDENCIAL Cliente: XYZ Corporation Fecha: Marzo 2026 Ethical Hacker: David Soto - COFIACORE HALLAZGOS CRÍTICOS: 1. ESC1 en ADCS - Supply in the request habilitado 2. Kerberoasting posible - 15 service accounts con SPN 3. SMB Signing deshabilitado en servidores de archivos CONFIDENCIAL - NO DISTRIBUIR "@ | Out-File ` -FilePath "$env:USERPROFILE\Documents\Reportes-Confidenciales\Vulnerabilidades-Cliente-XYZ.txt" ` -Encoding UTF8

Creación del archivo confidencial de vulnerabilidades con PowerShell


Paso 4 — Cifrar el archivo

David no necesita conocimientos técnicos para esto. Click derecho en el archivo:

Propiedades → Opciones avanzadas → Cifrar contenido para proteger datos → Aceptar → Aplicar

Cuando Windows pregunta el alcance del cifrado:

Seleccionar: Aplicar cambios a esta carpeta, subcarpetas y archivos

Cifrado EFS activado en las propiedades avanzadas del archivo


Resultado final

powershell
cipher /c "$env:USERPROFILE\Documents\Reportes-Confidenciales\Vulnerabilidades-Cliente-XYZ.txt"

Salida de cipher /c confirmando el cifrado del archivo con el certificado de david.soto

Al intentar abrir el archivo desde la cuenta de hugo.sandoval, otro usuario del dominio, el resultado es "no tiene permiso para abrir este archivo…":

Acceso denegado para hugo.sandoval al intentar abrir el archivo cifrado

Sin el certificado de David, el archivo es ilegible aunque hugo.sandoval tenga acceso físico a la carpeta.

Así es como ADCS debería funcionar.

El problema es que, en muchos entornos, pequeñas decisiones de configuración transforman este sistema de confianza en una de las superficies de ataque más peligrosas de Active Directory.

En la próxima publicación veremos exactamente cómo ocurre.

W

Wladimir Hernandez

CEO

CEO de Cofiacore con más de 10 años de experiencia en ciberseguridad ofensiva y defensiva. Especialista en pruebas de penetración web, análisis de vulnerabilidades y operaciones de Red Team.

OSCP
CEH
BTL1
eWPT
Compartir análisis técnico

Inteligencia Relacionada

Explorar todo