Active Directory Protocols

Kerberos, DNS, LDAP, MSRPC

Los sistemas operativos Windows usan muchos protocolos para comunicarse, pero Active Directory depende de forma especĂ­fica de:

  • LDAP (Lightweight Directory Access Protocol)

  • La versiĂłn de Kerberos de Microsoft

  • DNS para autenticaciĂłn y comunicaciĂłn

  • MSRPC, la implementaciĂłn de Microsoft de Remote Procedure Call (RPC), que es una tĂ©cnica de comunicaciĂłn entre procesos usada en aplicaciones basadas en el modelo cliente-servidor.

Kerberos

Kerberos es el protocolo de autenticaciĂłn predeterminado para cuentas de dominio desde Windows 2000.

  • Es un estándar abierto que permite interoperabilidad con otros sistemas.

  • Permite autenticaciĂłn mutua: tanto el usuario como el servidor verifican su identidad.

  • Es sin estado y basado en tickets: nunca transmite la contraseña del usuario por la red.

Kerberos en AD:

  • Los Controladores de Dominio (DCs) tienen un Key Distribution Center (KDC).

  • Cuando un usuario inicia sesiĂłn, el cliente solicita un ticket al KDC cifrando la solicitud con la contraseña del usuario.

  • Si el KDC puede descifrarla (AS-REQ), emite un Ticket Granting Ticket (TGT).

  • El usuario usa el TGT para pedir un Ticket Granting Service (TGS) para el servicio deseado.

  • Finalmente, el usuario presenta el TGS al servicio, que lo descifra y otorga acceso.

Resumen del proceso de autenticaciĂłn Kerberos:

  1. El usuario cifra un timestamp con su contraseña y lo envía al KDC. El KDC lo valida y emite un TGT cifrado con la clave secreta de la cuenta krbtgt.

  2. El usuario recibe el TGT.

  3. El usuario presenta el TGT al DC para pedir un TGS para un servicio especĂ­fico (TGS-REQ).

  4. El TGS se cifra con el hash NTLM del servicio o cuenta de computadora y se devuelve al usuario (TGS_REP).

  5. El usuario presenta el TGS al servicio (AP_REQ) y, si es válido, se le permite el acceso.

El puerto estándar de Kerberos es 88 TCP/UDP. Durante la enumeración, es común localizar DCs escaneando el puerto 88 con herramientas como Nmap.

DNS

Active Directory Domain Services (AD DS) usa DNS para:

  • Permitir que clientes localicen Controladores de Dominio.

  • Facilitar la comunicaciĂłn entre DCs.

  • Resolver nombres de host a direcciones IP.

CaracterĂ­sticas clave:

  • Usa SRV records para permitir a clientes localizar servicios (servidores de archivos, impresoras, DCs).

  • Dynamic DNS actualiza automáticamente registros si cambia la IP de un sistema.

  • Si el DNS no tiene la IP correcta, los clientes no podrán localizar ni comunicarse con Ă©l.

Proceso tĂ­pico:

  • El cliente consulta DNS por un SRV record del DC.

  • Recupera el hostname del DC.

  • Resuelve el hostname a la IP del DC.

Puertos:

  • UDP 53 (predeterminado)

  • TCP 53 (usado cuando los mensajes superan 512 bytes o UDP falla)

Ejemplos con nslookup

BĂşsqueda directa:

BĂşsqueda inversa:

Obtener IP de un host:

Para más detalles sobre DNS, puedes consultar módulos de DNS Enumeration Using Python o la sección DNS de Information Gathering - Web Edition.

LDAP

Active Directory usa Lightweight Directory Access Protocol (LDAP) para consultas de directorio.

  • Es un protocolo abierto y multiplataforma.

  • La versiĂłn más reciente es LDAPv3 (RFC 4511).

  • Es esencial para admins y pentesters entender su funcionamiento en AD.

  • LDAP usa puerto 389 y LDAPS (con SSL/TLS) usa puerto 636.

Funcionalidad LDAP en AD:

  • Almacena informaciĂłn de cuentas y seguridad.

  • Permite compartir esta informaciĂłn con otros dispositivos en la red.

  • Es el "lenguaje" usado para que aplicaciones se comuniquen con AD.

  • Un Domain Controller escucha solicitudes LDAP.

Analogia:

AD : LDAP = Apache : HTTP

Nota: Algunas organizaciones usan LDAP sin AD, con servidores como OpenLDAP.

AutenticaciĂłn LDAP

LDAP usa la operaciĂłn BIND para establecer el estado de autenticaciĂłn.

Tipos de autenticaciĂłn LDAP:

  • AutenticaciĂłn Simple:

    • AnĂłnima, no autenticada, usuario/contraseña.

    • Usuario y contraseña se usan en la solicitud BIND.

  • AutenticaciĂłn SASL (Simple Authentication and Security Layer):

    • Usa servicios externos como Kerberos para autenticarse.

    • LDAP envĂ­a mensajes de desafĂ­o/respuesta hasta autenticar.

    • Más seguro al separar mĂ©todos de autenticaciĂłn del protocolo de aplicaciĂłn.

LDAP envía mensajes en texto claro por defecto. Se recomienda usar TLS/SSL para proteger la información en tránsito.

MSRPC

MSRPC es la implementaciĂłn de Microsoft de Remote Procedure Call (RPC).

  • Usada para comunicaciĂłn cliente-servidor.

  • Windows la usa para acceder a sistemas en AD mediante interfaces RPC clave.

Interfaces RPC en AD

Nombre de Interfaz
DescripciĂłn

lsarpc

Llamadas RPC al Local Security Authority (LSA) para gestionar polĂ­tica de seguridad local, control de auditorĂ­a y autenticaciĂłn interactiva.

netlogon

Proceso de Windows que autentica usuarios y servicios en el dominio. Servicio en segundo plano.

samr

Remote SAM. Gestiona la base de datos de cuentas del dominio (usuarios y grupos). Permite a admins CRUD de objetos. Atacantes lo usan para reconocimiento del dominio. Puede limitarse a administradores con cambios de registro.

drsuapi

API para Directory Replication Service (DRS). Gestiona replicaciĂłn entre DCs. Atacantes pueden usarlo para replicar NTDS.dit, extraer hashes y realizar Pass-the-Hash o cracking offline.

samr es particularmente peligroso porque, por defecto, todos los usuarios autenticados pueden consultar mucha informaciĂłn del dominio. Organizaciones pueden protegerse limitando estas consultas solo a administradores.

AutenticaciĂłn NTLM

Además de Kerberos y LDAP, Active Directory usa varios otros métodos de autenticación que pueden (y suelen) ser abusados por aplicaciones y servicios en AD.

Entre estos se incluyen: LM, NTLM, NTLMv1 y NTLMv2.

  • LM y NTLM son nombres de hashes.

  • NTLMv1 y NTLMv2 son protocolos de autenticaciĂłn que usan el hash LM o NT.

Aunque ninguno es perfecto, Kerberos suele ser el protocolo de elecciĂłn siempre que sea posible.

Es esencial entender la diferencia entre los tipos de hash y los protocolos que los usan.

ComparaciĂłn de Hash y Protocolo

Hash/Protocolo
Técnica criptográfica
AutenticaciĂłn mutua
Tipo de mensaje
Tercero de confianza

NTLM

Criptografía de clave simétrica

No

NĂşmero aleatorio

Domain Controller

NTLMv1

Criptografía de clave simétrica

No

Hash MD4, nĂşmero aleatorio

Domain Controller

NTLMv2

Criptografía de clave simétrica

No

Hash MD4, nĂşmero aleatorio

Domain Controller

Kerberos

Criptografía simétrica y asimétrica

SĂ­

Ticket cifrado usando DES, MD5

Domain Controller / Key Distribution Center (KDC)

LM

LAN Manager (LM o LANMAN) es el mecanismo más antiguo para almacenamiento de contraseñas en Windows.

  • DebutĂł en 1987 en OS/2.

  • Si está habilitado, se guarda en SAM en un host Windows y en NTDS.DIT en un Domain Controller.

  • Deshabilitado por defecto desde Windows Vista / Server 2008 por sus debilidades.

  • AĂşn se encuentra en entornos grandes con sistemas antiguos.

Limitaciones:

  • Contraseñas limitadas a 14 caracteres.

  • No distingue mayĂşsculas/minĂşsculas.

  • Convertidas a mayĂşsculas antes de hashearse, reduciendo el keyspace.

  • Fácil de crackear con herramientas como Hashcat.

Proceso de creaciĂłn del hash LM:

  • Contraseña → dos bloques de 7 caracteres.

  • Si <14 caracteres, se rellena con NULL.

  • Cada bloque → clave DES.

  • Se cifran con la cadena KGS!@#$%.

  • Resultado: dos valores concatenados de 8 bytes.

ObservaciĂłn:

  • Para contraseñas ≤7 caracteres, la segunda mitad del hash LM es siempre la misma.

  • Hash LM tĂ­pico:

Windows hasta Vista / Server 2008 almacenaba por defecto tanto LM como NTLM.

NTHash (NTLM)

NT LAN Manager (NTLM) es el protocolo moderno en Windows.

  • Usa un protocolo challenge-response con tres mensajes:

    1. NEGOTIATE_MESSAGE → del cliente al servidor.

    2. CHALLENGE_MESSAGE → respuesta del servidor.

    3. AUTHENTICATE_MESSAGE → del cliente al servidor.

  • Hashes almacenados en SAM o NTDS.DIT.

Algoritmo del NT Hash:

Ejemplo de NT Hash:

Formato completo del hash NTLM:

Partes del hash:

  • Rachel → nombre de usuario.

  • 500 → RID (Administrador).

  • LM hash → puede ser inutilizable si está deshabilitado.

  • NT hash → usado para cracking o pass-the-hash.

Ejemplo de ataque pass-the-hash con CrackMapExec:

NTLM no usa salt. NT hashes soportan todo Unicode (65,536 caracteres). Pueden crackearse offline con Hashcat, incluso contraseñas largas con ataques de diccionario + reglas.

NTLMv1 (Net-NTLMv1)

  • NTLMv1 → challenge-response usando el NT hash.

  • Usa LM y NT hash, lo que facilita su cracking offline tras captura (p.ej., con Responder o NTLM relay).

  • No soporta pass-the-hash.

  • Protocolo para autenticaciĂłn de red.

Algoritmo:

Ejemplo de hash NTLMv1 completo:

NTLMv1 fue la base para versiones modernas pero tiene vulnerabilidades conocidas.

NTLMv2 (Net-NTLMv2)

Introducido en Windows NT 4.0 SP4 como alternativa más segura.

  • Default desde Windows Server 2000.

  • Más robusto contra ataques de spoofing.

  • En respuesta al desafĂ­o de 8 bytes del servidor, el cliente envĂ­a dos respuestas.

Algoritmo:

Ejemplo de hash NTLMv2:

NTLMv2 endurece la seguridad respecto a v1, dificultando ataques de cracking y relay.

Domain Cached Credentials (MSCache2)

Para cuando un host no puede comunicarse con el DC (p.ej., por un corte de red):

  • Windows implementa MS Cache v1/v2 (Domain Cached Credentials - DCC).

  • Guarda los Ăşltimos 10 hashes de usuarios de dominio que iniciaron sesiĂłn en el equipo.

  • Almacenados en:

CaracterĂ­sticas:

  • No sirven para pass-the-hash.

  • Muy lentos de crackear incluso con GPUs potentes.

  • Los ataques necesitan ser muy dirigidos o aprovechar contraseñas dĂ©biles.

Formato de hash DCC2:

Como pentesters es vital entender qué tipos de hashes podemos encontrar en AD, sus fortalezas, debilidades, formas de abuso (cracking, pass-the-hash, relay) y cuándo un ataque es inviable (como perder días intentando romper DCCs).

Last updated

Was this helpful?