Constrained delegation
La delegación de Kerberos permite que una cuenta de servicio SPN pueda acceder a otros servicios (CIFS, MSSQL, HTTP, etc.)
Last updated
La delegación de Kerberos permite que una cuenta de servicio SPN pueda acceder a otros servicios (CIFS, MSSQL, HTTP, etc.)
Last updated
El uso práctico de la delegación de Kerberos es permitir que una aplicación acceda a los recursos alojados en un servidor diferente. Un ejemplo es cuando una aplicación, como un servidor web, necesita acceder a los recursos del sitio web alojado en otro lugar, como una base de datos SQL. En lugar de otorgar a la cuenta de servicio que ejecuta el servidor web acceso a la base de datos directamente, puede permitir que esa cuenta de servicio se delegue al servicio del servidor SQL. Una vez que un usuario inicia sesión en el sitio web, la cuenta de servicio solicitará acceso al servicio del servidor SQL en nombre de ese usuario. Esto le permite al usuario obtener acceso al contenido de la base de datos a la que se ha aprovisionado, sin tener que aprovisionar ningún acceso a la cuenta de servicio del servidor web en sí.
Una cuenta de usuario SPN que tenga habilitada la característica de Delegación restringida de Kerberos, puede suplantar cualquier usuario del dominio (incluido el usuario Domain Admin) y autenticarse en los servicios en los que la cuenta de usuario sea de confianza para delegar.
Ejemplo:
Se ha obtenido el usuario Aaron, que tiene habilitada la Delegación sobre el equipo DESKTOP-HD, mediante el ataque de Contrained Delegation se podrá utilizar impacket-secretsdump para suplantar el usuario Administrador del Domino y volcar las credenciales del equipo.
A continuación, se muestra como el usuario Aaron tiene habilitada la delegación en el servicio cifs sobre el equipo DESKTOP-HDP2GMP.atlanta.corp.
En este caso la explotación se llevará acabo desde un equipo con Kali Linux que no se encuentra en Dominio. Asumiendo que se tienen las credenciales del usuario Aaron. Usuario habilitado para Constrained Delegation.
Para identificar que usuarios tienen habilitada la Delegación se puede utilizar impacket-findDelegation
Una vez se ha identificado el usuario y el equipo sobre el que el usuario tiene habilitada la Delegación se procede a obtener los Tickets de Kerberos para posteriormente suplantar al usuario administrator y conectarnos al equipo.
Con el anterior comando, se genera el archivo "administrator.ccache" que se utilizará para realizar la conexión kerberos al equipo haciéndonos pasar por el usuario Administrator.
Para ello, este archivo debe guardarse previamente en una variable de entorno
Una vez se tiene el archivo "administrator.ccache" guardado en la variable, se utilizará en este caso impacket-secretsdump para conectarnos al equipo remoto DESKTOP-HDP2GMP y volcar los hashes de los usuarios.
Para ello, se utiliza la opción -k permite realizar la conexión kerberos a través del archivo que se encuentra en la variable.
Tal y como se puede observar, se pudieron obtener los hashesh de la SAM y las credenciales cacheadas de los usuarios del dominio. En este caso, se ha podido obtener el hash de la cuenta de Administrator del Dominio ya que estaba cacheada en el equipo.
Posteriormente se podrá llevar a cabo un ataque Pass The Hash o crackear los hashes