PoC, pentesting en Active Directory.

Hola buenas a tod@s, hoy os traigo una entrada, donde vamos a ver un vídeo de cómo mediante técnicas de hacking conseguimos acceder al controlador de dominio de una red.

Este artículo se va a componer de un vídeo donde podremos ver la prueba de concepto de las técnicas que utilizaremos para este propósito y una explicación de Kerberos, que es el sistema que atacaremos para conseguir acceso al controlador de dominio. También comentaremos la técnica que utilizaremos para atacar este sistema de autenticación, «Overpass-the-Hash». Principalmente las técnicas y herramientas que utilizaremos en esta prueba de concepto serán las siguientes: Mimikatz, Metasploit Framework y como sistema operativo Kali Linux.

¿Qué es Kerberos?

Kerberos es un sistema de autenticación mutua, es decir, el cliente verifica y comprueba la identidad del servidor, mientras que el servidor acredita y verifica la identidad del cliente.

Es un protocolo de autenticación cliente-servidor utilizado por Active Directory. Su principal función se enfoca en el servidor que se encarga de autenticar al usuario, este se encarga de comprobar y autorizar al cliente a ponerse en contacto con los servidores, equipos cliente y servicios que hay en la red. Kerberos es el protocolo estándar de autenticación dentro de una red con Active Directory.

El sistema de autenticación de Kerberos se divide en varias fases, en esta caso y para este artículo solo vamos a explicar las dos primeras fases de autenticación ya que son las fases que vamos a atacar en esta prueba de concepto.

También vamos a comentar unos términos para entender la explicación, los cuales serían los siguientes:

  • TGT: Ticket que recibe el usuario al autenticarse en el Active Directory y se llama Ticket-Granting o ticket TGT.
  • KDC: es una parte del controlador de dominio, es el encargado de generar los tickets de autenticación, su nombre es Key Distribution Center.
  • AS: Authentication Server, forma parte del KDC, es el encargado de comprobar que la petición TGT es correcta.

Una vez que ya conocemos estos tres términos vamos a proceder a explicar las dos primeras fases de la autenticación de Kerberos. Pongámonos en el supuesto de un cliente que está en un Active Directory quiere autenticarse.

Primera fase: Inicio de sesión.

En la primera fase de autenticación de Kerberos, donde realizaremos el ataque, el cliente procederá a crear una petición para el servidor de autenticación (AS). Esta petición se llama AS-REQ.

La petición AS-REQ contiene:

  • El nombre del usuario.
  • El nombre del servicio que proporciona los ticket TGT (KDC)
  • Timestamp cifrado con el hash nt de la contraseña del usuario.

Esta petición se manda al Authentication Server (AS), que como hemos comentado forma parte del KDC para conseguir un ticket TGT.

Segunda fase: Respuesta del servidor de autenticación.

Cuando el AS (Authentication Server) recibe la petición AS-REQ, el timestamp cifrado, se descifra con el hash NT del usuario. Si las credenciales son correctas, se responde con un mensaje AS-REP. Este mensaje permite que el cliente tenga un ticket TGT.

La respuesta AS-REP contiene:

  • El nombre del usuario autenticado
  • La clave de sesión y tiempo de vida del ticket TGT cifrado con el hash del usuario.
  • Ticket TGT.

El ticket TGT contiene: Privilege Attribute Certificate o PAC que posee la información del usuario y grupos al que pertenece dentro del dominio, también posee la misma clave de sesión y tiempo de vida del ticket TGT. Todo esto es cifrado por el servidor KDC con el hash NT de la cuenta Kerberos Ticket-Granting ticket o «KRBTGT» para que solo el KDC pueda leer los mensajes.

La cuenta «KRBTGT» esta en todos los controladores de dominio, es usada por el sistema y en particular por Kerberos.

¿Qué es Overpass-the-hash?

Es la técnica que vamos a utilizar para conseguir acceder al controlador de dominio, lo que se hace es pasar el hash directamente al servidor y con ello se puede conseguir acceso sin saber la contraseña del usuario, en esta prueba de concepto, lo que se hará será inyectar un ticket TGT en memoria para poder acceder al controlador de dominio sin necesidad de saber contraseñas.

Prueba de concepto.

Espero que os haya gustado este post. Ya sabéis compartir y dar me gusta no cuesta nada. Un saludo, David.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.