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:
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.
El usuario recibe el TGT.
El usuario presenta el TGT al DC para pedir un TGS para un servicio especĂfico (TGS-REQ).
El TGS se cifra con el hash NTLM del servicio o cuenta de computadora y se devuelve al usuario (TGS_REP).
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
nslookupBĂş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
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
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:
NEGOTIATE_MESSAGE → del cliente al servidor.
CHALLENGE_MESSAGE → respuesta del servidor.
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?