Kerberoasting es un ciberataque que explota el protocolo de autenticación Kerberos. Los actores de amenazas roban tickets de servicio Kerberos para descubrir las contraseñas en texto plano de las cuentas de servicio de red. Luego, los atacantes toman el control de estas cuentas de servicio para robar datos, propagar malware, ejecutar ransomware en el entorno comprometido y mucho más.
Los analistas de seguridad de X-Force de IBM observaron un aumento del 100% en los incidentes de kerberoasting entre 2022 y 2023, según el X-Force Threat Intelligence Index. Este crecimiento forma parte de una tendencia generalizada de los atacantes que abusan de cuentas válidas para violar las redes. Las mejoras en la red y seguridad de los endpoints han hecho que sea mucho más difícil realizar ataques directos.
Algunos factores adicionales alimentan la popularidad de Kerberoasting. Muchos servicios de directorio y sistemas de computación en nube utilizan Kerberos, lo que significa que los atacantes pueden aprovechar el protocolo para acceder a infraestructuras de red cruciales.
En particular, Kerberos es estándar en Microsoft Windows Active Directory, y muchos ataques Keberoasting se dirigen a dominios de Active Directory.
Además, las cuentas de servicio creadas manualmente tienden a tener contraseñas débiles y privilegios altos, lo que las convierte en objetivos atractivos.
Los ataques de kerberoasting son difíciles de detectar porque se aprovechan del diseño previsto de Kerberos. La parte más sospechosa de un ataque de kerberoasting (descifrar los tickets robados) ocurre fuera de línea. Los profesionales de la ciberseguridad no pueden erradicar por completo la posibilidad de kerberoasting, pero pueden implementar defensas proactivas para mitigar la amenaza.
¿Cómo funciona el kerberoasting?
El kerberoasting suele ser un medio de escalamiento de privilegios más que una táctica inicial de intrusión. Después de que un atacante obtiene el control de una cuenta de usuario de dominio para ingresar a la red, usa Keberoasting para expandir su alcance.
La mayoría de los ataques de Kerberoasting siguen el mismo método básico:
- Un atacante utiliza una cuenta comprometida para obtener tickets de servicio de Kerberos.
- El atacante lleva estos tickets a un sistema que posee fuera de la red que está atacando.
- El atacante descifra los tickets y descubre las contraseñas de las cuentas de servicio que ejecutan los servicios asociados a cada ticket.
- El atacante se conecta a la red utilizando las credenciales de las cuentas de servicio, abusando de sus permisos para moverse por la red y causar daños.
El proceso de kerberoasting
1. Secuestro de una cuenta de usuario
El primer paso en un típico ataque de kerberoasting es robar la cuenta de un usuario del dominio. Un atacante puede utilizar muchos métodos de ciberataque en esta fase, como phishing, keyloggers u otras técnicas. A continuación, el atacante puede utilizar esta cuenta para acceder al dominio de destino.
2. Identificación de objetivos
Cuando el atacante está en la red, busca cuentas de servicio. A menudo lo hacen buscando cuentas con Service Principal Names (SPN). Los SPN son identificadores únicos que vinculan los servicios a sus cuentas de servicio en un dominio Kerberos. Dado que solo las cuentas de servicio tienen este atributo, la enumeración de las cuentas con SPN es una forma práctica para que los atacante encuentren objetivos. Cada cuenta de dominio puede enumerar SPN de forma predeterminada.
Los atacantes pueden usar comandos de PowerShell y consultas del protocolo
LDAP para exponer cuentas con SPN. También pueden utilizar herramientas
especializadas de hacking y pruebas de penetración . Por ejemplo, el kit de
herramientas
Impacket
incluye un script llamado "GetUserSPNs.py" que genera una lista
de cuentas de servicio en un dominio.
3. Robo de tickets
El atacante utiliza la cuenta de dominio secuestrada para solicitar tickets de servicio para sus servicios objetivo. El atacante no utiliza estos tickets para acceder a esos servicios. Podrían, pero solo tendrían los permisos limitados de la probable cuenta de usuario robada de bajo nivel. En su lugar, el atacante saca estos tickets de la red y los lleva a un sistema que controla, fuera de la red objetivo.
4. Descifrado de contraseñas
El atacante descifra los tickets robados para recuperar las contraseñas de las cuentas de servicio. Dado que los tickets usan las contraseñas de las cuentas de servicio como claves criptográficas, los atacantes suelen usar ataques de fuerza bruta para este esfuerzo. Utilizan sistemáticamente diferentes contraseñas para generar claves de cifrado ("hashes") que utilizan en el ticket robado. Si una clave de cifrado funciona, la contraseña que generó la clave es la contraseña de la cuenta de servicio.
Los atacantes pueden acelerar el descifrado utilizando listas de palabras de contraseñas comunes. También utilizan varias herramientas para automatizar el proceso de craqueo. Algunas de las herramientas de kerberoasting más comunes incluyen:
- Impacket: un conjunto de herramientas de Python diseñado para realizadores de pruebas de penetración. Incluye algunos scripts que pueden causar mucho daño en manos de un atacante.
- Rubeus: un conjunto de herramientas diseñado para explotar Kerberos en pruebas de penetración.
- John the Ripper y Hashcat: descifradores de contraseñas que pueden realizar ataques de fuerza bruta.
- Mimikatz: ayuda a extraer y descifrar tickets de Kerberos.
El descifrado de tickets es la mayor señal de alerta en el proceso de Kerberoasting, pero suele ocurrir fuera de la red de destino en un dispositivo que controlan los atacantes. Las herramientas de seguridad de la organización no pueden detectarlo.
5. Uso de la contraseña
Con la contraseña de una cuenta de servicio, el atacante puede iniciar sesión en esa cuenta y usar sus permisos para acceder a recursos confidenciales, realizar movimientos laterales y mucho más.
Por ejemplo, si un atacante descifra la contraseña de la cuenta de servicio de un servidor SQL, podría obtener el control de las bases de datos alojadas en ese servidor.