Asignamos un servicio a un usuario para hacer las pruebas:
para hace la consulta se necesita RSAT:
Solicitamos el ST:
NOTA: Se realiza esta operacion y desde el DC escuchamos los paquetes y sigamos los pasos segun el diagrama para analizar las peticiones:
a
Paso 3: TGS-REQ
Paso 4: TGS-REP
comparamos con el hash que obtuvimos con impacket:
Por ultimo crackeamos el hash obtenido en la peticion TGS-REP:
Maneras de Obtener hashes de usuarios Kerberoastables
Powerview-dev/RSAT y Mimikatz:
1: Obteniendo Usuarios Kerberoastables:
Powerview-dev:
RSAT:
2: Obteniendo Tickets:
Powerview-dev:
RSAT:
3: Exportamos esos tickets en un archivo con mimikatz:
4: Crackeamos el ticket (usando tgsrepcrack.py)
a
En caso de que hayan habilitado AES por usuario:
Para que esto funcione la configuracion del Dominio aun tiene que admitir RC4. En muchas configuraciones solo habilitan el cifrado AES para cada usuario pero no deshabilitan RC4
Asi se habilita AES:
Pero es necesario deshabilitar el cifrado RC4:
Una vez deshabilitado RC4 los hashes que obtendra aun se pueden crackear pero es mucho mas complicado:
Obtener hashes:
Con suficientes derechos (GenericAll/GenericWrite), el SPN de un usuario de destino se puede establecer en cualquier cosa (único en el dominio). Entonces podemos solicitar un TGS sin privilegios especiales. El TGS puede entonces ser "Kerberoasted".
1: Ver que tenemos los permisos correctos sobre el usuario a modificar
(somos parte del grupo rdpusers)
2: Identificar si el usuario tiene otro SPN:
3: Seteando el SPN en el usuario:
Security Event ID 4769 - Se solicitó un ticket Kerberos
Dado que 4769 se registra con mucha frecuencia en un DC. Es posible que deseemos filtrar los resultados en función de la siguiente información de los registros:
El nombre del servicio no debe ser krbtgt
El nombre del servicio no termina con $ (para filtrar las cuentas de máquinas utilizadas para los servicios)
El nombre de la cuenta no debe ser máquina@dominio (para filtrar las solicitudes de las máquinas)
El código de falla es '0x0' (para filtrar las fallas, 0x0 es un éxito)
Lo más importante es que el tipo de cifrado del ticket es 0x17
Una sola línea de PowerShell para pruebas rápidas:
Las contraseñas de las cuentas de servicio deben ser difíciles de adivinar (más de 25 caracteres)
Usar Cuentas de Servicio Administradas (Cambio automático de contraseña periódicamente y Administración SPN delegada)