¿Qué es un ataque de kerberoasting?

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. 

Fuente:
IBM
|
Nwpc-ch | RedCanary

Ver fuente

Related Post