Kerberos en Active Directory
Last updated
Last updated
Para ver como funciona el tema de el Ticket-Granting Ticket
de forma practica, si reiniciamos la maquina cuando queramos entrara al equipo veremos que nos pide que iniciemos sesion a nivel de dominio con las credenciales de un usuario de dominio.
Este paso sera en el que nosotros tengamos que meter la contraseña para que se realice todo este proceso del Ticket-Granting Ticket
y podamos entrar al escritorio de forma autenticada.
En esa imagen de ahi se ve mediante Wireshark
como se hace el proceso a nivel de red cuando nosotros metemos la contraseña y se hacer el proceso de autenticacion, en el protocolo de AS-REQ
significa el Authentication Service Request
como bien estabamos viendo antes.
Esto es lo que estaria dentro del Request
:
Como bien vimos antes aqui se esta haciendo de la misma forma enviando su Common Name: empleado1
y despues el Service Principal Name (SPN)
que seria el krbtgt
y CORP
.
Despues vemos que da un mini error por que requiere una preverificacion
con un timestamp
para verificar que somos nosotros, por lo que enviamos otro request
y si nos vamos al segundo request
ahora veremos 2 campos:
El TIMESTAMP
y el REQUEST
, si vemos dentro del TIMESTAMP
veremos el valor cifrado con nuestra clave privada que le estamos enviando al SA
, para que luego este mismo la descifre y verifique que somos nosotros.
Y una vez verificado nos responde con un Replay
que seria el AS-REP
que esto contendra el paquetito cifrado mas el ticket
del que tanto estabamos hablando antes:
Despues vemos que hacemos un Request
al Ticket-Granting Service
que seria la parte del primer TGS-REQ
que es la parte en la que le enviamos nuestro ticket
y el Authenticator
y nos devuelve el Ticket
de servicio.
Si vemos un poco mas el paquete, vemos que le estamos pidiendo que nos deje entrara en el servicio llamado host
del WS01
:
Ahora en la parte del Replay
vemos a ver que nos esta dando el Ticket
de servicio mas un paquete cifrado que contiene la clave de sesion
:
Despues vemos otro Replay
y Request
el cual hace el mismo proceso que el anterior solo que se esta intentando autenticar contra el servicio LDAP
el cual es necesario para entrar:
Ya despues lo que hace es autenticarse contra los servicios por el protocolo necesario en este caso por DCERPC
con el ticket
de servicio junto al Authenticator
:
Esto seria el proceso de Kerberos
de forma practica.
Si nosotros nos vamos a nuestro DC
y vemos el siguiente usuario que es esencial para todo esto anterior:
Se llama krbtgt
que en su descripcion pone:
Por lo que este usuario tiene una clave muy larga y no es recomentable cambiarle la clava, ya que cuando se haga el proceso de kerberos
estariamos cifrando con dicha clave el Ticket-Granting Ticket
con esa clave muy corta o poco segura, por lo que seria un riesgo de seguridad.
Si nosotros queremos ver el Service Principal Name
del equipo del empleado1
, abriremos PowerShell
y pondremos lo siguiente:
Info:
Y nos aparece los servicios que corren en el mas el identificador del mismo.
Por ejemplo con el DC
veremos que hay mas servicios corriendo en el:
Info:
Si nosotros intentamos acceder al servicio de SMB
entarndo en un recurso compartido, podremos ver si capturamos las peticiones con Wireshark
que se hace una autenticacion con el Ticket-Granting Ticket
que ya tenemos al servicio como estuvimos viendo anteriormente.
Claramente esto dara un error por que no podremos acceder a el, pero si vamos a Wireshark
veremos que se intento autenticar con el TGS
para dicho servicio, para que le diera el Ticket
de servicio para la autenticacion por SMB
.