Skip links
Golden Ticket Entendiendo y Explorando el Ataque

Golden Ticket (Primera parte): Entendiendo y Explorando el Ataque

Golden Ticket (Primera parte): Entendiendo y Explorando el Ataque

El Golden Ticket es una de las técnicas más avanzadas y peligrosas dentro del ecosistema de ataques a Active Directory. Un atacante que ha logrado comprometer las credenciales de la cuenta krbtgt (hash de la cuenta Kerberos Ticket Granting Ticket) puede crear un ticket Kerberos válido y legítimo para cualquier cuenta dentro del dominio. Este ticket permite al atacante autenticarse como cualquier usuario, incluidos administradores de dominio, sin necesidad de conocer sus credenciales reales. Una vez obtenido, el Golden Ticket proporciona al atacante acceso ilimitado y sostenido en el tiempo, ya que se puede seguir utilizando hasta que las claves de la cuenta krbtgt sean rotadas.

Dada la gravedad de este tipo de ataque y su capacidad de pasar desapercibido, comprender su funcionamiento y estar atentos a los eventos que ayuden a su detección es crucial para la seguridad de los entornos de Active Directory. En este artículo, se muestra la explotación de esta técnica, descripción de algunas posibles formas de detección y también recomendaciones para dificultar y/o impedir que los atacantes puedan ejecutarlas.

Proceso de Explotación: 

Para explotar el ataque Golden Ticket, es necesario cumplir con ciertos requisitos y tener acceso a información específica. En primer lugar, se necesita acceso a una cuenta con privilegios administrativos en el dominio, ya que esta cuenta permitirá al atacante extraer los hashes de contraseñas almacenados en el controlador de dominio. Idealmente, se utilizaría una cuenta del tipo Domain Admin, pero también es posible usar una cuenta con privilegios equivalentes. Uno de los objetivos principales es el hash NTLM de la cuenta krbtgt, que es el encargado de firmar los tickets de autenticación dentro del sistema Kerberos. Este hash se obtiene mediante herramientas como secretsdump de Impacket.

Una vez obtenido el hash krbtgt, el atacante puede crear un Ticket Granting Ticket (TGT) válido utilizando herramientas especializadas, como ticketer de Impacket. Este TGT luego se utiliza para acceder a cualquier recurso del dominio, ya que está firmado con la misma clave que utiliza el controlador de dominio, por lo que el sistema confía en él. Los pasos esenciales incluyen:

  1. Obtener acceso a un usuario con privilegios en el dominio.
  2. Utilizar esa cuenta para extraer los hashes del controlador de dominio, específicamente el hash de la cuenta krbtgt.
  3. Generar un Golden Ticket utilizando el hash krbtgt y otra información del dominio, como el SID del dominio.
  4. Configurar el entorno para utilizar el ticket generado.
  5. Utilizar el ticket para acceder a recursos en el dominio con privilegios administrativos.

Paso 1: Extracción de los Hashes del Controlador de Dominio

Para poder crear un Golden Ticket, primero necesitamos obtener el hash de la cuenta krbtgt. Este hash se encuentra en el controlador de dominio. Para ello se utiliza la herramienta impacket-secretsdump, la cual permite extraer las credenciales de usuarios desde el controlador de dominio, contando previamente con usuario y contraseña de una cuenta con privilegios.

  • impacket-secretsdump: Esta herramienta extrae contraseñas y hashes del controlador de dominio.
  • administrator@10.100.16.12: Especificamos el usuario administrator y la IP del controlador de dominio (100.16.12).
  • | grep krbtgt: Utilicé grep para filtrar únicamente el hash de la cuenta krbtgt, ya que es la cuenta crítica para generar el Golden Ticket.
  • Introducimos la contraseña del usuario administrator.

Al ejecutar este comando, obtenemos el NT hash de la cuenta krbtgt, que es esencial para el próximo paso.

Paso 2: Generación del Golden Ticket

Con el hash del usuario krbtgt, el siguiente paso es crear el Golden Ticket usando otra herramienta de Impacket llamada ticketer.

  • impacket-ticketer: Esta herramienta permite generar tickets Kerberos, en este caso, un Golden Ticket.
  • -nthash fb50d28e366fafcb653757053c0fdf9e: El NT hash de la cuenta krbtgt, obtenido en el paso anterior.
  • -domain-sid S-1-5-21979919127-1557438441-1497751886: El SID del dominio, que identifica el dominio en el entorno de Active Directory.
  • -domain LABO.local: El nombre del dominio al cual pertenece el controlador.
  • administrator: Usuario para el cual se generará el ticket, en este caso, el usuario administrador.

Este comando genera un archivo con extensión .ccache, que contiene el ticket generado. Este archivo será utilizado para autenticarse en el dominio sin necesidad de proporcionar credenciales.

Paso 3: Configuración del Entorno para Usar el Ticket

Una vez generado el ticket, se necesita hacer que el sistema lo utilice. Esto se hace mediante la configuración de la variable de entorno KRB5CCNAME.

  • export KRB5CCNAME: Esta variable de entorno le indica a las herramientas Kerberos cuál es el archivo que contiene el ticket a utilizar.
  • /home/kali/administrator.ccache: Especifica la ubicación del archivo .ccache generado en el paso anterior.

Con este paso, cualquier herramienta que utilice Kerberos en la máquina automáticamente buscará el ticket en ese archivo.

Paso 4: Ejecución de Comandos con Privilegios de Administrador

Finalmente, utilizamos el ticket para ejecutar un comando remoto en uno de los servidores del dominio (GOLDENSERVER.LABO.local). Utilizando psexec, otra herramienta de Impacket que permite ejecutar comandos de forma remota.

  • impacket-psexec: Herramienta para ejecutar comandos de manera remota en un equipo Windows.
  • local/administrator@GOLDENSEVER.LABO.local: Indica el dominio (labo.local), el usuario (administrator), y el servidor de destino (GOLDENSEVER.LABO.local).
  • -k: Le dice a la herramienta que utilice el ticket Kerberos previamente generado para autenticarse.
  • -no-pass: No se requiere contraseña, ya que la autenticación se realiza mediante el ticket Kerberos.

Este paso confirma que el Golden Ticket es válido y que el atacante tiene acceso administrativo al servidor de destino y ejecución de comandos sobre este.

Conclusión

El ataque de Golden Ticket es extremadamente poderoso porque permite a los atacantes acceso completo y persistente al entorno de Active Directory. Una vez que el atacante tiene el hash de la cuenta krbtgt, puede crear tickets TGT válidos para cualquier usuario, en cualquier momento, y con cualquier privilegio.

Para prevenir este tipo de ataque, es fundamental:

  • Asegurarse de que las cuentas con privilegios elevados estén debidamente protegidas y monitoreado su uso
  • Monitorizar las cuentas sensibles, especialmente krbtgt.
  • Cambiar la contraseña de krbtgt periódicamente.
  • Implementar mecanismos de detección que alerten sobre el uso de tickets inusuales

 

El Golden Ticket es un claro ejemplo de cómo una vulnerabilidad en la administración de credenciales y accesos puede comprometer todo un dominio. Es esencial entender estos vectores de ataque no solo para mitigarlos, sino también para estar mejor preparados y responder de manera adecuada.