Autenticacion
Last updated
Last updated
Autorizacion en AD:
Existen dos protocolos de autorizacion en AD los cuales son Kerberos y NTLM.
La autentiacion por Kerberos se realiza mediante el protocolo Kerberos. El usuario se comunica con el DC o KDC con quien realiza una comunicacion para validar las credenciales y luego de ello se puede comunicar con el computador al cual desea acceder.
Podemos dividir la comunicacion de kerberos en 2 Flujos principales.
El Usuario realiza una solicitud para obtener un TGT (Ticket Granting Ticket) el cual seria un ticket que te permite obtener tickets de servicios.
El servidor responde al usuario con el TGT. Con ello, el usuario puede solicitar el ticket de servicio.
El Usuario envia la solicitud del ticket TGS (Ticket Granting Service) mas la autenticacion del mismo.
El servidor responde con el ticket y la llave o key de sesión.
Luego, con el ticket de servicio (TGS) creado, el usuario puede realizar la consulta al servicio de un computador en especifico.
El server le responde si la autenticacion es valida o no y realiza toda la comunicacion correspondiente.
Como podemos ver, tenemos dos tipos de Tickets, TGT y TGS ambos se encriptan pero con llaves diferentes.
El TGT, como ya vimos es un ticket que sirve para identificar al usuario con el DC. Por ello este va a ser cifrado con la firma del usuario KRBTGT. Si se obtiene la firma de este usuario, se podrian crear Tickets impersonando usuarios con el DC (Golden Ticket).
El TGS, es un ticket que sirve para identificar identificar un usuario con un servicio dentro de un computador para poder utilizar sus recursos. Por ello este es cifrado con la firma del Computador. Si se obtiene la firma de este computador, se podria crear Tickets impersonando servicios (Silver Ticket).
A diferencia del Golden Ticket, el Silver ticket no requiere de conexion al DC ya que utiliza la firmal del computador, no de un usuario que se almacene en el DC esclusivamente. Por ello se dice que el Silver Ticket puede ser generado de manera OFFLINE.
Aca adjunto mas informacion sobre kerberos.
La autenticacion por NTLM se realiza entre el usuario y la PC, luego la pc se comunica con el DC para realizar la validacion de las credenciales, en caso que no pueda conectarse al DC utiliza las credenciales almacenadas en el cache.
El usuario inicia sesión en el escritorio del ordenador (denominado Cliente) introduciendo el nombre de usuario y la contraseña. El cliente envía un mensaje NTLM NEGOTIATE_MESSAGE para solicitar autenticación al servidor.
El servidor envía un NTLM CHALLENGE_MESSAGE ([MS-NLMP] sección 2.2.1.2) al cliente.
El cliente responde al reto firmándolo con su clave y enviando la respuesta en un NTLM AUTHENTICATE_MESSAGE al servidor.
El servidor reenvía la respuesta del cliente al controlador de dominio en un mensaje NETLOGON_NETWORK_INFO.
El controlador de dominio verifica la firma de la respuesta y devuelve el resultado al servidor en un mensaje NETLOGON_VALIDATION_SAM_INFO4. Si la verificación se realiza correctamente, el mensaje contiene el PAC del usuario con los datos de autorización. Si la verificación no tiene éxito, se deniega el inicio de sesión.
La comunicación ya sea Kerberos o NTLM se envia cifrada, pero... El formato antes del cifrado es User:Pass o User:Hash?. [D004]
Kerberos como NTLM son protocolos algo antiguos pero usados hasta el dia de hoy, cada uno para algo en especifico, NTLM no puede morir porque es requerido en muchos servicios ya sean Legacy o Legados.
Luego de ello, existen un protocolo que decide en los sistemas y dependiendo de que requisitos tenga el sistema si es que este usa Kerberos o NTLM como autenticacion.