Hacker Directory — Understand what you hack.Hacker Directory — Understand what you hack.
Öğrenmeye devam et
EN
İçindekiler15 bölüm · 82 ders
DERS 01.03DERİN TEKNİK İNCELEME

Forest, domain, OU ve container: Organizasyon şeması ile güven sınırını ayırmak.

Forest domain’leri bir araya getirir; OU ise domain içindeki nesneleri düzenler. Önce bu ağacı tanı, sonra nesnenin bulunduğu yer ile ona verilen izni ayır.

Önce forest → domain → OU ilişkisini gör.

Forest, ortak schema ve configuration paylaşan bir veya daha fazla domain’in üst kapsamıdır. Domain hesapların tutulduğu ve directory verisinin çoğaltıldığı alandır. OU, domain içindeki kullanıcı ve bilgisayar nesnelerini düzenleyen bir container türüdür.

Aşağıdaki örnekte Tunahan People OU’sunda, WS01 Workstations OU’sunda. Bir nesnenin OU’da bulunması ona bir izin vermez. OU bir forest güvenlik sınırı değildir; yerleşim, policy kapsamı ve izinler ayrı sorulardır.

İlişkiyi kurduktan sonra izin kalıtımı sahnesine geç. Delegation, belirli kimliklere belirli yönetim hakları vermektir. DACL izin listesi, ACE listedeki kural, inheritance ise kuralın alt nesnelere hangi koşulla geçeceğidir. CI/IO ve WRITE_DAC ayrıntılarını ilk geçişte ezberlemek yerine kuralın kime ve nereye uygulandığını izle.

Bu örnekte bir forest, bir domain
  • Forest · iyelabs.example
    • Domain · iyelabs.example
      • OU · People
        • Tunahan · kullanıcı hesabı
      • OU · Workstations
        • WS01 · bilgisayar hesabı

OU’lar domain içindeki nesneleri düzenler. Adları bir izin vermez; sonraki örnek miras alınan hakları ayrıca inceler.

Önce temel fikri kendi cümlenle açıkla. Sonra sahneyi izle; interface adları ve kanıt ayrıntıları aşağıda.

1. Core Mechanism / Temel mekanizma

Windows components / teknik ayrıntılar

AD DS mantıksal modelinde forest bir veya daha fazla domaini ortak schema, configuration ve global catalog bağlamında toplar. Domain bir directory partition’dır. OU, domain naming context içinde organizationalUnit sınıfından bir container’dır; CN=Users gibi genel container’lar da nesne tutabilir. DN nesnenin ağaçtaki yerini, nTSecurityDescriptor ise güvenlik denetimi bağlamını taşır.

Arabirimler ve belirtimler

  • LDAP directory information tree: distinguished name (DN), relative distinguished name (RDN) ve domain naming context.
  • OU nesne sınıfı: organizationalUnit; schemaIDGUID bf967aa5-0de6-11d0-a285-00aa003049e2.
  • Nesne güvenliği: nTSecurityDescriptor içindeki owner, DACL, SACL ve ACE’ler.
  • ACE kapsamı: trustee SID, rights mask, inheritance flags ve object-specific ACE’de isteğe bağlı object/inherited-object GUID.
  • Delegation: OU veya üst container ACL’sine yazılan, alt nesnelere inheritance kurallarıyla taşınabilen ayrıntılı haklar.

Dört ad, üç farklı soru

Forest, ortak schema ve configuration paylaşan domainlerin en üst AD DS kapsamıdır. Domain hem bir adlandırma/dizin partition’ı hem de hesap ve çoğaltma yönetim alanıdır.

OU ve container nesneleri domain ağacında nesne tutar. OU; sınıflandırma, Group Policy scope-of-management ve delegation tasarımında özel role sahiptir. Genel container bulunması onu otomatik OU yapmaz.

DN konumu gösterir, güven sınırını değil

CN=Tunahan,OU=Muhasebe,DC=iyelabs,DC=example DN’i nesnenin RDN’sini ve üst yolunu gösterir. Bu yol yönetim ve arama kapsamını anlamayı sağlar.

Nesneyi başka OU’ya taşımak organizasyonel yerleşimi ve miras alabileceği policy/ACE bağlamını etkileyebilir; ancak OU adı tek başına forest düzeyinde izolasyon oluşturmaz.

Delegasyon bir ACL ilişkisidir

OU üzerindeki DACL, belirli trustee SID’lerine belirli haklar tanır. ACE inheritance flags hakkın alt ağaca geçip geçmeyeceğini; object/inherited-object GUID ise hangi sınıf ya da özellik bağlamına uygulanacağını daraltabilir.

Etkili kontrol, explicit ve inherited ACE’lerin hedef nesne ve istenen right bağlamında değerlendirilmesiyle anlaşılır. “OU yöneticisi” etiketi, forest veya DC üzerinde sınırsız yetki anlamına gelmez.

Artifact geniş ve dar kapsamı karşılaştırır

İlk ACE, RID 1105 trustee’sine container inherit ile Generic All verir ve geniştir. İkinci object-specific ACE, RID 1106 için WRITE_DAC hakkını yalnız descendant OU sınıfına CI|IO kapsamıyla taşımayı amaçlar.

Bu sentetik SDDL üretim ACL’i değildir. Parser yalnız tokenları ayırır; canonical ACE order, gerçek effective access veya Windows round-trip sonucu hesaplamaz. Bunlar açık doğrulama bloklarıdır.

Durum ve veri akışı

  1. Forest’in ortak schema/configuration kapsamı içinde, nesnenin DN’i domain naming context’teki yerini gösterir.
  2. OU veya üst container DACL’i bir principal’a belirli haklar tanımlar.
  3. Inheritance flags hakkın alt nesnelere taşınıp taşınmayacağını belirler.
  4. Object-specific ACE, hakkı belirli sınıf/attribute kapsamına daraltabilir.
  5. Etkili kontrol trustee SID, explicit/inherited ACE, hedef nesne ve istenen right ile değerlendirilir.
  6. OU yerleşimi yönetim görünümünü düzenler; forest düzeyinde güvenlik izolasyonu yaratmaz.

2. Exploitation / İstismar

Broken trust assumption

Bozulan varsayım: “Ayrı departman OU’su kendi başına güvenlik izolasyonudur.” Gerçekte OU idari ve policy kapsamıdır; yanlış geniş ya da yanlış miraslanan ACE, alt nesnelerde beklenenden fazla kontrol verebilir.

Technical prerequisites

  • Saldırganın veya yanlış yapılandırılmış bir grubun OU ya da üst container üzerinde etkili bir ACE’ye sahip olması.
  • ACE rights mask’inin ilgili işlemi (ör. GA, WD, WP, CC veya DC), doğru inheritance kapsamını ve hedef nesne sınıfını kapsaması.
  • Hedef nesnenin inheritance’ı engellememesi veya explicit DACL ile hakkı etkisizleştirmemesi.

Exploitation mechanism / İstismar mekanizması

Geniş veya yanlış miraslanan ACE, OU altındaki nesneleri oluşturma/silme, attribute değiştirme veya DACL değiştirme yetkisi verebilir. Etki yalnız ACE’deki right, trustee, object type, inherited-object type ve miras derinliğinde geçerlidir. OU üzerinde kontrol forest/DC yöneticiliği değildir; fakat OU kapsamındaki kimlik ve bilgisayar nesneleri üzerinde ciddi etki yaratabilir. Üst düzey hizmet yöneticileri OU ACL’sini değiştirebildiği için OU gerçek bir forest güvenlik sınırı değildir.

Organizasyon çizgisini saldırı sınırı sanma

Departman adları ve OU yolları insanlara düzen sunar; saldırı yüzeyini ise ACL’deki gerçek trustee ve rights belirler.

Üst container’dan miraslanan tek bir geniş ACE, çok sayıda alt nesneyi kapsayabilir.

Hak adını kapsamıyla birlikte oku

WRITE_DAC, Generic All ile aynı şey değildir; object-specific ve inherit-only bayrakları etkinin nerede başladığını değiştirir.

Bir ACE’yi “yetki var” diye özetlemek yerine right, object GUID, inherited-object GUID, trustee SID ve hedef nesne birlikte açıklanmalıdır.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • Üretici/host: değişikliği işleyen domain controller; kanal Security.
  • Audit Directory Service Changes alt kategorisi Success olarak etkin olmalıdır.
  • 5136 için uygun SACL’de ilgili write erişiminin denetlenmesi gerekir; olay yokluğu audit/SACL eksikken değişiklik olmadığını kanıtlamaz.

Events and relevant fields

  • 5136 Version 0: AD nesnesi değişikliği.
  • Dersle ilgili alanlar: SubjectUserSid, SubjectUserName, SubjectDomainName, SubjectLogonId, DSName, DSType, ObjectDN, ObjectGUID, ObjectClass, AttributeLDAPDisplayName, AttributeSyntaxOID, AttributeValue, OperationType ve OpCorrelationID.
  • Delegation incelemesinde AttributeLDAPDisplayName=nTSecurityDescriptor; OU hedefinde ObjectClass=organizationalUnit beklenebilir.
  • Aynı OpCorrelationID içindeki Value Deleted ve Value Added kayıtları ilişkilendirilebilir; olay ACE’nin effective access sonucunu tek başına hesaplamaz.

Değişikliği ve etkisini ayır

5136, nTSecurityDescriptor özniteliğinin değiştiğini gösterebilir. Hangi ACE’nin hangi principal’a fiilen hangi erişimi verdiğini hesaplamak için eski/yeni descriptor ve hedef nesne bağlamı ayrıca ayrıştırılmalıdır.

OpCorrelationID, bir değişikliğin silinen ve eklenen değer kayıtlarını bağlamaya yardımcı olur; değişiklik onayı için change record ile eşleştirme gerekir.

SDDL’yi kapsam tablosuna dönüştür

Her ACE için type, flags, rights, object GUID, inherited-object GUID ve trustee ayrı sütun olmalıdır. Böylece geniş Generic All ile yalnız descendant OU’larda WRITE_DAC aynı etiket altında kaybolmaz.

Parser çıktısı effective access kararı değildir. Deny/allow sırası, group membership, object state ve inheritance bütünü ayrıca değerlendirilmelidir.

Detection logic · XPath

*[System[(EventID=5136)]] and *[EventData[Data[@Name='AttributeLDAPDisplayName']='nTSecurityDescriptor']]

Query assumptions

  • Bu, ham Windows Event Log XML alan adları için çalıştırılmamış aday filtredir.
  • OU kapsamı kesin ObjectDN allowlist’i veya kontrollü DN suffix kuralıyla ayrıca daraltılmalıdır.
  • Audit Directory Service Changes Success ve uygun SACL yoksa kayıt oluşmayabilir.
  • AttributeValue biçimi build ve yapılandırmaya göre lab’da doğrulanmadı; sorgu yalnız attribute adına dayanır.

False positives

  • Onaylı Delegation of Control değişiklikleri ve planlı ACL bakımı.
  • Provisioning otomasyonu ve migration işlemleri.
  • Negatif örnek: 5136 yokluğu audit/SACL eksikken değişiklik olmadığını kanıtlamaz; 5136 varlığı da ACE’nin gerçek etkisini tek başına göstermez.

Hardening

  • Delegasyonu doğrudan kişiye değil yönetilen gruba ve en dar right/object type kapsamıyla ver.
  • OU DACL’lerini düzenli ayrıştır; explicit ve inherited ACE’leri, trustee SID ve GUID kapsamıyla sakla.
  • Default container yerine yönetilebilir özel OU kullan; fakat bunu güvenlik izolasyonu diye sunma.
  • İzolasyon gereksinimini forest/domain mimarisi ve hizmet yöneticileri tehdit modeliyle değerlendir.
  • Audit değişikliklerini onaylı değişiklik kaydıyla karşılaştır; SDDL’yi Windows API round-trip ve kontrollü OU üzerinde lab doğrulamasından geçir. Bu adımlar henüz yapılmadı.

Örnekler üzerinde oku / Read the examples

ÖRNEĞİ BİRLİKTE OKUYALIM

EĞİTİM İÇİN HAZIRLANDI

Hangi kayıt erişim, hangisi audit veya integrity kuralı?

OU delegation kapsamı · sentetik SDDL

01
S-1-5-21-111111111-222222222-333333333-1105A · Generic All

İzin veren kayıt. Maske trustee’ye yönelik allow/deny kaydının kapsamıdır. İstek, token, sıra ve nesne türü incelenmeden effective access sonucu çıkarılmaz. CI: alt container nesnelere miraslanabilir.

02
S-1-5-21-111111111-222222222-333333333-1106OA · WRITE_DAC

Nesneye özgü izin kaydı. Maske trustee’ye yönelik allow/deny kaydının kapsamıdır. İstek, token, sıra ve nesne türü incelenmeden effective access sonucu çıkarılmaz. CI: alt container nesnelere miraslanabilir. IO: bu nesnede uygulanmaz, yalnız miraslanan nesnelerde geçerlidir. Inherit-object GUID mirası alabilecek nesne sınıfını sınırlar: organizationalUnit · bf967aa5-0de6-11d0-a285-00aa003049e2.

03
Erişim kuralları / DACL(A;CI;GA;;;S-1-5-21-111111111-222222222-333333333-1105)(OA;CIIO;WD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-111111111-222222222-333333333-1106)

Bu bölüm security descriptor’ın bir parçasıdır. Owner, primary group, DACL ve SACL farklı bilgi taşır.

Buradan çıkaracağın fikir

Bir kuralı okumak ile “bu kişi kesin erişebilir” demek farklıdır. Erişim isteği, token, ACE sırası ve nesne türüyle birlikte değerlendirme gerekir.

Bu görünüm SDDL’deki kuralları açıklar; Windows’un erişim kararını çalıştırmaz. SACL audit ve mandatory label kurallarını taşır; izin veren DACL’in yerine geçmez.

Bu örneğin kapsamı

İki ACE içerir. ACE 1: A/CI/GA, trustee RID 1105, object GUID yok. ACE 2: OA/CIIO/WD, object GUID boş, inherit-object GUID organizationalUnit schemaIDGUID, trustee RID 1106. Bu üretim tavsiyesi veya gerçek OU ACL’si değildir; parser ve Windows API round-trip testi yapılmadı, effective access hesaplanmaz.

Ham kaydı aç · SDDL
D:(A;CI;GA;;;S-1-5-21-111111111-222222222-333333333-1105)(OA;CIIO;WD;;bf967aa5-0de6-11d0-a285-00aa003049e2;S-1-5-21-111111111-222222222-333333333-1106)

İki yanlış kanı / Two reality checks

Sanılan: Organizasyon şemasında ayrı departman OU’su oluşturmak güvenlik izolasyonu sağlar.
Gerçekte: OU idari sınıflandırma, Group Policy ve delegation kapsamıdır. Etkili izolasyon ACL’lere ve daha geniş mimariye bağlıdır; forest düzeyindeki hizmet yöneticilerine karşı güvenlik sınırı oluşturmaz.
Sanılan: OU üzerinde “yetki verildi” demek altındaki her nesnede Full Control demektir.
Gerçekte: Etki ACE rights mask’i, trustee SID’si, inheritance flags, object/inherited-object GUID’leri ve hedef nesnenin miras durumuyla sınırlıdır; bazı ACE’ler yalnız belirli descendant sınıflarında etkindir.

SIRA SENDE

Bu hikâyeyi sen çöz.

Bilgiyi hatırlamaktan bir adım ileri: koşulu değiştir, kanıtı oku, kararın nedenini anlat.

1 / 3 · SONUCU TAHMİN ET

Tunahan ayrı bir OU’ya taşındı. Forest admin’lerinden isolation oluştu mu?

Bir cevap seç

Bir ipucu

Organizasyonel yerleşim ile en geniş security boundary farklı.

Cevabın gerekçesini oku

Hayır; OU yönetim/GPO/delegation scope’udur.

OU forest düzeyinde hostile-admin isolation sınırı değildir.

2 / 3 · KANITI OKU

Bu scope kartından Tunahan user nesnesinde aynı hak çıktığı söylenebilir mi?

Sentetik delegation koşul kartı; effective-access hesabı değildir.
Parent / Üst nesne
OU=People
Delegated right / Hak
WRITE_DAC
Applicable descendant class / Alt nesne sınıfı
organizationalUnit
Examined target class / Hedef sınıf
user
Bir cevap seç

Bir ipucu

Descendant sınıfı hangi nesnelere uygulanıyor?

Cevabın gerekçesini oku

Hayır; descendant OU sınıfı koşulu user sınıfıyla eşleşmiyor.

Bir parent üzerindeki hak hedef sınıfı ve inheritance scope’una göre sınırlıdır.

3 / 3 · KENDİN ANLAT

Tunahan başka OU’ya taşınınca neden etkili hakları ve policy’yi yeniden incelemek gerekir?

Bir ipucu

DN yeri ile miras alınan ACE/policy bağlamını bağla.

Cevabın gerekçesini oku

Taşıma yeni parent ve inheritance/GPO scope’u getirir; etkili haklar explicit/inherited ACE, SID, hedef sınıf ve istenen right ile değerlendirilir. OU adı tek başına sonucu belirlemez.

  • Yeni parent/inheritance bağlamını belirttim.
  • OU adından otomatik Full Control veya isolation çıkarmadım.

Açıklaman otomatik puanlanmaz. Kontrol noktalarını kendi cevabınla karşılaştır.

Vaka terminalini aç · PowerShell / CMD

Eğitim simülasyonu · Komutlar ve çıktılar bu vakaya aittir.

Bu oturumdaki hesabın adını ve SID’sini oku.

Hazır script’i değiştirmeden çalıştırabilir veya aşağıdaki günlük komutları deneyebilirsin.

WS01 · Windows PowerShell 5.1ÖRNEK OTURUM
IYELABS\tunahanstudent0103 · ders çalışma alanı

Ctrl / ⌘ + Enter: çalıştır · Shift + Enter: yeni satır

Merak edersen: günlük komutları dene

Bir komuta dokun, sonra Çalıştır’a bas. Kullanıcı ve ağ bilgileri seçili örnek bilgisayara göre değişir.

Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.

Kaynaklar / Sources