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) autenticar y comunicarse de manera segura dentro de Active Directory y otros dominios.
El proceso de autenticación de Kerberos emplea un sistema de tickets. En el núcleo de este sistema se encuentra el centro de distribución de claves (KDC), que opera en el controlador de dominio de la red.
El KDC es, básicamente, el guardián del dominio. Autentica a usuarios y servicios en la red y les emite tickets. Los tickets son credenciales que prueban la identidad de los usuarios y les permiten acceder a otros recursos en la red. Los usuarios y los servicios intercambian estos tickets para verificarse entre sí.
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 permite al usuario solicitar acceso a los servicios del dominio.
Cuando el usuario desea acceder a un servicio, envía una solicitud al TGS del KDC. El TGT acompaña esta solicitud para dar fe de la identidad del usuario.
En respuesta, el KDC emite un ticket de servicio, también llamado "ticket TGS", que se encripta mediante la contraseña de la cuenta de servicio. Esto sucede para garantizar que solo el servicio de destino pueda validar la solicitud de acceso del usuario. El usuario presenta este ticket de servicio al servicio de destino, el cual autentica al usuario e inicia una sesión segura.
Algunos detalles del diseño de Kerberos lo dejan abierto al Kerberoasting.
En primer lugar, el KDC no verifica si los usuarios están autorizados a acceder a un servicio. Cualquier usuario puede aplicar un ticket para cualquier servicio. Depende de cada servicio 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 responsable de ejecutar el servicio en el dominio. Las cuentas de servicio permiten que Kerberos autentique servicios, emita tickets de servicio y aplique controles de seguridad. Estas cuentas también son un objetivo para los hackers, ya que tienden a tener altos privilegios.
En tercer lugar, los tickets de Kerberos se cifran mediante los hashes de contraseña de las cuentas asociadas como claves. Es importante señalar que, en el proceso de Kerberoasting, los tickets de servicio utilizan los hashes de contraseña de las cuentas de servicio relevantes.
Las contraseñas de las cuentas son claves de cifrado simétricas convenientes porque solo el KDC y el servicio relacionado deben conocer esa contraseña. Pero como los tickets se cifran con hashes de contraseñas, los hackers pueden revertir ingeniería a las contraseñas de cuentas de servicio mediante el descifrado de un cifrado de ticket.
Además, las cuentas de servicio configuradas manualmente suelen tener habilitada la opción "la contraseña nunca caduca". En las redes de larga data, esto puede significar que las cuentas de servicio utilicen contraseñas muy antiguas que siguen directrices de seguridad desactualizadas, lo que las hace fáciles de hackear.