
Ataque de delegación restringida basada en recursos de Kerberos desde el exterior utilizando Impacket
Este repositorio trata sobre un ataque práctico contra la Delegación Restringida Basada en Recursos de Kerberos en un Dominio de Active Directory de Windows.
La diferencia con otras implementaciones comunes es que lanzamos el ataque desde fuera del Dominio de Windows, no desde un equipo unido al dominio (normalmente Windows).
El ataque está implementado usando únicamente Python3 Impacket (y sus dependencias). Probado en Arch con Impacket actualizado (0.9.21 al momento de escribir).

En resumen, sin entrar en detalles profundos, el ataque se dirige a un equipo del dominio, exactamente a los principales de servicio relacionados con el equipo del dominio objetivo.
Lo que necesitamos como requisitos previos:
msDS-AllowedToActOnBehalfOfOtherIdentity del objeto de equipo del dominio objetivo)MachineAccountQuota)La ruta del ataque a muy alto nivel:
msDS-AllowedToActOnBehalfOfOtherIdentity del objetivoBeneficio:
Las herramientas comunes para este ataque operan en un equipo Windows unido al dominio usando:
abusar de msDS-AllowedToActOnBehalfOfOtherIdentityEsta implementación utiliza Impacket puro desde fuera del Dominio.
Usando el ejemplo addcomputer.py de Impacket, creemos un equipo falso (llamado evilcomputer):
addcomputer.py -computer-name 'evilcomputer$' -computer-pass ev1lP@sS -dc-ip 192.168.33.203 ecorp.local/test:ohW9Lie0
Se implementó el script rbcd.py que se encuentra aquí en el repositorio, el cual agrega el descriptor de seguridad relacionado del EVILCOMPUTER recién creado a la propiedad msDS-AllowedToActOnBehalfOfOtherIdentity del equipo objetivo.
./rbcd.py -f EVILCOMPUTER -t WEB -dc-ip 192.168.33.203 ecorp\\test:ohW9Lie0
El script utiliza en gran medida las clases de Python del ejemplo ntlmrelayx.py de Impacket. Para obtener ayuda y un ejemplo, ejecute el script sin opciones.
Ahora todo está listo para abusar de la Delegación Restringida mediante una consulta S4U2Self y obtener un Ticket de Servicio suplantado para el equipo objetivo. Con el script de ejemplo getST.py de Impacket:
getST.py -spn cifs/WEB.ecorp.local -impersonate admin -dc-ip 192.168.33.203 ecorp.local/EVILCOMPUTER$:ev1lP@sS
El comando anterior obtiene un Ticket de Servicio CIFS en nombre del usuario de dominio objetivo admin y lo almacena en el archivo admin.ccache.
Después de agregar la ruta del archivo a la variable KRB5CCNAME, el ticket es utilizable para clientes Kerberos.
export KRB5CCNAME=`pwd`/admin.ccache
klist
Para más detalles sobre el abuso de la Delegación Restringida Basada en Recursos:
Y una de las presentaciones más completas sobre Ataques Kerberos: