Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Extracción de contraseñas de cuentas de servicio con Kerberoasting

Extracción de contraseñas de cuentas de servicio con Kerberoasting

Aug 31, 2022

En nuestra publicación sobre reconocimiento de LDAP, exploramos cómo un atacante puede realizar reconocimiento para descubrir cuentas de servicio a las que apuntar en un dominio de Active Directory (AD). Ahora veamos una forma en que un atacante puede comprometer esas cuentas y explotar sus privilegios: Kerberoasting. Esta técnica es especialmente alarmante porque no requiere privilegios de administrador en el dominio, es muy fácil de realizar y prácticamente indetectable.

Kerberoasting: Visión general

Kerberoasting es un ataque que abusa de una característica del protocolo Kerberos para recolectar hashes de contraseñas de cuentas de usuario de Active Directory: Cualquier usuario de dominio autenticado puede solicitar tickets de servicio para una cuenta especificando su Nombre Principal de Servicio (SPN), y el servicio de concesión de tickets (TGS) en el controlador de dominio devolverá un ticket que está cifrado utilizando el hash NTLM de la contraseña de la cuenta.

Por lo tanto, una vez que un adversario ha descubierto SPNs de cuentas de servicio utilizando una táctica como LDAP reconnaissance, pueden recopilar tickets para todas esas cuentas. Al llevar esos datos fuera de línea, pueden realizar un ataque de fuerza bruta para descifrar la contraseña en texto plano de cada cuenta de servicio, sin ningún riesgo de detección o bloqueo de cuentas.

Solo se necesitan unos minutos para que un atacante obtenga acceso a un dominio, recolecte tickets y comience el proceso de cracking. A partir de ahí, es solo cuestión de tiempo hasta que hayan comprometido una o más cuentas de servicio, las cuales pueden usar para robar o cifrar datos sensibles o causar otros daños.

Los adversarios se centran en las cuentas de servicio por varias razones. En primer lugar, estas cuentas a menudo tienen privilegios mucho más extensos que otras cuentas de usuario de AD, por lo que comprometerlas otorga al atacante más acceso. Además, las contraseñas de las cuentas de servicio rara vez cambian, por lo que es probable que el adversario mantenga el acceso durante mucho tiempo. Para entender los tipos de acceso que se pueden obtener utilizando Kerberoasting, mire la lista de SPNs de Active Directory mantenida por Sean Metcalf.

Kerberoasting: Cómo funciona

Paso 1. Obtenga los SPN de las cuentas de servicio.

. Existen muchas formas de obtener estos SPNs, incluyendo:

Paso 2. Solicite tickets de servicio para los SPN de la cuenta de servicio.

Simplemente ejecute un par de líneas de PowerShell, y se devolverá y almacenará en memoria un ticket de servicio a su sistema.

      Add-Type –AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken –ArgumentList ‘MSSQLSvc/jefflab-sql02.jefflab.local:1433’
      

Image

Paso 3. Extraer tickets de servicio utilizando Mimikatz.

Mimikatz extraerá tickets locales y los guardará en disco para descifrado offline. Simplemente instale Mimikatz y emita un único comando:

Image

Paso 4. Romper los tickets.

Los tickets de Kerberos están cifrados con la contraseña de la cuenta de servicio asociada con el SPN especificado en la solicitud del ticket. Las herramientas de Kerberoasting proporcionan un script de Python para descifrar los tickets y proporcionar sus contraseñas en texto claro ejecutando un diccionario de hashes de contraseñas contra ellos. Puede requerir algo de configuración para asegurarse de tener el entorno requerido para ejecutar el script, pero este blog cubre esos detalles.

Image

Alternativamente, puede recopilar tickets de Kerberos utilizando el script GetUserSPNs y descifrarlos con la herramienta de recuperación de contraseñas Hashcat.

Protección contra ataques de Kerberoasting

La mitigación principal para los ataques de Kerberoasting es asegurarse de que todas las cuentas de servicio utilicen contraseñas largas y complejas que sean más difíciles de descifrar, y cambiarlas regularmente para minimizar el tiempo que la cuenta podría ser utilizada por un adversario que logra descifrar una contraseña. El uso de cuentas de servicio administradas por grupo es una mejor práctica para asignar contraseñas aleatorias y complejas que se pueden rotar automáticamente.

Dado que los adversarios descifran los tickets de forma offline, el proceso no genera tráfico de red, lo que hace que esa parte del ataque sea indetectable. Pero puedes detectar los pasos anteriores mediante el monitoreo de Active Directory con una solución de seguridad sólida. En particular, las cuentas de servicio normalmente se utilizan desde los mismos sistemas de las mismas maneras, así que presta atención a las solicitudes de autenticación anómalas. Además, monitorea los picos en las solicitudes de tickets de servicio.

Finalmente, los especialistas en seguridad también recomiendan deshabilitar el cifrado basado en RC4. De lo contrario, incluso si una cuenta de usuario admite cifrado AES, un atacante puede solicitar un ticket cifrado con RC4, el cual es más fácil de descifrar que uno creado usando cifrado AES.

Compartir en

Aprende más

Acerca del autor

Un hombre con una chaqueta azul y camisa a cuadros sonre para la cmara

Jeff Warren

Director de Producto

Jeff Warren supervisa el portafolio de productos de Netwrix, aportando más de una década de experiencia en gestión y desarrollo de productos enfocados en la seguridad. Antes de unirse a Netwrix, Jeff lideró la organización de productos en Stealthbits Technologies, donde utilizó su experiencia como ingeniero de software para desarrollar soluciones de seguridad innovadoras y escalables para empresas. Con un enfoque práctico y un talento para resolver desafíos de seguridad complejos, Jeff se centra en construir soluciones prácticas que funcionen. Tiene un BS en Sistemas de Información de la Universidad de Delaware.