viernes, 3 de septiembre de 2021

Silver Ticket Attack

¿Qué es?

Este ataque se basa en construir un TGS (ticket Kerberos) válido para un servicio, una vez se ha obtenido el hash NTLM del propietario del susodicho servicio. De esta manera, es posible acceder a este servicio con un TGS personalizado que contenga los más elevados privilegios.

Ejemplo de este tipo de ataque

El siguiente ejemplo parte de una máquina de HTB (intelligence).

Paso 1.

Tenemos un usuario y su hash NTLMv2, que incluso ha sido posible crackear, pero esto último no es relevante en este caso.

Hash NTLMv2 del usuario Ted.Graves

Paso 2.

Comprobamos si existe algún servicio sobre el cual el usuario sea propietario.

Para comprobar esto se utilizará la herramienta: gMSADumper (https://github.com/micahvandeusen/gMSADumper), ya que la herramienta “impacket”, no trae ninguna herramienta para hacer esto. Al menos hasta dónde mi conocimiento llega.

***** NOTA: *****

Esta herramienta, busca Group Managed Service Accounts (gMSA), pero, ¿qué son?

Los gMSAs son cuentas de servicio que ofrecen una manera segura para ejecutar aplicaciones, servicios y tareas de manera automatizada. Fueron introducidas en Windows Server 2016 pero pueden ser aprovechadas en Windows Server 2012 y versiones anteriores

Las características de estas cuentas son que las contraseñas de las mismas son generadas aleatoriamente, cambian automáticamente y no es necesario que ningún usuario las conozca. Además, estas cuentas de servicio son “instaladas” únicamente en el servidor (por lo tanto será necesario utilizar una cuenta de máquina) que solicitara su uso al AD en tiempo de ejecución. Por lo dicho,

Las  gMSAs son un tipo específico de objeto dentro de Active Directory, concretamente: msDS-GroupManagedServiceAccount. Dentro de este objeto, la propiedad/atributo más importante es: msDS-ManagedPassword, este atributo contiene un BLOB con información de la contraseña actual

Bibliografía:

·         https://stealthbits.com/blog/what-are-group-managed-service-accounts-gmsa/

********************

El uso de la herramienta nos devuelve el siguiente dato:


Es decir, existe un servicio sobre el que el usuario Ted.Graves, tiene permisos.

Paso 3.

Procedemos a utilizar la herramienta de impacket: getST, para generar un ticket de servicio que nos permita elevar permisos sobre la máquina.

El resultado es:


Es decir, tenemos un problema de fecha/hora.

***** NOTA: *****

En un entorno de AD, es muy importante tener la hora sincronizada con el controlador de dominio, ya que Kerberos no funciona correctamente si la fecha y hora de nuestro equipo no va acorde con la fecha y hora del controlador de dominio/servidor

Para mejorar esto, necesitamos configurar el servicio NTP de nuestra máquina para que utilice el servidor NTP del servidor y así corregir el problema


Si tuvieras algún problema con ello, se recomienda seguir las siguientes instrucciones

********************

Repetimos la solicitud para generar un ticket de servicio, y conseguimos nuestro objetivo


Ahora sólo queda utilizar el ticket generado mediante Pass-The-Ticket

 

En cualquier caso

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia