Reconocimiento

Identificar cuentas de servicio vulnerables a Kerberoasting

Cómo un usuario de dominio filtra las cuentas con SPN y elige el objetivo que vale la pena.

Qué es

Esta técnica busca cuentas de usuario con un SPN registrado en el dominio. Descarta las que no sirven y deja las que sí valen: contraseña vieja y privilegios altos. El atacante termina con una lista corta de objetivos antes del Kerberoasting.

Cómo funciona

Un SPN en una cuenta de usuario significa que el KDC entrega un ticket TGS cifrado con el hash de esa cuenta. Cualquier usuario autenticado del dominio lee el atributo servicePrincipalName por LDAP, sin permisos especiales.

Las cuentas de equipo también tienen SPN, pero su contraseña es larga, aleatoria y la gestiona la máquina: no se descifra. Solo las cuentas de usuario sirven como objetivo.

Dos datos ordenan la lista. El atributo pwdLastSet dice hace cuánto no cambia la contraseña. La pertenencia a grupos dice cuánto acceso da la cuenta. Una cuenta de servicio en un grupo privilegiado con contraseña de años es el objetivo. El resto es ruido.

Diagrama

Comandos

Enumerar cuentas de usuario con SPN, en remoto, con Impacket:

GetUserSPNs.py <DOMAIN>/<USER>:<PASSWORD> -dc-ip <IP>

Lo mismo desde una sesión ya autenticada, con PowerView, mostrando los datos que priorizan el objetivo:

Get-DomainUser -SPN | Select-Object samaccountname,serviceprincipalname,pwdlastset,memberof

Con el módulo de Active Directory nativo de Windows:

Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName,PasswordLastSet,MemberOf

Con una consulta LDAP cruda, filtrando cuentas de usuario y excluyendo equipos:

ldapsearch -x -H ldap://<IP> -D "<USER>@<DOMAIN>" -w <PASSWORD> -b "<BASE_DN>" "(&(objectClass=user)(servicePrincipalName=*)(!(objectClass=computer)))" samAccountName servicePrincipalName pwdLastSet

Recolectar el dominio con el ingestor de BloodHound:

bloodhound-python -u <USER> -p <PASSWORD> -d <DOMAIN> -ns <IP> -c All

BloodHound marca estas cuentas en el grafo. Su consulta integrada las lista y muestra si están sobre una ruta hacia privilegios más altos.

Cómo defenderse

Pasa las cuentas de servicio a gMSA y quita los SPN que ya nadie usa: la lista de objetivos se queda casi vacía.

Siguiente

Puedes seguir leyendo aquí:

ReconocimientoEnumerar grupos privilegiados

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.