Yönetim delegasyonu: Nesne, öznitelik ve extended rights düzeyinde yetki.
Delegasyon, bir nesnenin security descriptor'ına ACE eklemekten ibarettir; ama eklenen ACE'nin kapsamı üç ayrı düzeyde belirlenir: nesnenin tamamı, tek bir attribute veya property set, ya da bir extended right. "Sadece parola sıfırlama" gibi dar görünen bir yetki, hangi ObjectType GUID'iyle ve hangi inheritance ile yazıldığına göre beklenenden çok daha geniş bir kontrole dönüşebilir.
1. Core Mechanism / Temel mekanizma
Karar Active Directory dizin nesnesinin nTSecurityDescriptor özniteliğindeki DACL'de verilir; erişim kararını LSA/SRM'in access check'i, o nesneyi barındıran domain controller üzerinde yürütür. Bir principal bir işlem denediğinde (parola sıfırla, attribute yaz, grup üyeliği değiştir) değerlendirilen şey, nesnenin DACL'indeki ACE'lerin istenen ACCESS_MASK ve varsa ObjectType GUID ile eşleşmesidir. Bu dersin sınırı ACE'nin kapsam mekaniğidir: access check'in genel adımları 05.01'de, AdminSDHolder'ın korumalı nesnelerde bu ACL'i geri yazması 05.06'da, yönetim kimliklerinin kapsamı 05.07'dedir.
Arabirimler ve belirtimler
- MS-ADTS §5.1.3.2.1 Control Access Rights: control access right bir access-mask bitiyle değil bir GUID ile tanımlanır; ACE, ACCESS_MASK içinde RIGHT_DS_CONTROL_ACCESS (CR) bitini ve ObjectType alanında ilgili GUID'i taşır. ObjectType boşsa ACE tüm control access right'ları kapsar.
- SDDL object ACE (ace_type = OA, ACCESS_ALLOWED_OBJECT_ACE): alanlar ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid (Microsoft ACE strings).
- User-Force-Change-Password extended right (Display: Reset Password), rightsGuid 00299570-246d-11d0-a768-00aa006e0529 (AD Schema).
- Personal-Information property set, rightsGuid 77b5b886-944a-11d1-aebd-0000f80367c1; ObjectType'ta bir property set GUID'i bir attribute grubunu tek ACE ile kapsar (AD Schema).
- DS-Replication-Get-Changes-All control access right, rightsGuid 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 (AD Schema).
- Windows Security kanalı: 5136 (dizin nesnesi değiştirildi, uygun SACL gerektirir), 4662 (nesnede işlem yapıldı); Subcategory Audit Directory Service Changes ve Audit Directory Service Access; yalnız domain controller üzerinde.
Delegasyon yeni bir hak yaratmaz, sadece ACE ekler
Şeyma kullanıcısı için Helpdesk grubuna "parola sıfırlama yetkisi" verildiğinde arka planda tek bir şey olur: ilgili nesnelerin DACL'ine bir ACE eklenir. Active Directory'de "delegasyon" ayrı bir mekanizma değildir; standart ACL üzerine yazmaktır. Delegation of Control Wizard'ın yaptığı da budur.
Bu ACE'nin ne kadar geniş olduğunu üç şey belirler: rights alanındaki ACCESS_MASK bitleri, ObjectType GUID'i ve ace_flags içindeki inheritance. Aynı "izin ver" ACE'si, ObjectType boşken nesnenin bütün control access right'larını, doluyken yalnız tek bir hakkı kapsar.
Dolayısıyla "Helpdesk'e ne verdik?" sorusunun cevabı ACE'nin metnindedir, sihirbazın ekranındaki cümlede değil. Ders boyunca izleyeceğimiz örnek, outreason.example alanındaki bir kullanıcı nesnesine eklenen üç ACE'dir; her biri farklı bir kapsam düzeyini gösterir.
ObjectType GUID kapsamı daraltan alandır
MS-ADTS §5.1.3.2.1 kesindir: bir control access right standart erişim haklarının aksine ACCESS_MASK içinde kendine ait bir bitle temsil edilmez. Her control access right bir GUID ile tanımlanır. Bir ACE bu hakkı verirken ACCESS_MASK içinde RIGHT_DS_CONTROL_ACCESS (CR) bitini kaldırır ve o hakkı tanımlayan GUID'i ACE'nin ObjectType alanına yazar.
Aynı belge kritik bir kuralı ekler: ObjectType alanında bir GUID yoksa, ACE control access right'larla kontrol edilen tüm işlemleri yapma hakkını kapsar sayılır. Yani "CR ver, ObjectType'ı boş bırak" demek, "tüm extended right'ları ver" demektir. Bu, dar zannedilen bir ACE'nin geniş çıkmasının en yaygın yoludur.
Property set'ler de aynı mantığı attribute'lar için kurar. Personal-Information property set GUID'i (77b5b886-...) bir ACE'nin ObjectType'ına yazıldığında, o property set'e bağlı onlarca attribute'a tek ACE ile RP/WP verilir. GUID'i tek bir attribute'a ait yazsaydık kapsam bir attribute'la sınırlı kalırdı.
ACE (SDDL): (ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid)
(OA;;CR;00299570-246d-11d0-a768-00aa006e0529;;<Helpdesk-SID>)
-> yalnizca Reset Password extended right
(OA;;CR;;;<Helpdesk-SID>)
-> ObjectType BOS: TUM control access right'lar (cok daha genis)
(OA;;RPWP;77b5b886-944a-11d1-aebd-0000f80367c1;;<HR-SID>)
-> Personal-Information property set'indeki attribute grubu (RP+WP)controlAccessRight nesnesi erişim kararının parçası değildir
Her extended right, validated write ve property set için schema'nın Extended-Rights container'ında bir controlAccessRight nesnesi bulunur; bu nesnenin rightsGuid ve appliesTo öznitelikleri yönetim araçlarının hakkı isimlendirmesine yarar.
MS-ADTS aynı yerde önemli bir uyarı yapar: bu nesneler erişimi değerlendirmenin ayrılmaz parçası değildir ve varlıkları access control mekanizmasının doğru işlemesi için gerekli değildir. appliesTo alanı bir hakkın "hangi sınıfa uygun" olduğunu söyler ama access check anında zorlanmaz.
Pratik sonuç: bir hakkın "aslında sadece user nesnelerine uygulanır" gibi bir schema notu taşıması, o GUID'in başka bir nesnenin DACL'ine yazılmasını engellemez. Kapsamı belirleyen tek şey gerçek nesnenin gerçek DACL'idir; bu yüzden delegasyonu belgeye değil, nesnenin üstündeki ACE'ye bakarak doğrularız.
Inheritance ACE'yi tek nesneden alt ağaca taşır
Inheritance flag’leri ACE’nin nasıl yayılacağını belirtir, ama CI/OI adları tek başına AD’de hangi child class’ın kapsandığını söylemez. AD DS, object-specific ACE kurallarında bütün object type’ları container kabul eder. ACE type, inheritance flag’leri, InheritedObjectType (child class GUID’i), child class ve inheritance protection durumunu birlikte oku. “Container” sözcüğünden user nesnesinin otomatik olarak dışlandığını çıkarma.
Tek bir user nesnesine verilen delegasyon ile OU üzerinde miras alınabilir delegasyonun kapsamı farklıdır. OU altına taşınan nesne, ancak class ve protection durumu ACE’nin inheritance koşullarına uyuyorsa etkilenir. Yalnız CI flag’ine bakarak “OU altındaki her kullanıcı kapsanır” diyemezsin.
Örneğimizde ACE doğrudan tek bir user nesnesine konmuştur; inheritance yoktur. Bu bilinçli bir seçimdir: dersin amacı kapsamın nasıl daraltılıp genişletildiğini tek nesnede net göstermektir. Gerçek dizinlerde aynı hak çoğu zaman bir OU üzerinden miras yoluyla dağıtılır.
Aynı örnekte üç kapsam düzeyi
İzlediğimiz user nesnesinin DACL'inde üç ACE var. Birincisi (OA;;CR;00299570-...) yalnız Reset Password hakkını verir: dar ve amaca özgü. İkincisi (OA;;RPWP;77b5b886-...) Personal-Information attribute grubuna okuma/yazma verir: attribute düzeyi. Üçüncüsü (A;;GA;;;DA) Generic All verir: nesnenin tamamı.
Bu üç ACE aynı access check tablosunda değerlendirilir. Bir principal bir işlem denediğinde, denenen işlemin ACCESS_MASK'i ve varsa ObjectType GUID'i bu ACE'lerle karşılaştırılır. Reset Password denemesi birinci ACE ile, telefon numarası yazma denemesi ikinci ACE ile, nesneyi silme denemesi üçüncü ACE ile eşleşir.
Okuyucunun taşıması gereken model şudur: delegasyonun gücü "kime" verildiğinden çok "hangi ACCESS_MASK + hangi ObjectType + hangi inheritance" üçlüsünde saklıdır. Bu üçlü değişmeden verilen ismin (Helpdesk, HR, Backup) değişmesi kapsamı değiştirmez.
Durum ve veri akışı
- Yönetici, outreason.example'daki bir user nesnesi için Helpdesk grubuna Reset Password yetkisi verir.
- Araç, nesnenin nTSecurityDescriptor'ına (OA;;CR;00299570-246d-11d0-a768-00aa006e0529;;<Helpdesk-SID>) ACE'sini ekler.
- İkinci bir delegasyon HR grubuna Personal-Information property set'i için RP/WP verir: (OA;;RPWP;77b5b886-...;;<HR-SID>).
- Üçüncü ACE Domain Admins'e Generic All (A;;GA;;;DA) verir; bu nesne düzeyi tam kontroldür.
- Helpdesk üyesi parolayı sıfırlamak istediğinde access check, denenen extended right'ın GUID'ini DACL'deki CR ACE'sinin ObjectType'ı ile eşleştirir.
- HR üyesi telefon numarasını yazmak istediğinde access check, attribute'un property set üyeliğini ACE'nin ObjectType GUID'i ile eşleştirir.
- DACL değişikliği, nesnede uygun SACL varsa domain controller'da 5136 kaydını (ve genelde 4662'yi) üretir.
- Sonraki erişim denemesi güncel DACL, token ve istenen işlem kapsamında yeniden değerlendirilir. ACE aynı kalsa da token, istenen hak veya diğer uygulanabilir koşullar değişince sonuç değişebilir.
2. Exploitation / İstismar
Broken trust assumption
Kırılan varsayım şudur: "Dar bir yetki devrettim, o yüzden etkisi de dar." Gerçekte bir ACE'nin etkisi verilen işin adına değil, ACCESS_MASK + ObjectType + inheritance üçlüsüne bağlıdır. "Sadece parola sıfırlama" gibi görünen bir hak, hedef hesabın kimliğini üstlenmeye yeter; ObjectType'ı boş bırakılmış bir CR ACE'si ise tek bir hak yerine tüm control access right'ları açar.
Technical prerequisites
- Saldırganın, hedef nesnenin DACL'inde kendisine (veya kontrol ettiği bir principal'a) yazılmış bir ACE bulunması. Bu ACE meşru bir delegasyonun yan etkisi olabilir.
- Reset Password senaryosunda: hedef hesabın ayrıca smart-card-required veya başka bir engelleyici kontrolle korunmuyor olması; aksi halde yeni parola tek başına oturum açmaya yetmez.
- Hassas replication yetkilerini isteği yapan security context içinde değerlendir. Birbirinden bağımsız caller’ların hakları domain genelinde birleşik yetki oluşturmaz. Yalnız tek trustee SID’sine doğrudan yazılmış atamalara değil, effective permission’a bak.
- Grup ele geçirme senaryosunda: hedef grubun member attribute'una WriteProperty (WP) veya nesneye Generic Write/Generic All verilmiş olması.
- Hedef nesnenin AdminSDHolder korumasında olmaması; korumalı nesnelerde SDProp bu ACE'yi 05.06'da anlatıldığı gibi geri alır.
Exploitation mechanism / İstismar mekanizması
Mekanizma bir zafiyet değil, delegasyonun kapsamının yanlış okunmasıdır. Reset Password hakkı, hedef kullanıcının mevcut parolasını bilmeden yeni bir parola atamayı sağlar (User-Force-Change-Password'ün tanımı budur). Yeni parolayı atayan principal, artık o hesapla kimlik doğrulayabilir; yani "parola sıfırlama" fiilen hesap devralmadır. Aynı mantık daha da genişler: ObjectType'ı boş bir CR ACE'si tüm extended right'ları; bir gruba WP verilmiş member attribute'u kendini gruba ekleme imkanını; domain NC üzerindeki DS-Replication-Get-Changes-All ise "secret domain data"nın (parola hash'leri dahil) replikasyonla çekilmesini (DCSync) mümkün kılar. Hiçbir kural çiğnenmez; çiğnenen şey "bu hak zararsız görünüyor" varsayımıdır.
Reset Password neden hesap devralmadır
User-Force-Change-Password'ün AD Schema'daki tanımı nettir: bir kullanıcı hesabında parolayı sıfırlamaya izin verir. Bu, eski parolayı bilmeyi gerektiren "change password"den farklıdır; "force change" eski parolayı sormaz.
Bir principal bu hakka sahipse hedefin parolasını istediği değere ayarlayabilir, sonra o parolayla oturum açabilir. Sonuç, hedef kullanıcının bütün erişimlerini devralmaktır. "Helpdesk yalnız parola sıfırlıyor" cümlesi teknik olarak "Helpdesk kapsamındaki her hesaba giriş yapabiliyor" demektir.
Bu yüzden Reset Password delegasyonu Tier-0 hesaplarına asla verilmemelidir. Helpdesk'in sıradan kullanıcılar için parola sıfırlaması meşru olabilir; aynı hakkın Domain Admins üyelerini kapsayan bir OU'ya inheritance ile yayılması ayrı ve çok daha ağır bir karardır.
Boş ObjectType ve replikasyon hakları
En sinsi genişleme ObjectType'ın boş bırakılmasıdır. (OA;;CR;;;<SID>) yazımı tek bir hakkı değil, control access right'ların tamamını verir. Delegasyonu kuran kişi "CR verdim" diye düşünür; gerçekte hedefin bütün extended right yüzeyini açmıştır.
Domain naming context üzerindeki replication yetkileri çok hassas veriyi kapsar ve Tier-0 değerlendirmesi gerektirir. Authorization, caller’ın effective security context’ini kullanır; “aynı principal” ifadesini “ilgili bütün ACE’ler aynı trustee SID’sini taşımalı” diye okuma. Group membership bu bağlama katkı sağlayabilir; ilgisiz caller’ların token’ları ise birbirinden ayrı kalır.
Bu hak çoğu zaman meşru bir bileşen (dizin senkronizasyon aracı, bazı izleme çözümleri) için verilir. Tehlike, hakkın hangi principal'da olduğunu envanterlememektir. Domain NC üzerinde bu iki hakkı taşıyan her principal, Tier-0 gibi ele alınmalıdır.
Nerede etkisiz kalır
ACE hedef nesnenin gerçek DACL'inde değilse hiçbir şey olmaz; şema notları veya sihirbaz etiketleri erişim vermez. Aynı şekilde ObjectType dolu ve dar bir GUID taşıyorsa kapsam gerçekten o hakla sınırlıdır.
Korumalı hesaplarda AdminSDHolder/SDProp devrededir: protected object'lere elle eklenen ACE'ler en geç bir sonraki SDProp döngüsünde AdminSDHolder şablonuna göre geri yazılır (05.06). Bu yüzden Domain Admins gibi gruplara yapılan doğrudan ACL değişiklikleri kalıcı olmayabilir.
Reset Password'ün etkisi hedef hesabın ek kontrolleriyle sınırlanır: smart card zorunluluğu, oturum açma kısıtları veya devre dışı hesap, sıfırlanan parolanın işe yaramasını engelleyebilir. "Hak var" demek her zaman "sonuç garanti" demek değildir; erişim, kapsam ve engelleyici koşullar ayrı ayrı değerlendirilir.
3. Defense & Detection / Savunma ve tespit
Telemetry scope
- Audit Directory Service Changes alt kategorisi 5136, 5137, 5138, 5139 ve 5141 kayıtlarını üretir. Bu ders için ilgili olan, nesne değişikliğini gösteren 5136'dır.
- 5136 üretilmesi için değişen nesnenin SACL'inde uygun "Write" auditing girişi bulunmalıdır. SACL yoksa DACL değişse bile 5136 oluşmaz; bu, delegasyon izlemenin en sık atlanan ön koşuludur.
- 4662 için Audit Directory Service Access ve denetlenen işleme uyan object SACL gerekir. Olay, işlemi ve ilgili property/right GUID’lerini gösterir; tam bir önce/sonra descriptor farkını kanıtlamaz. 5136’nın önkoşulları ayrıdır: Audit Directory Service Changes ve ilgili attribute için uygun Write auditing.
- Her iki olay da yalnızca domain controller üzerinde oluşur; dizin değişikliği kaydıdır, üye sunucu olayı değildir.
- Bir DACL değişikliği için 5136 tipik olarak iki kayıt üretir: nTSecurityDescriptor için önce Value Deleted sonra Value Added. Yeni değer, ham SDDL metni olarak AttributeValue alanında görünür ve okunmak için ayrıca ayrıştırılmalıdır.
Events and relevant fields
- 5136 / AttributeLDAPDisplayName: değişen attribute. Delegasyon izlemede aranan değer nTSecurityDescriptor'dır.
- 5136 / AttributeValue: yeni değer. nTSecurityDescriptor değiştiyse bu alan bir SDDL metnidir; hangi trustee'ye hangi ACE eklendiği ancak bu metin ayrıştırılınca görülür.
- 5136 / OperationType: %%14674 Value Added, %%14675 Value Deleted. Bir ACL değişikliği genelde ikisini de üretir; karşılaştırma eski/yeni DACL'i verir.
- 5136 / ObjectDN ve ObjectClass: değiştirilen nesnenin DN'i ve sınıfı. Tier-0 kapsamını (Domain Admins üyeleri, AdminSDHolder, domain kökü) filtrelemek için kullanılır.
- 5136 / SubjectUserName ve SubjectUserSid: değişikliği yapan principal. Beklenen delegasyon araçları/hesapları ile karşılaştırılır.
- 4662 / Properties: işlemde kullanılan attribute veya control access right GUID'leri. Örneğin DS-Replication-Get-Changes-All GUID'inin (1131f6ad-...) 4662'de görünmesi replikasyon-tabanlı erişimin işaretidir.
- 4662 / AccessMask ve ObjectServer: istenen erişim ve hedef. 4662 tek başına yüksek hacimlidir; property GUID filtresi olmadan analiz edilemeyecek kadar büyür.
5136'yı okumak descriptor'ı ayrıştırmayı gerektirir
5136, bir nesnenin değiştiğini ve hangi attribute'un yazıldığını söyler. Değişen attribute nTSecurityDescriptor ise, olayın kendisi "DACL değişti" demekten öteye gitmez; hangi trustee'ye hangi hak eklendiği AttributeValue içindeki SDDL metnindedir.
Bu yüzden 5136 alarmı tek başına yeterli değildir. Yeni SDDL'i ayrıştırıp eklenen ACE'leri çıkarmak, sonra bunları eski değerle (Value Deleted kaydı) karşılaştırmak gerekir. Ders artifact'indeki gibi bir SDDL'i CR/RP/WP/GA ve ObjectType GUID düzeyinde okumak tam olarak bu adımdır.
Korelasyon için OpCorrelationID kullanılır: aynı yazma işleminin Value Deleted ve Value Added kayıtları bu kimlikle eşlenir. Böylece "neydi, ne oldu" tek bir değişiklik olarak görülür.
Hangi kayıt hangi soruyu yanıtlar
5136 "dizin nesnesi değişti mi ve hangi attribute?" sorusunu; 4662 "nesnede hangi işlem, hangi property/right GUID ile yapıldı?" sorusunu yanıtlar. İkisi de nesne SACL'ine bağlıdır ve yalnız DC'de oluşur.
Bir replikasyon-tabanlı erişimi (DCSync) yakalamak için 4662'de DS-Replication-Get-Changes / DS-Replication-Get-Changes-All GUID'lerini aramak daha doğrudandır; çünkü bu, ACL'in değiştiği anı değil, hakkın kullanıldığı anı gösterir.
Bu ders bağlamında 5136 delegasyonun kurulduğu anı, 4662 ise verilen bir hakkın kullanıldığı anı temsil eder. İkisini ayrı gözlem noktaları olarak tutmak, "yetki verildi" ile "yetki kullanıldı" arasındaki farkı korur.
Detection logic · Sigma
title: Dizin nesnesi security descriptor'i degistirildi (delegasyon izi)
id: 0a7c9d31-3d2e-4d0a-8f7a-2b6d1f4c5e90
status: experimental
description: >
5136 kaydinda nTSecurityDescriptor attribute'unun degistigi olaylari arar. Bu bir
delegasyon/ACL degisikligi izidir; tek basina kotu niyet kaniti degildir. AttributeValue
ham SDDL'dir ve hangi trustee/hak eklendigi backend'de ayristirilmalidir.
logsource:
product: windows
service: security
detection:
selection:
EventID: 5136
AttributeLDAPDisplayName: 'nTSecurityDescriptor'
OperationType: '%%14674'
condition: selection
fields:
- ObjectDN
- ObjectClass
- SubjectUserName
- AttributeValue
falsepositives:
- Delegation of Control Wizard ve otomatik provisioning araclari
- Grup/OU yeniden yapilandirmasi sirasinda toplu ACL guncellemeleri
level: mediumQuery assumptions
- 5136 yalnızca değişen nesnenin SACL'inde "Write" auditing girişi varsa üretilir. Tier-0 nesnelerinde bu SACL önceden yapılandırılmamışsa kural hiçbir şey görmez.
- AttributeValue alanı ham SDDL metnidir; hangi trustee'ye hangi ACE eklendiğini görmek için backend'de SDDL ayrıştırması gerekir. Kural yalnızca "descriptor değişti" sinyalini verir.
- OperationType '%%14674' (Value Added) filtresi yeni eklenen değeri hedefler; eski değeri de görmek için '%%14675' kayıtları eşlenmelidir.
- Alan adları Windows Security kanalındaki EventData adlarıdır; normalize eden bir backend için field mapping ayrıca yapılmalıdır.
- Bu kural gerçek bir SIEM üzerinde çalıştırılmamıştır; alan adları ve olay anlamı birincil kaynağa göre hazırlanmıştır ve kullanılan sürümün şemasına göre doğrulanmalıdır.
False positives
- Meşru delegasyon: Delegation of Control Wizard veya provisioning otomasyonu düzenli olarak nTSecurityDescriptor yazar.
- OU/grup yeniden yapılandırması sırasında toplu ACL değişiklikleri aynı kaydı üretir.
- Yedekleme/geri yükleme ve migration araçları descriptor'ları yeniden yazabilir.
- Negatif örnek: ACE bir OU'ya inheritance ile eklendiğinde asıl değişiklik OU'da olur; kullanıcı nesnesinde ayrı bir 5136 görünmeyebilir. Kapsamı OU nesnelerini de içerecek şekilde kurmak gerekir.
Hardening
- Önce envanter: hangi principal hangi nesnede hangi ACCESS_MASK + ObjectType ile yetkili? Bu harita çıkarılmadan yapılan "temizlik" meşru delegasyonu kırar. Domain NC üzerinde DS-Replication-Get-Changes-All taşıyan her principal ayrıca listelenir.
- Delegasyonu bireysel hesaplara değil amaca özel gruplara ver; kapsamı OU sınırında ve dar ObjectType GUID'leriyle tut. ObjectType'ı boş CR ACE'lerini bilinçli bir gerekçe olmadan kullanma.
- Tier-0 nesnelerini (Domain Admins üyeleri, AdminSDHolder, domain kökü) delegasyon dışında tut; bu nesnelerde AdminSDHolder/SDProp korumasının etkin olduğunu doğrula (05.06).
- İzleme için Tier-0 nesnelerinin SACL'ine "Write" auditing ekle; SACL olmadan 5136 üretilmez. Bu adım delegasyon denetiminin ön koşuludur.
- Doğrulama adımı: bir test delegasyonu ekle, 5136 kaydında nTSecurityDescriptor değişikliğinin ve AttributeValue içindeki yeni ACE'nin göründüğünü, ardından SDDL'i ayrıştırıp beklenen trustee/hak eşleşmesini gör.
- Periyodik ACL incelemesi kur: nesnelerin gerçek DACL'ini şema/etiket varsayımına değil ham ACE'lere göre gözden geçir; sapmaları bir sonraki denetime kadar biriktirme.
Örnekler üzerinde oku / Read the examples
ÖRNEĞİ BİRLİKTE OKUYALIM
EĞİTİM İÇİN HAZIRLANDIHangi kayıt erişim, hangisi audit veya integrity kuralı?
Bir user nesnesinde üç kapsam düzeyli delegasyon DACL'i (SDDL)
OA · Control AccessNesneye ö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.
OA · Read Property, Write PropertyNesneye ö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.
A · 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.
Domain AdminsBu bölüm security descriptor’ın bir parçasıdır. Owner, primary group, DACL ve SACL farklı bilgi taşır.
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ı
Sentetik SDDL; outreason.example için temsili bir user nesnesinin security descriptor'ıdır. Owner ve group Domain Admins (DA). DACL bayrağı AI (auto-inherited). Üç ACE üç kapsam düzeyini gösterir: (1) OA;;CR;00299570-246d-11d0-a768-00aa006e0529 -> yalnız Reset Password extended right (Helpdesk SID ...-5101); (2) OA;;RPWP;77b5b886-944a-11d1-aebd-0000f80367c1 -> Personal-Information property set'ine RP+WP (HR SID ...-5102); (3) A;;GA;;;DA -> nesne düzeyi Generic All. GUID'ler AD Schema'daki gerçek rightsGuid değerleridir; SID'ler sentetiktir. Parser SDDL bölümlerini ve ACE alanlarını çözer, erişim kararı HESAPLAMAZ ve GUID'lerin şema anlamını doğrulamaz.
Ham kaydı aç · SDDL
O:DAG:DAD:AI(OA;;CR;00299570-246d-11d0-a768-00aa006e0529;;S-1-5-21-1470163944-2039885437-3358247602-5101)(OA;;RPWP;77b5b886-944a-11d1-aebd-0000f80367c1;;S-1-5-21-1470163944-2039885437-3358247602-5102)(A;;GA;;;DA)İki yanlış kanı / Two reality checks
- Sanılan: Delegation of Control Wizard'da "Reset user passwords" kutusunu işaretlemek zararsız bir helpdesk yetkisidir.
- Gerçekte: Reset Password (User-Force-Change-Password, rightsGuid 00299570-246d-11d0-a768-00aa006e0529) eski parolayı bilmeden yeni parola atamayı sağlar; bu, hedef hesapla oturum açabilmek, yani fiilen hesap devralmaktır. Sıradan kullanıcılar için makul olabilir, fakat Tier-0 hesaplarını kapsayan bir OU'ya inheritance ile verildiğinde ayrıcalık yükseltme yoludur. "Yalnız parola sıfırlıyor" ifadesi "kapsamdaki her hesaba girebiliyor" ile aynı şeydir.
- Sanılan: Bir ACE'ye CR (Control Access) yazdıysam yalnızca belirli bir extended right'ı vermiş olurum.
- Gerçekte: MS-ADTS §5.1.3.2.1'e göre kapsamı belirleyen ObjectType alanıdır: CR ile birlikte ObjectType'ta bir GUID varsa yalnız o hak verilir; ObjectType boşsa ACE control access right'larla kontrol edilen tüm işlemleri kapsar. Yani (OA;;CR;;;SID) tek bir hak değil, hedefin bütün extended right yüzeyini açar. Kapsamı ACE'nin metnindeki GUID'in varlığı belirler, aracın etiketindeki cümle değil.
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
CR hakkı için ObjectType GUID bulunması neyi daraltır?
Bir ipucu
Araç etiketinden önce ACE alanını oku.
Cevabın gerekçesini oku
Bu control access ACE’sinin ilgili extended right kapsamını.
Doğru. GUID’in yokluğu ile belirli GUID aynı kapsam değildir.
2 / 3 · KANITI OKU
Bu ACE özetindeki hak türü hangisi?
- ACE type
- ACCESS_ALLOWED_OBJECT_ACE — teaching summary
- Rights
- CR
- ObjectType
- 00299570-246d-11d0-a768-00aa006e0529
- Trustee
- Helpdesk — teaching role
Bir ipucu
CR ile ObjectType GUID’ini birlikte oku.
Cevabın gerekçesini oku
User-Force-Change-Password / Reset Password extended right.
Doğru. Bu özet, bütün nesne haklarının veya bir gerçek reset sonucunun kanıtı değildir.
3 / 3 · KENDİN ANLAT
Helpdesk delegation’ını denetlerken neden “reset hakkı var” cümlesinden fazlasına ihtiyaç var?
Bir ipucu
Hangi trustee, hangi target, hangi GUID ve hangi inheritance?
Cevabın gerekçesini oku
Reset hakkının trustee’si ve ObjectType GUID’i, hangi target nesnelere inheritance ile ulaştığı ve kullanılan context incelenmelidir. Bir ACE etiketi bütün kapsamı anlatmaz; ilgili işlem için izin değerlendirmesi ve gerçekten gerçekleşmiş sonuç ayrıca gerekir.
- İşlem ve ObjectType eşleşmesini belirttim.
- Target/inheritance kapsamını ayrı inceledim.
- ACE varlığını gerçekleşmiş işlem sonucu saymadı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.
FS01 üzerindeki dosyanın DACL kaydını oku; etkin erişim hesabı ayrıca değerlendirilir.
Hazır script’i değiştirmeden çalıştırabilir veya aşağıdaki günlük komutları deneyebilirsin.
Ctrl / ⌘ + Enter: çalıştır · Shift + Enter: yeni satır
PS C:\Users\tunahan>
Uzun çıktı: terminalin içinde kaydırarak devamını oku.
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 oturumdaki son komutlar
Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.
Kaynaklar / Sources
- MS-ADTS · Control Access Rights
§5.1.3.2.1: control access right bir GUID ile tanımlanır; ACE, ACCESS_MASK içinde RIGHT_DS_CONTROL_ACCESS (CR) bitini ve ObjectType alanında hakkın GUID'ini taşır; ObjectType boşsa ACE tüm control access right'ları kapsar; controlAccessRight nesneleri (rightsGuid, appliesTo) erişim değerlendirmesinin ayrılmaz parçası değildir. - Microsoft · User-Force-Change-Password extended right (AD Schema)
CN User-Force-Change-Password, Display-Name Reset Password, Rights-GUID 00299570-246d-11d0-a768-00aa006e0529; "Permits resetting a password on a user account." - Microsoft · Personal-Information property set (AD Schema)
CN Personal-Information, Rights-GUID 77b5b886-944a-11d1-aebd-0000f80367c1; property set üyesi attribute listesi (telephoneNumber, streetAddress vb.). - Microsoft · DS-Replication-Get-Changes-All extended right (AD Schema)
CN DS-Replication-Get-Changes-All, Rights-GUID 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2; "Control access right that allows the replication of secret domain data." - Microsoft · ACE strings (SDDL)
SDDL ACE alan sırası ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid; OA = ACCESS_ALLOWED_OBJECT_ACE_TYPE; CR/RP/WP/GA hak kısaltmaları. - Microsoft · 5136(S) A directory service object was modified
Subcategory Audit Directory Service Changes; SACL Write auditing ön koşulu; EventData alanları AttributeLDAPDisplayName, AttributeValue, OperationType (%%14674/%%14675), ObjectDN, ObjectClass, SubjectUserName. - Microsoft · ACE Inheritance Rules
Object-specific ACE inheritance; DS treats all object types as containers; InheritedObjectType class scope. - Microsoft · Setting Rights to Specific Types of Objects
Class-targeted inheritance and InheritedObjectType. - Microsoft · 4662: An operation was performed on an object
Audit Directory Service Access, matching object SACL, Properties/AccessMask; operation evidence, not complete descriptor diff. - Microsoft · Audit Directory Service Access
Audit subcategory and 4662 event scope. - Microsoft · Access Tokens
Caller context includes user and group SIDs; separate tokens do not pool rights.