Para entender por qué funciona el keberoasting, primero hay que entender los conceptos básicos de Kerberos.
Kerberos es un protocolo de autenticación que permite a los usuarios y servicios (como aplicaciones, bases de datos y servidores) autenticarse y comunicarse de forma segura dentro de Active Directory y otros dominios.
El proceso de autenticación Kerberos utiliza un sistema de tickets. En el centro de distribución de claves (KDC), que opera en el controlador de dominio de la red, se encuentra el núcleo de este sistema.
El KDC es, básicamente, el guardián del dominio. Autentica a los usuarios y servicios de la red y les emite tickets. Los tickets son credenciales que prueban la identidad de los usuarios y les permiten acceder a otros recursos de la red. Los usuarios y servicios intercambian estos tickets para verificarse mutuamente.
Cuando un usuario inicia sesión en un dominio, primero se autentica con el KDC y recibe un ticket de concesión de tickets (TGT). Este TGT le permite solicitar acceso a los servicios del dominio.
Cuando el usuario desea acceder a un servicio, envía una solicitud al servicio de concesión de tickets (TGS) del centro de distribución de claves. El TGT acompaña a esta solicitud para garantizar la identidad del usuario.
Como respuesta, el KDC emite un ticket de servicio, también llamado "ticket TGS", que se cifra con la contraseña de la cuenta de servicio. Esto se hace para garantizar que solo el servicio de destino pueda validar la solicitud de acceso del usuario. El usuario presenta este ticket al servicio de destino, que autentica al usuario e inicia una sesión segura.
Hay algunos detalles del diseño de Kerberos que lo hacen vulnerable a kerberoasting.
En primer lugar, el KDC no comprueba si los usuarios están autorizados a acceder a un servicio. Cualquier usuario puede solicitar un ticket para cualquier servicio. Depende de los servicios individuales hacer cumplir los permisos y bloquear a los usuarios no autorizados. Por lo tanto, los hackers no necesitan apoderarse de las cuentas de los administradores de dominio u otros usuarios privilegiados. Cualquier cuenta comprometida funciona.
En segundo lugar, cada servicio de un dominio Kerberos debe estar asociado a una cuenta de servicio que sea la encargada de ejecutarlo. Las cuentas de servicio permiten a Kerberos autenticar servicios, emitir tickets de servicio y aplicar controles de seguridad. Estas cuentas también son un objetivo para los hackers, ya que suelen tener privilegios elevados.
En tercer lugar, los tickets Kerberos están encriptados con los hashes de las contraseñas de las cuentas asociadas como claves. Para el kerberoasting, es importante que los tickets de servicio utilicen los hashes de las contraseñas de las cuentas de servicio correspondientes.
Las contraseñas de las cuentas son claves de cifrado simétricas convenientes, ya que solo el KDC y el servicio relacionado deben conocerlas. Sin embargo, dado que los tickets se cifran mediante hashes de contraseñas, los hackers pueden aplicar ingeniería inversa a las contraseñas de las cuentas de servicio y descifrar el cifrado de un ticket.
Además, las cuentas de servicio configuradas manualmente suelen tener habilitada la opción "la contraseña nunca caduca". En redes antiguas, esto puede significar que las cuentas de servicio utilicen contraseñas obsoletas que siguen directrices de seguridad poco fiables, lo que las hace fáciles de descifrar.