Buscar

Contraseña KRBTGT - Active Directory

¿Qué es la cuenta KRBTGT?

La cuenta de usuario: KRBTGT es una cuenta que se crea automáticamente al promocionar el primer controlador de dominio del dominio (DC).

Contraseña KRBTGT - Active Directory

Esta cuenta queda situada en el contenedor de Active Directory de: Users.

La descripción de la cuenta es la siguiente: "Cuenta de servicio de centro de distribución de claves"

La idea de esta cuenta es autenticar los tickets de Kerberos utilizando el servicio: Key Distribution Center (KDC).

¿Por qué cambiar la contraseña de la cuenta KRBTGT?

Hay atacantes que intentan hacerse con el hash NTLM de la cuenta KRBTGT, de esta forma generar tickets de Kerberos y obtener derechos de acceso a todo el entorno de AD.

¿Con qué frecuencia se recomienda cambiar el password de la cuenta KRBTGT?

La recomendación es cambiar el password de la cuenta KRBTGT dos veces y cada 180 días.

Se recomienda cambiar el password dos veces porque la cuenta KRBTGT recuerda las dos últimas contraseñas cuando usa Kerberos.

¿Cuál es el peligro de cambiar la contraseña KRBTGT?

Cambiar la contraseña KRBTGT una sola vez, no es problema, el problema es cambiarla dos veces sin que haya pasado el intervalo de tiempo suficiente entre una vez y la segunda.

El escenario es el siguiente:

- Cambiamos la contraseña KRBTGT la primera vez.

- La nueva contraseña KRBTGT se replica en todos los DCs.

- La nueva contraseña KRBTGT se utilizará para todos los tickets nuevos.

- Los tickets antiguos generados por la contraseña antigua KRBTGT siguen funcionando porque el historial de contraseñas está establecido a: “2”, es decir valen las dos últimas contraseñas.

- La contraseña KRBTGT nueva y la antigua siguen siendo válidas.

- Una vez caducados los tickets de Kerberos antiguos, se deberán renovar utilizando la nueva contraseña de KRBTGT.

Si entre el primer cambio de password y el segundo no ha transcurrido suficiente tiempo, habrá tickets de Kerberos que dejarán de funcionar.

Para evitar problemas podemos hacer lo siguiente:

1- Verificamos réplica (*), cambiamos contraseña KRBTGT la primera vez, forzamos réplica.

2- Esperamos por ejemplo: 2 semanas.

3- Verificamos réplica (*), cambiamos contraseña KRBTGT la segunda vez, forzamos réplica.

4- Esperemos 180 días.

5- Vuelta al primer punto.

* Si la réplica no es correcta, ya no cambiamos la contraseña KRBTGT.

Realmente no sería necesario esperar tanto tiempo (2 semanas) entre el primer cambio de contraseña y el segundo, podríamos esperar 24h, pero de esta forma nos aseguramos que no vayan a haber problemas.

Microsoft comenta sobre la necesidad de cambiar el password dos veces y el intervalo que debe transcurrir entre el primer cambio y el segundo:

Important:

“You should perform this operation twice. When resetting the Key Distribution Center Service Account password twice, a 10 hour waiting period is required between resets. 10 hours are the default Maximum lifetime for user ticket and Maximum lifetime for service ticket policy settings, hence in a case where the Maximum lifetime period has been altered, the minimum waiting period between resets should be greater than the configured value.”

Note:

The password history value for the krbtgt account is 2, meaning it includes the 2 most recent passwords. By resetting the password twice you effectively clear any old passwords from the history, so there is no way another DC will replicate with this DC by using an old password.


Fuente MS: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/forest-recovery-guide/ad-forest-recovery-reset-the-krbtgt-password

¿Cómo ver la fecha del último cambio de contraseña de la cuenta KRBTGT?

Vía PowerShell, lo podríamos hacer así:

Get-ADUser "krbtgt" -Property Created, PasswordLastSet

Get-ADUser "krbtgt" -Property Created, PasswordLastSet

¿Cómo cambiar la contraseña KRBTGT de forma automatizada?

Vía PowerShell se podría hacer así, haciendo la parte de password complejo aleatorio de forma dinámica:

Set-ADAccountPassword -Identity (Get-ADUser krbtgt).DistinguishedName -Reset -NewPassword (ConvertTo-SecureString "PasswordComplejoAleatorio" -AsPlainText -Force)


No hay comentarios:

Publicar un comentario