Guía sobre los problemas de seguridad de Microsoft Active Directory rootDSE / C-LDAP

¿Qué es C-LDAP en los servicios de Microsoft Active Directory?

Active Directory (AD) es un servicio de directorio creado por Microsoft. Los servicios de Active Directory incluyen AD Certificate Systems, AD Domain Services, AD Federation Services, AD Lightweight Directory Services y AD Rights Management Services. Un servidor que ejecuta Active Directory Domain Services (AD DS) se le llama controlador de dominio.
Entre otros protocolos, Active Directory utiliza LDAP (en inglés, Lightweight Directory Access Protocol) en el puerto TCP 389.
También utiliza C-LDAP (en inglés, Connection-less Lightweight Directory Access Protocol) en el puerto UDP 389 para búsquedas hacia la entrada rootDSE.

¿Qué es la entrada AD rootSDE?

La entrada rootDSE es creada por defecto durante la configuración de Active Directory y puede ser consultada por clientes sin autenticar (también conocidos como AD-Ping). Esta entrada provee el estatus de la configuración del servidor y contiene atributos que representan las funcionales, capacidades y extensiones provistas por dicho servidor.


Vulnerabilidades:

Si su Active Directory está expuesto a Internet, la consulta de la entrada rootDSE le permite a los hackers obtener información sobre su servidor y configuración AD para realizar una recolecta de información y preparar un ataque.

También, desde que C-LDAP está basado en UDP, las consultas rootDSE pueden ser explotadas para realizar ataques de amplificación (El atacante puede falsificar su dirección IP de destino para saturarla con respuestas rootDSE):
https://www.us-cert.gov/ncas/alerts/TA14-017A

¿Cómo verificar si su servidor es vulnerable?

Utilice el siguiente comando desde una máquina remota, como root, para obtener la información rootDSE de su servicio de Active Directory:
# nmap -Pn -p 389 --script ldap-rootdse <dirección-IP-del-servidor>

Ejemplo de salida:

PORT    STATE SERVICE
389/tcp open  ldap
| ldap-rootdse:
| LDAP Results
|   <ROOT>
|       currentTime: 20170000115711.0Z
|       subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=ws2012,DC=ms
|       dsServiceName: CN=NTDS Settings,CN=SERVERNAME,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ws2012,DC=ms
|       namingContexts: DC=ws2012,DC=ms
|       namingContexts: CN=Configuration,DC=ws2012,DC=ms
|       namingContexts: CN=Schema,CN=Configuration,DC=ws2012,DC=ms
|       namingContexts: DC=DomainDnsZones,DC=ws2012,DC=ms
|       namingContexts: DC=ForestDnsZones,DC=ws2012,DC=ms
|       defaultNamingContext: DC=ws2012,DC=ms
|       schemaNamingContext: CN=Schema,CN=Configuration,DC=ws2012,DC=ms
|       configurationNamingContext: CN=Configuration,DC=ws2012,DC=ms
|       rootDomainNamingContext: DC=ws2012,DC=ms
|       supportedControl: supported.extension.OID.
|       supportedLDAPVersion: 3
|       supportedLDAPVersion: 2
|       supportedLDAPPolicies: MaxPoolThreads
|       supportedLDAPPolicies: MaxPercentDirSyncRequests
|       supportedLDAPPolicies: MaxDatagramRecv
|       supportedLDAPPolicies: MaxReceiveBuffer
|       supportedLDAPPolicies: InitRecvTimeout
|       supportedLDAPPolicies: MaxConnections
|       supportedLDAPPolicies: MaxConnIdleTime
|       supportedLDAPPolicies: MaxPageSize
|       supportedLDAPPolicies: MaxBatchReturnMessages
|       supportedLDAPPolicies: MaxQueryDuration
|       supportedLDAPPolicies: MaxTempTableSize
|       supportedLDAPPolicies: MaxResultSetSize
|       supportedLDAPPolicies: MinResultSets
|       supportedLDAPPolicies: MaxResultSetsPerConn
|       supportedLDAPPolicies: MaxNotificationPerConn
|       supportedLDAPPolicies: MaxValRange
|       supportedLDAPPolicies: MaxValRangeTransitive
|       supportedLDAPPolicies: ThreadMemoryLimit
|       supportedLDAPPolicies: SystemMemoryLimitPercent
|       highestCommittedUSN: 15800080
|       supportedSASLMechanisms: GSSAPI
|       supportedSASLMechanisms: GSS-SPNEGO
|       supportedSASLMechanisms: EXTERNAL
|       supportedSASLMechanisms: DIGEST-MD5
|       dnsHostName: SERVER.FQDN
|       ldapServiceName: SERVER.SPN
|       serverName: CN=SERVERNAME,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ws2012,DC=ms
|       supportedCapabilities: supported.capabilities.OID.
|       isSynchronized: TRUE
|       isGlobalCatalogReady: TRUE
|       domainFunctionality: 6
|       forestFunctionality: 6
|_      domainControllerFunctionality: 6


Si el comando devuelve un tiempo de respuesta agotado (timeout), es posible que el servicio se ya se encuentre filtrado.


Solución:

Active Directory Domain Services (AD DS) está creado para ser acezado por clientes de confianza, dentro de ambientes de confianza. Esto significa que normalmente no es buena idea exponer estos servicios directamente a Internet o en general en un ambiente donde clientes sin confianza puedan accesar directamente estos servicios.

Existen diferentes opciones disponibles para mitigar este problema y proteger su servidor:
 - Utilice su firewall para filtrar conexiones entrantes en su servidor y solamente permitir las direcciones IP o hosts de confianza que necesiten contactar su AD DS para accederlo.
 - Diseñar su infraestructura AD DS con una arquitectura segura. Dependiendo de sus necesidades, usted debería revisar si su arquitectura requiere conectividad DirectAccess (una funcionalidad tipo VPN) o si requiere AD Federation Services (una funcionalidad tipo single-sign-on web):
https://technet.microsoft.com/en-us/library/dd728034%28v=ws.10%29.aspx

Información adicional sobre las mejores prácticas para proteger Active Directory:
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory

Información adicional sobre el diseño de su infraestructura AD DS:
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/ad-ds-design-and-planning

Referencias externas:

https://technet.microsoft.com/en-us/library/dd578336%28v=ws.10%29.aspx
https://technet.microsoft.com/en-us/library/dn283324%28v=ws.11%29.aspx
https://technet.microsoft.com/en-us/library/dd772723%28v=ws.10%29.aspx
https://msdn.microsoft.com/en-us/library/cc717362.aspx
https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_29942b69-e0ed-4fe7-bbbf-1a6a3f9eeeb6
https://msdn.microsoft.com/en-us/library/ms684291%28v=vs.85%29.aspx
https://www.akamai.com/us/en/multimedia/documents/state-of-the-internet/cldap-threat-advisory.pdf
https://www.us-cert.gov/ncas/alerts/TA14-017A
https://technet.microsoft.com/en-us/library/dd728034%28v=ws.10%29.aspx
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory
https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/ad-ds-design-and-planning

¿Tiene más preguntas? Enviar una solicitud

0 Comentarios

El artículo está cerrado para comentarios.
Tecnología de Zendesk