Series · 3 partsActive Directory Architecture & InternalsPart 1 · You are here
  1. 1Çok Ormanlı Active Directory Mimarisi: Ormanlar, Güven İlişkileri, DNS ve Katmanlı Servisler Gerçekte Nasıl Çalışır?You are here
  2. 2Kerberos Delegasyon Mimarisi: Çok Katmanlı Windows Uygulamaları Neden İhtiyaç Duyar ve Nerede Kırılır?
  3. 3Yönlü Bir Çizge Olarak Active Directory: Security Descriptor ve Nesne ACL'leri Gerçekte Nasıl Çalışır?

Dizin Topolojisi ve Orman Güvenlik Sınırları

Kurumsal ortamlarda Active Directory güvenlik değerlendirmeleri, etki alanı yönetim sınırları ile güvenlik sınırları karıştırıldığında yanlış varsayımlara dayanır. Bir Domain Controller izole bir hedef değildir; dizin bölümleri, güven öznitelikleri ve servis konumlandırma kayıtlarıyla yönetilen, replike bir dizin topolojisinin düğümüdür. Bu yüzden tek bir DC’ye bakıp “burası zaten ele geçirildi” demek, çoğu zaman ormanın geri kalanını gözden kaçırmak demektir. Active Directory’deki yapılandırma sorunları nadiren yazılım hatasıdır; daha sık olarak, yanlış kurgulanmış güven sınırları üzerinde çalışan standart Windows mimari özellikleridir:

  • AS-REP Roasting ve Kerberoasting, hedef hesabın uzun vadeli gizli anahtarıyla şifrelenen standart RFC 4120 bilet alışverişleridir (AS-REP ve TGS-REP). Bu tasarım, durumsuz (stateless) KDC’lerin bellekte istemci başına oturum durumu tutmasını gereksiz kılar; saldırgan için ise biletin çevrimdışı kırılabilmesi anlamına gelir.
  • Kısıtlı Delegasyon (S4U2Self / S4U2Proxy), çok katmanlı kurumsal uygulamaların (örneğin arka uçtaki bir MSSQL veritabanını sorgulayan IIS web ön yüzünün) kimlik doğrulanmış kullanıcılar adına işlem yapmasını sağlayan bir protokol uzantısıdır. Açık metin parola saklamadan çalışır; bu yüzden meşru bir ihtiyaçtır, ama yanlış hedefe verildiğinde bir saldırı yoludur.
  • Ebeveyn–Alt (Parent–Child) ExtraSids Yetki Yükseltmesi, alt etki alanının bir güvenlik sınırı değil, yalnızca bir yönetim birimi olması nedeniyle çalışır. Bir Active Directory ormanındaki her etki alanı aynı Configuration ve Schema bölümlerini paylaşır; bu yüzden alt taraftaki bir ele geçirme, üst tarafa taşınabilir.
  • Dizin Çizgesi Numaralandırması (BloodHound), Windows üye sunucularının ve etki alanı istemcilerinin Group Policy uygulamak, SID çözümlemek ve servis bulmak için Authenticated Users kimliğiyle dizin metadata’sına ve nesne güvenlik tanımlayıcılarına (nTSecurityDescriptor) okuma erişimine ihtiyaç duyması sayesinde çalışır.

Beş sunuculu GOAD (Game of Active Directory) laboratuvarı, çok katmanlı mimariyi değerlendirmek için eksiksiz bir referans model sunar. Bir güvenlik denetim makinesinden (192.168.56.0/24) gönderilen salt okunur LDAP ve DNS sorgularıyla bu analiz, iki ayrı ormanın, üç etki alanının, üç Domain Controller’ın ve iki üye sunucunun Microsoft Windows Server protokolleri altında nasıl etkileştiğini ayrıntılandırır.

ORMAN GÜVENLİK SINIRLARI · PAYLAŞILAN BÖLÜMLER VE ORMANLAR ARASI GÜVEN ORMAN 1 · sevenkingdoms.local Paylaşılan Orman Bölümleri CN=Schema · CN=Configuration · DC=ForestDnsZones DC01 · kingslanding (.10) ORMAN KÖKÜ DC=sevenkingdoms,DC=local · SEVENKINGDOMS-CA Üst/Alt Güven (0x20) · SID Filter KAPALI DC02 · winterfell (.11) ALT DOMAIN DC=north,DC=sevenkingdoms,DC=local SRV02 · castelblack (.22) ÜYE SUNUCU IIS 80 · MSSQL 1433 · Kısıtlı Delegasyon ORMAN GÜVENİ TDO (ÇİFT YÖNLÜ) SID FILTER AÇIK 0x48 / 0x08 DNS YÖNL. Koşullu 53 ORMAN 2 · essos.local Yalıtılmış Orman Bölümleri CN=Schema · CN=Configuration (Independent) DC03 · meereen (.12) ORMAN KÖKÜ DC=essos,DC=local · ESSOS-CA Domain Üyesi · Kerberos / RPC (SMB) SRV03 · braavos (.23) ÜYE SUNUCU MSSQL 1433 · LAPS · gMSA ORMAN GÜVENLİK SINIRI UYGULANIYOR Yabancı Admin SID'leri ayıklanır · Yalıtılmış bölümler
GOAD genelindeki dizin bölümü yerleşimi: sevenkingdoms.local ve north.sevenkingdoms.local, Forest 1 içinde tek bir CN=Configuration ve CN=Schema paylaşır; essos.local ise ormanlar arası bir Trusted Domain Object (TDO) ve koşullu DNS yönlendirmesiyle bağlanan ayrı bir ormandır.

1. Dizin Bölümleri: Güvenlik Sınırı Neden Etki Alanı Değil Ormandır?

Bir Active Directory ormanında ilk Domain Controller yükseltildiğinde (Install-ADDSForest), Windows C:\Windows\NTDS\ntds.dit konumunda bir Extensible Storage Engine (ESE) veritabanı dosyası oluşturur. Bu veritabanının içinde nesneler, Domain Controller’lar arasındaki replikasyon kapsamını yönetmek için mantıksal Adlandırma Bağlamlarına (Naming Contexts / Partitions) ayrılır. Yani “dizin” tek bir düz dosya değil, farklı kapsamlara sahip bölümlerin birleşimidir.

DC01 (192.168.56.10) üzerinde CN=Partitions,CN=Configuration,DC=sevenkingdoms,DC=local sorgulandığında Forest 1 için bölüm kayıtlarının tamamı görünür:

$ ldapsearch -x -H ldap://192.168.56.10 -D "[email protected]" -w "Heartsbane" \
    -b "CN=Partitions,CN=Configuration,DC=sevenkingdoms,DC=local" "(objectClass=crossRef)" \
    cn nCName dnsRoot | grep -E "^(cn|nCName|dnsRoot)"
cn: Enterprise Configuration
nCName: CN=Configuration,DC=sevenkingdoms,DC=local
dnsRoot: sevenkingdoms.local
cn: Enterprise Schema
nCName: CN=Schema,CN=Configuration,DC=sevenkingdoms,DC=local
dnsRoot: sevenkingdoms.local
cn: SEVENKINGDOMS
nCName: DC=sevenkingdoms,DC=local
dnsRoot: sevenkingdoms.local
cn: NORTH
nCName: DC=north,DC=sevenkingdoms,DC=local
dnsRoot: north.sevenkingdoms.local
cn: 3d4b07e3-c44f-4f9e-ab6c-19dbc611d4e3
nCName: DC=DomainDnsZones,DC=sevenkingdoms,DC=local
dnsRoot: DomainDnsZones.sevenkingdoms.local
cn: 7a98ffc5-6322-406d-89c3-4f33b87dd679
nCName: DC=ForestDnsZones,DC=sevenkingdoms,DC=local
dnsRoot: ForestDnsZones.sevenkingdoms.local
cn: a7e87a5b-d212-4656-9be1-dc9505595501
nCName: DC=DomainDnsZones,DC=north,DC=sevenkingdoms,DC=local
dnsRoot: DomainDnsZones.north.sevenkingdoms.local

Bölüm Sınıfları ve Replikasyon Kapsamları

Bölüm TürüLDAP Ayırt Edici AdıReplikasyon KapsamıGüvenlik Etkisi
Schema NCCN=Schema,CN=Configuration,DC=...Tüm Orman (Tüm DC’ler)Nesne sınıflarını ve özniteliklerini tanımlar. Yalnızca Schema Master FSMO rolünde yazılabilir.
Configuration NCCN=Configuration,DC=...Tüm Orman (Tüm DC’ler)Kurumsal topolojiyi, siteleri, alt ağları ve AD CS PKI kaplarını tutar. Tüm DC’ler yazılabilir replikaya sahiptir.
Domain NCDC=domain,DC=localEtki Alanı İçi DC’lerEtki alanı kullanıcı hesaplarını, grupları, bilgisayarları ve GPO’ları içerir. Yalnızca o etki alanı içinde yazılabilir.
Global Catalog (GC)3268/tcp / 3269/tcpTüm Orman (Seçili DC’ler)Ormandaki tüm etki alanı bölümlerinin salt okunur kısmi öznitelik kümesini (PAS) sunar.
Application NCDC=ForestDnsZones, DC=DomainDnsZonesOrman DC’leri veya Etki Alanı DNS SunucularıActive Directory Tümleşik DNS (ADIDNS) bölgelerini barındırır.

Kurumsal yapılarda şirketler, yönetim kontrolünü alt ekiplere devretmek için sıklıkla alt etki alanları (north.sevenkingdoms.local gibi) oluşturur. Ancak DC01 (kingslanding) ve DC02 (winterfell) orman genelindeki CN=Configuration ve CN=Schema bölümlerini paylaştığı için Microsoft, gerçek güvenlik sınırını etki alanı değil orman olarak tanımlar. Bu ayrımı anlamak, bir denetimde “hangi hedefe saldırırsam ormanın tamamını etkilerim?” sorusunun cevabını verir.

Bir orman içinde ebeveyn–alt güvenleri SID filtering uygulamaz. Bu nedenle bir alt etki alanı DC’sini (DC02) ele geçirmek, o etki alanının krbtgt hash’ini verir; bu hash ile ExtraSids (sIDHistory) alanında orman kökünün Enterprise Admins SID’ini (S-1-5-21-3291916993-3717649449-3745629854-519) taşıyan bir Kerberos bileti üretilebilir ve tüm orman ele geçirilebilir. Yani alt etki alanı, teknik olarak ayrı bir yönetim birimi olsa da güvenlik açısından ormanın içindedir. Bu nedenle bir alt etki alanındaki zayıf bir yönetici hesabı, orman kökündeki ayrıcalıklara giden bir basamak olarak değerlendirilmelidir.


2. Çok Ormanlı DNS ve _msdcs Servis Çözümlemesi

Windows Active Directory servis keşfi için tamamen DNS’e bağımlıdır. LDAP bağlantısı kurmadan, Kerberos bileti istemeden veya Group Policy güncellemesi yapmadan önce Windows istemcileri, dizin servislerinin IP adreslerini ve port numaralarını çözmek için RFC 2782 SRV sorguları gönderir. Bu yüzden DNS yanlış yapılandırıldığında, dizin ayakta olsa bile istemciler onu bulamaz.

GOAD içindeki her Domain Controller, kendi yetkili bölgesi için Windows DNS Server rolünü çalıştırır (sevenkingdoms.local için .10, north.sevenkingdoms.local için .11, essos.local için .12). Temel _msdcs kayıtlarını sorgulamak bu konumlandırma sürecini gösterir:

$ dig @192.168.56.10 _ldap._tcp.dc._msdcs.sevenkingdoms.local SRV +short
0 100 389 kingslanding.sevenkingdoms.local.

$ dig @192.168.56.10 _kerberos._tcp.dc._msdcs.sevenkingdoms.local SRV +short
0 100 88 kingslanding.sevenkingdoms.local.

$ dig @192.168.56.10 _ldap._tcp.pdc._msdcs.sevenkingdoms.local SRV +short
0 100 389 kingslanding.sevenkingdoms.local.

$ dig @192.168.56.10 _ldap._tcp.gc._msdcs.sevenkingdoms.local SRV +short
0 100 3268 kingslanding.sevenkingdoms.local.
0 100 3268 winterfell.north.sevenkingdoms.local.

Global Catalog sorgusu (_ldap._tcp.gc._msdcs.sevenkingdoms.local) 3268 portunda hem kingslanding (.10) hem de winterfell (.11) sunucularını döndürür. Global Catalog tüm ormanı indekslediği için sevenkingdoms.local içindeki herhangi bir istemci, evrensel grup üyeliklerini veya etki alanları arası UPN’leri çözmek için winterfell’e 3268 portundan sorgu gönderebilir.

Koşullu Yönlendiriciler ile Ormanlar Arası Çözümleme

sevenkingdoms.local ile essos.local ayrı ormanlarda yer aldığı ve ortak bir Global Catalog paylaşmadığı için ormanlar arası çözümleme, DC01 ve DC03 üzerinde yapılandırılmış DNS Koşullu Yönlendiricileri (Conditional Forwarders) gerektirir:

Add-DnsServerConditionalForwarderZone -Name "essos.local" -MasterServers 192.168.56.12

north.sevenkingdoms.local içindeki bir makine braavos.essos.local adresini sorguladığında, yerel DNS sunucusu sorguyu doğrudan 192.168.56.12 (meereen.essos.local) adresine iletir. Bu, istemcinin diğer ormanın iç bölgesini çözmesini sağlar; aksi hâlde ad çözümlemesi başarısız olur ve güven çalışsa bile erişim kurulamaz.

Denetim açısından koşullu yönlendiriciler, ormanlar arası güven ilişkilerini kimlik doğrulamasız DNS keşfine açar. Dahası, Active Directory Tümleşik DNS (DC=DomainDnsZones ve DC=ForestDnsZones) varsayılan olarak Authenticated Users grubunun yeni kayıt oluşturmasına izin verdiği için, ele geçirilmiş hesaplar SMB signing zorunlu değilse ad çözümlemesini zehirlemek amacıyla joker veya hedef kayıtlar enjekte edebilir. Bu nedenle DNS, yalnızca bir “kolaylık” katmanı değil, saldırı yüzeyinin parçasıdır.


3. Güven Mimarisi: Trusted Domain Objects ve Kerberos Yönlendirmeleri

DNS, ormanlar arası ana bilgisayar adı çözümlemesini sağlasa da etki alanları arası kimlik doğrulama için CN=System,DC=<domain>,DC=<tld> altında bulunan bir Trusted Domain Object (trustedDomain) nesnesi gerekir. Bu nesne, güvenin yönünü, tipini ve SID filtering davranışını taşır.

DC01 (sevenkingdoms.local) ve DC03 (essos.local) üzerindeki trustedDomain kayıtlarını sorgulamak yönlendirme bayraklarını ortaya çıkarır:

$ ldapsearch -x -H ldap://192.168.56.10 -D "[email protected]" -w "Heartsbane" \
    -b "CN=System,DC=sevenkingdoms,DC=local" "(objectClass=trustedDomain)" \
    cn flatName trustDirection trustType trustAttributes | grep -E "^(cn|flatName|trust)"
cn: north.sevenkingdoms.local
trustDirection: 3
trustType: 2
trustAttributes: 32
flatName: NORTH
cn: essos.local
trustDirection: 3
trustType: 2
trustAttributes: 72
flatName: ESSOS

$ ldapsearch -x -H ldap://192.168.56.12 -D "[email protected]" -w "fr3edom" \
    -b "CN=System,DC=essos,DC=local" "(objectClass=trustedDomain)" \
    cn flatName trustDirection trustType trustAttributes | grep -E "^(cn|flatName|trust)"
cn: sevenkingdoms.local
trustDirection: 3
trustType: 2
trustAttributes: 8
flatName: SEVENKINGDOMS
ORMANLAR ARASI KERBEROS YÖNLENDİRME ZİNCİRİ · NORTH → SEVENKINGDOMS → ESSOS 1. DC02 · winterfell NORTH KDC (.11) ROOT'a TGT verir 2. DC01 · kingslanding ROOT KDC (.10) SID Filter yok (0x20) 3. DC03 · meereen ESSOS KDC (.12) SID Filter AÇIK (0x08) 4. SRV03 · braavos CIFS/braavos (.23) Servis TGS'ini kabul eder Orman İçi Adım (NORTH ↔ SEVENKINGDOMS) trustAttributes = 32 (WITHIN_FOREST) ExtraSids (S-1-5-21-root-519) adım boyunca korunur Ormanlar Arası Adım (SEVENKINGDOMS ↔ ESSOS) trustAttributes = 8 / 72 (FOREST_TRANSITIVE) Yabancı Enterprise Admin SID'leri SID Filtering ile ayıklanır
Kerberos yönlendirmeleri GOAD'ın iki güven sınırını nasıl geçer: orman içi yönlendirmeler (WITHIN_FOREST = 32) NORTH ile SEVENKINGDOMS arasında ExtraSids değerlerini korur; ESSOS sınırına giden ormanlar arası geçiş (FOREST_TRANSITIVE = 8) ise SID filtering uygular.

trustAttributes Bitmask Referansı [MS-ADTS §6.1.6.7.9]

Bit DeğeriHexBayrak AdıAçıklama
10x0001TRUST_ATTRIBUTE_NON_TRANSITIVEGüven, alt veya ortak etki alanlarına geçişli olarak yayılmaz.
20x0002TRUST_ATTRIBUTE_UPLEVEL_ONLYGüveni yalnızca Windows 2000 ve üzeri işletim sistemleriyle sınırlar.
40x0004TRUST_ATTRIBUTE_FILTER_SIDSKarantinaya alınmış etki alanı: dış güvenlerde SID filtering açıkça uygulanır.
80x0008TRUST_ATTRIBUTE_FOREST_TRANSITIVEİki orman kökü arasında geçişli ormanlar arası kimlik doğrulamayı etkinleştirir.
160x0010TRUST_ATTRIBUTE_CROSS_ORGANIZATIONSeçici kimlik doğrulama açık: çağıranın hedef ana bilgisayarlarda Allowed to Authenticate izni olması gerekir.
320x0020TRUST_ATTRIBUTE_WITHIN_FORESTAynı orman içindeki ebeveyn–alt güveni. SID filtering devre dışı.
640x0040TRUST_ATTRIBUTE_TREAT_AS_EXTERNALOrman güvenini dış sınır uygulama semantiğiyle değerlendirir.
5120x0200TRUST_ATTRIBUTE_CROSS_ORGANIZATION_NO_TGT_DELEGATIONKuruluşlar arası sınırlarda TGT delegasyonunu engeller.

SID Filtreleme Protokol Mekaniği

Bir yönlendirme TGT’si ormanlar arası bir güvenden (0x08 veya 0x04) geçtiğinde, kabul eden KDC kullanıcının Privilege Attribute Certificate (PAC) yapısını [MS-PAC] §4.1.2.2 uyarınca değerlendirir:

  1. KDC, kullanıcının PAC yapısındaki ExtraSids alanını inceler.
  2. TRUST_ATTRIBUTE_WITHIN_FOREST (32) ayarlıysa hiçbir filtreleme yapılmaz. Yabancı yönetim SID’leri (Enterprise Admins gibi) PAC içinde korunur ve doğrudan etki alanından ormana yükseltmeye izin verir.
  3. TRUST_ATTRIBUTE_FOREST_TRANSITIVE (8) ayarlıysa kabul eden KDC FilterSids() çağırır. İyi bilinen yönetim RID’lerine sahip tüm SID’ler (RID < 1000; 500 Administrator, 512 Domain Admins, 519 Enterprise Admins dahil) ve güvenilen etki alanının temel SID’iyle eşleşmeyen SID’ler yetkilendirme bağlamından kalıcı olarak çıkarılır.

Bu mekanizma, ormanlar arası bir güvenin neden “sadece bir güven” olmadığını gösterir: bilet hâlâ geçerlidir, ama içindeki ayrıcalık iddiaları sınırda yeniden yazılır.


4. Üye Sunucu Mimarisi ve Servis Kimlikleri

GOAD’daki iş yükleri iki üye sunucuda çalışır: north.sevenkingdoms.local içindeki SRV02 (castelblack, .22) ve essos.local içindeki SRV03 (braavos, .23). Servis hesaplarını LDAP üzerinden denetlemek, operasyonel parametrelerini ortaya çıkarır:

$ ldapsearch -x -H ldap://192.168.56.11 -D "[email protected]" -w "Heartsbane" \
    -b "DC=north,DC=sevenkingdoms,DC=local" "(|(sAMAccountName=jon.snow)(sAMAccountName=sql_svc)(sAMAccountName=CASTELBLACK$))" \
    sAMAccountName servicePrincipalName msDS-AllowedToDelegateTo userAccountControl | grep -E "^(sAMAccountName|servicePrincipalName|msDS-Allowed|userAccountControl)"
sAMAccountName: CASTELBLACK$
userAccountControl: 4096
servicePrincipalName: HOST/castelblack.north.sevenkingdoms.local
msDS-AllowedToDelegateTo: HTTP/winterfell.north.sevenkingdoms.local
msDS-AllowedToDelegateTo: HTTP/winterfell
sAMAccountName: jon.snow
userAccountControl: 16842752
servicePrincipalName: HTTP/thewall.north.sevenkingdoms.local
servicePrincipalName: CIFS/thewall.north.sevenkingdoms.local
msDS-AllowedToDelegateTo: CIFS/winterfell.north.sevenkingdoms.local
msDS-AllowedToDelegateTo: CIFS/winterfell
sAMAccountName: sql_svc
userAccountControl: 66048
servicePrincipalName: MSSQLSvc/castelblack.north.sevenkingdoms.local:1433
servicePrincipalName: MSSQLSvc/castelblack.north.sevenkingdoms.local

Üye Sunucularda Kimlik Modelleri

  1. Service Principal Names (SPN): Bir istemci castelblack.north.sevenkingdoms.local:1433 adresine eriştiğinde, MSSQLSvc/castelblack.north.sevenkingdoms.local:1433 için bir Kerberos servis bileti (TGS-REQ) ister. KDC bu SPN’i taşıyan hesabı (sql_svc) bulur ve bileti o hesabın NTLM/AES gizli anahtarıyla şifreler. SPN atanmış standart etki alanı kullanıcıları (jon.snow, sql_svc) bu yüzden çevrimdışı Kerberoasting saldırılarına açıktır.
  2. Kısıtlı Delegasyon (msDS-AllowedToDelegateTo): jon.snow hesabında userAccountControl değeri 16842752 (0x1010000 = DONT_EXPIRE_PASSWORD | TRUSTED_TO_AUTH_FOR_DELEGATION) olarak ayarlıdır. Bu, protokol geçişini (S4U2Self ve S4U2Proxy) açarak jon.snow’un Administrator dahil rastgele kullanıcıları taklit ederek CIFS/winterfell.north.sevenkingdoms.local için bilet istemesini sağlar.
  3. Managed Service Accounts (gMSA) ve LAPS: essos.local içinde modern kontroller kimlik bilgisi hırsızlığını azaltır: bir group Managed Service Account (gmsaDragon$), KDC tarafından otomatik döndürülen 240 baytlık bir parolaya sahiptir ve yalnızca msDS-GroupMSAMembership ile yetkilendirilmiş ana bilgisayarlar tarafından okunabilir. Aynı zamanda LAPS, SRV03’ün yerel yönetici parolasını ms-Mcs-AdmPwd içinde saklar. Bu kontroller çevrimdışı hash kırmayı ortadan kaldırır, ama saldırı yüzeyini LDAP ACL’lerine taşır: ReadLAPSPassword (jorah.mormont) veya ReadGMSAPassword verilmiş herhangi bir principal, bu kimlik bilgilerini LDAP üzerinden açık metin olarak alabilir.

5. Kurumsal PKI: Active Directory Certificate Services (AD CS)

AD CS yapılandırma verileri CN=Public Key Services,CN=Services,CN=Configuration,DC=<forest>,DC=<tld> altında saklanır. GOAD’da farklı mimari katmanlarda konumlanmış iki Enterprise Sertifika Otoritesi (CA) vardır:

$ ldapsearch -x -H ldap://192.168.56.10 -D "[email protected]" -w "Heartsbane" \
    -b "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=sevenkingdoms,DC=local" \
    "(objectClass=pKIEnrollmentService)" cn dNSHostName | grep -E "^(cn|dNSHostName)"
cn: SEVENKINGDOMS-CA
dNSHostName: kingslanding.sevenkingdoms.local

$ ldapsearch -x -H ldap://192.168.56.12 -D "[email protected]" -w "fr3edom" \
    -b "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC=essos,DC=local" \
    "(objectClass=pKIEnrollmentService)" cn dNSHostName certificateTemplates | grep -E "^(cn|dNSHostName|certificateTemplates: ESC)"
cn: ESSOS-CA
dNSHostName: braavos.essos.local
certificateTemplates: ESC13
certificateTemplates: ESC9
certificateTemplates: ESC4
certificateTemplates: ESC3-CRA
certificateTemplates: ESC3
certificateTemplates: ESC2
certificateTemplates: ESC1

Kurumsal CA Katmanlandırma Sonuçları

Bir istemci bir sertifika şablonuna (pKICertificateTemplate) kaydolduğunda CA, çağıranın SID’ini şablonun DACL’iyle (Enroll / Autoenroll) karşılaştırır. Yetki varsa CA, istemci kimlik doğrulama EKU’ları (1.3.6.1.5.5.7.3.2) ve bir kimlik eşleme alanı (Subject Alternative Name veya szOID_NTDS_CA_SECURITY_EXT) içeren imzalı bir X.509 sertifikası verir. İstemci bu sertifikayı PKINIT (AS-REQ pre-auth type 16) ile sunarak bir Kerberos TGT’si alabilir.

  • sevenkingdoms.local içinde SEVENKINGDOMS-CA, doğrudan Forest Root DC DC01 (kingslanding, .10) üzerinde çalışır ve 80 portunda HTTP Web Enrollment (/certsrv/) sunar.
  • essos.local içinde ESSOS-CA, üye sunucu braavos.essos.local (.23) üzerinde barındırılır; Domain Controller ise DC03 (meereen, .12) sunucusudur.

Bir Enterprise CA ormanın NTAuthCertificates kabına yayınlandığı için ormandaki tüm etki alanı hesapları adına kimlik sertifikası verme yetkisine sahiptir. Bu nedenle bir Enterprise CA, BRAAVOS gibi Tier-1 üye sunucuda barındırılsa bile doğası gereği Tier-0 varlığıdır. BRAAVOS’un ele geçirilmesi, orman kökünün tamamen ele geçirilmesi anlamına gelir; çünkü CA, sertifika verirken etki alanı sınırlarını değil ormanın güven deposunu esas alır.


6. Güvenlik Tanımlayıcıları ve Yönlü Çizge Saldırı Yolları

Active Directory, güvenlik tanımlayıcılarını her LDAP nesnesindeki nTSecurityDescriptor ikili özniteliğinde saklar. Bu yapı bir Owner SID, Group SID, Discretionary Access Control List (DACL) ve System Access Control List (SACL) içerir.

Varsayılan olarak şema (defaultSecurityDescriptor), Authenticated Users (S-1-5-11) grubuna Domain ve Configuration bölümlerinde READ_CONTROL (0x00020000) hakkı verir. Bu okuma erişimi Windows işletim sisteminin çalışması için zorunludur: istemciler Group Policy uygulamasını değerlendirmek, sertifika şablonu kayıt haklarını doğrulamak ve iç içe grup üyeliklerini çözmek için DACL’leri incelemek zorundadır.

Açık READ_CONTROL izninin bir sonucu olarak, kimliği doğrulanmış herhangi bir etki alanı kimliği tüm ormanın yetkilendirme çizgesini alıp haritalayabilir. Özel ACE eklemeleri (GenericAll, WriteDacl veya User-Force-Change-Password gibi extended rights) doğrudan Tier-0 hakimiyetine giden kesintisiz yönlü saldırı yolları oluşturur. Bu yüzden BloodHound’un gücü, dizinde zaten okunabilir olan veriyi anlamlı bir bütüne dönüştürmesinden gelir. Ancak bir çizge kenarı tek başına kanıt değildir; ilgili ACE’nin gerçekten var olduğunu ve hedef nesnenin davranışının bu izni uyguladığını ayrıca doğrulamak gerekir. Okunabilirlik, keşfi kolaylaştırır; sömürülebilirlik ise iznin türüne ve hedefin yapılandırmasına bağlıdır.


Telemetri ve Tespit Mühendisliği

Ormanlar Arası Kimlik Doğrulama Telemetrisi

Event IDGünlük SağlayıcıOlay AçıklamasıTespit Kriteri
4768SecurityKerberos TGT İsteğiStandart dışı kullanıcı hesaplarına verilen Pre-Authentication Type 16 (PKINIT) veya anormal bilet seçenekleri.
4769SecurityKerberos Servis Bileti İsteğiService Name: krbtgt/<TRUSTED_REALM> ve Ticket Options: 0x40810010 taşıyan etki alanları arası yönlendirme istekleri.
4624SecurityBaşarılı Oturum AçmaEtki alanı üyesi olmayan IP aralıklarından veya beklenmeyen ormanlar arası hesaplardan gelen Logon Type 3 (Network) oturumları.
5136SecurityDizin Servisi Nesnesi DeğiştirilditrustedDomain nesnelerindeki (trustAttributes) değişiklikler veya ADIDNS bölgelerinde sahte dnsNode kaydı oluşturulması.
// KQL: Detect Anomalous Cross-Realm Kerberos Ticket Requests
SecurityEvent
| where EventID == 4769
| where ServiceName startswith "krbtgt/" and ServiceName !endswith TargetDomainName
| project TimeGenerated, Computer, TargetUserName, ServiceName, TicketOptions, TicketEncryptionType, IpAddress

Mimari Özet

Mimari KatmanSunucu / LDAP KonumuOperasyonel İşlevGüvenlik Sınırı Kuralı
Paylaşılan Orman BölümleriDC01 & DC02 üzerinde CN=Partitions,CN=ConfigurationOrman genelinde Schema, Siteler, PKI ve Global Catalog (3268/tcp).Tek güvenlik sınırı ormandır. Alt etki alanı ele geçirildiğinde ExtraSids ile orman köküne yükseltilir.
DNS SRV ve Koşullu Yönlendiriciler.10, .11, .12 üzerinde 53 portu + ADIDNSServis keşfi (LDAP, KDC, GC) ve ormanlar arası ad çözümleme.Koşullu yönlendiriciler güven topolojisini açığa çıkarır; kimlik doğrulamasız DNS zehirlenmesine karşı ADIDNS yazma ACL’lerini denetle.
Trusted Domain Objects (TDO).10 ve .12 üzerinde CN=System,DC=...Yönlendirme biletlerini yönetir (WITHIN_FOREST: 32 ile FOREST_TRANSITIVE: 8/72).Ormanlar arası güven, yabancı ExtraSids değerlerine karşı SID filtering uygular; yine de tüm Authenticated Users kaynaklarını açar.
Servis Kimlikleri ve DelegasyonCASTELBLACK (.22), BRAAVOS (.23), jon.snowKerberos servis kimlik doğrulaması, S4U kimlik bürünmesi ve gMSA parola rotasyonu.Domain Controller’lara asla delegasyon tanımlamayın; Kerberoasting’i önlemek için kullanıcı SPN’lerini gMSA ile değiştirin.
Kurumsal PKI (AD CS)SEVENKINGDOMS-CA (.10) & ESSOS-CA (.23)Orman genelinde sertifika verme ve PKINIT Kerberos kimlik doğrulaması.Her Enterprise CA bir Tier-0 varlığıdır. CA barındıran üye sunucular Domain Controller gibi sıkılaştırılmalıdır.
Güvenlik Tanımlayıcıları (nTSecurityDescriptor)Tüm LDAP dizin nesneleriİnce taneli isteğe bağlı erişim denetimi (DACL/ACE).Okuma erişimi tasarım gereği Authenticated Users grubuna açıktır; savunma, varsayılan dışı delegasyon yollarını denetlemektir.

Kanıt ve sınırlar

Topoloji, adlandırma bağlamları, güven nesneleri, servis yerleşimi ve ACL örnekleri bu seri boyunca kullanılan GOAD örneğine bağlıdır. Yazıdaki LDAP ve Kerberos çıktıları çalışan laboratuvara karşı kontrol edildi; protokol davranışı ve alan anlamları Microsoft Open Specifications belgeleriyle çapraz doğrulandı. Bu yüzden yazı, laboratuvarın gösterdiği şey ile protokolün garanti ettiği şeyi ayrı tutar.

GOAD bilerek küçük ve savunmasızdır. İki ormanı ve üç etki alanı sınırları gözlemlemek için kullanışlıdır, ama referans bir kurumsal tasarım değildir. Diyagramlar replikasyon sitelerini, hibrit kimliği, uç nokta yönetimini ve üretimdeki birçok PKI kontrolünü dışarıda bırakır. Adresleri, güven bayraklarını ve servis kimliklerini her AD kurulumu için varsayılan değil, bu laboratuvarın envanteri olarak oku.

Kaynaklar

Kaynaklar ve güncellik

Bu teknik not ne kadar güncel?

Kontrol edilen kaynaklar2 Kasım 2026

En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.

İnceleme DurumuKamuya açık kaynaklar incelendi

Birincil kamu kayıtları kontrol edildi. Ortama özgü davranış, ayrıca yeniden üretilmedikçe iddianın dışındadır.