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

LDAP ile dizini okumak: Search base, scope, filter ve erişilebilir öznitelikler.

Bir LDAP search'ün ne döndüreceği tek bir 'yetki' değeri değildir; baseObject, scope, filter, istenen attribute listesi ve sunucu/istemci limitlerinin kesişimidir. Paged Results sonuçları sayfalara böler; erişim hakkı veya sunucu limitlerini bypass etmez. Dizini okuyabilmek, nesne üzerinde yazma/kontrol hakkı olduğu anlamına gelmez: okuma ve değişiklik farklı, işlem ve attribute kapsamına bağlı access right'lara dayanır.

1. Core Mechanism / Temel mekanizma

Bu ders LDAP Search operation'ı RFC 4511 §4.5.1 üzerinden alan alan ele alır: SearchRequest'in baseObject, scope, derefAliases, sizeLimit, timeLimit, typesOnly, filter ve attributes bileşenleri. Attribute seçim listesinin özel durumları (boş liste, '*', '1.1') §4.5.1.8'de tanımlıdır. Filtre kodlamasının context tag'leri (equalityMatch [3], present [7]) aynı bölümdedir. AD'nin sunucu-taraflı sonuç sınırları (ör. MaxPageSize ve paged results control mekanizması) kavramsal olarak anılır ama belirli sürüm sayıları uydurulmaz; erişim kararının ACE düzeyi mantığı ise ayrı bir derse bağlanır.

Arabirimler ve belirtimler

  • baseObject: aramanın başlayacağı DN; aramanın kökü buradan belirlenir (RFC 4511 §4.5.1.1).
  • scope: baseObject(0) yalnız o giriş, singleLevel(1) doğrudan alt nesneler, wholeSubtree(2) tüm alt ağaç (RFC 4511 §4.5.1.2).
  • filter: nesnelerin eşleşme koşulu; equalityMatch, present, substrings, and/or/not gibi CHOICE alternatifleri (RFC 4511 §4.5.1.7).
  • attributes: eşleşen entry'den istenen alanlar. Boş liste veya '*' tüm user attribute'larını ister; operational attribute'lar ayrıca ismen istenir. Yalnız '1.1' hiçbir attribute istemez; entry'nin DN'i yine dönebilir.
  • typesOnly: TRUE ise yalnız attribute adları, değerler olmadan döner (RFC 4511 §4.5.1.6).
  • sizeLimit/timeLimit: istemcinin istediği üst sınırlar; sunucu kendi üst sınırını ayrıca dayatabilir (RFC 4511 §4.5.1.4–5).
  • paged results: büyük sonuç kümelerini parça parça almak için kullanılan control; tek istekte dönen nesne sayısını sunucu sınırlar.

Bir search'ü tanımlayan beş karar

Bir LDAP aramasında önce baseObject başlangıç nesnesini, scope incelenecek nesneleri belirler. Filter bu adayların hangilerinin eşleşeceğini; attributes ise eşleşen entry'lerden hangi alanların isteneceğini söyler. Okuma izinleri de sonucu süzer. Bu seçimleri birbirinden ayırmadan boş bir yanıtın nedenini anlayamayız.

Bu ayrım pratik bir sonuç doğurur: aynı dizinde aynı kullanıcı, farklı scope veya filtre ile çok farklı sonuç kümeleri alır. 'Bu veriye erişilebiliyor mu?' sorusu, kullanılan search parametreleri belirtilmeden eksik bir sorudur.

sizeLimit tüm arama için istenen entry sınırıdır; 0, istemcinin ek sınır koymadığını söyler. Sunucu yine kendi limitlerini uygulayabilir. Paged Results Control ilk SearchRequest'e eklenir. Sonraki sayfa sunucunun cookie'siyle, aynı arama parametreleri kullanılarak istenir. Sayfa boyutu ile toplam sonuç sınırı farklıdır: sayfalama izin vermez, yönetim limitlerini ortadan kaldırmaz.

İstenen attribute listesi bir sözleşmedir

attributes, eşleşen entry'den hangi alanların isteneceğini belirtir. Boş liste veya '*' tüm user attribute'larını ister. Operational attribute'lar ayrıca ismen istenir; '*' tek başına onları kapsamaz. Yalnız '1.1' hiçbir attribute istemez. Bu, eşleşen nesneleri silmez: SearchResultEntry'nin DN'i gelir ama attribute listesi boş olur. typesOnly TRUE ise istenen ve okunabilen attribute adları gelir, değerleri gelmez.

Önemli bir sınır: tüm user attribute'ları istense bile, erişim kontrolleri veya başka kısıtlar nedeniyle bazı attribute ve değerler sonuçta yer almayabilir (RFC 4511 §4.5.1.8). Yani 'istedim ama gelmedi' her zaman 'yok' demek değildir; 'bu bağlamda okumana izin verilmedi' de olabilir.

Yukarıdaki ağaçta People'ı seç: baseObject yalnız People; singleLevel Kayra, Deniz ve Teams; wholeSubtree bunlarla birlikte People ve Teams'in altındaki ResearchTeam'i kapsar. '(mail=*)' filtresinde mail alanı bulunmayan nesneler FALSE verir. Deniz.mail bu okuma bağlamında görünmüyorsa AD filtre için de onu yok sayar. Şemada tanınmayan bir attribute ise Undefined verebilir. FALSE ile Undefined farklı nedenlerdir; ikisi de eşleşme değildir.

Örnek istek: alan alan bir SearchRequest

Bu dersin artifact'i sentetik bir SearchRequest'i byte düzeyinde gösterir: baseObject 'DC=outreason,DC=example', scope wholeSubtree(2), derefAliases neverDerefAliases(0), sizeLimit 0 (istemci sınırı yok), timeLimit 30 saniye, typesOnly FALSE ve filter olarak equalityMatch (sAMAccountName=kayra). İstenen attribute listesi cn, mail ve memberOf'tur.

Kodlamada filter'ın equalityMatch [3] context tag'iyle (0xA3) taşındığını, içindeki AttributeValueAssertion'ın attributeDesc ve assertionValue OCTET STRING'lerinden oluştuğunu görürsünüz. Bu, filtre söz diziminin ('(sAMAccountName=kayra)') aslında yapılandırılmış bir ASN.1 ağacına karşılık geldiğini somutlaştırır.

Okumak ile kontrol etmek aynı hak değildir

Bir attribute'u LDAP ile okuyabilmek, ilgili nesnede onu değiştirebileceğiniz anlamına gelmez. Attribute okumada RIGHT_DS_READ_PROPERTY, yazmada çoğunlukla RIGHT_DS_WRITE_PROPERTY; bazı işlemlerde ise işleme özgü validated-write veya control-access hakları değerlendirilir. Bu hakların ACE'leri attribute/property-set ya da nesne kapsamıyla sınırlandırılabilir ([MS-ADTS] Access Checks, Validated Writes ve Property Set). Örneğin group membership'i okuyabilmek, `member` attribute'unu güncelleme yetkisi kanıtı değildir.

Bu ayrım savunma ve saldırı değerlendirmesinde kritik: geniş okunabilirlik 'keşif' verir ama tek başına 'değiştirebilme' vermez. Bir sonucu raporlarken 'okundu' ile 'yazılabilir/kontrol edilebilir' ayrı ayrı belirtilmelidir.

Arama sonucu gerçekten tamam mı?

İki SearchResultEntry gelmesi aramanın başarılı bittiğini söylemez. Son SearchResultDone, resultCode ile operation sonucunu bildirir. sizeLimitExceeded (4) veya timeLimitExceeded (3) ile biten bir aramada gelen entry’ler kullanılabilir gözlemlerdir, fakat istenen kümenin tamamı oldukları söylenmez. Success bile yalnız verilen base, scope, filter ve visibility sınırında yorumlanır.

Simple paged results kullanılıyorsa bir sayfanın Done success sonucu bütün aramanın sonu değildir. Dönen opaque cookie boş değilse devam gerekir; tamamlanmış dizinin son cookie’si boştur. Cookie’nin içinden nesne sayısı veya güven bilgisi çıkarmayız. Sayfalar arasında dizin değişirse bir entry tekrar gelebilir veya sonuç dışında kalabilir; son cookie’nin boş olması tek bir ana ait snapshot garantisi vermez. Karşılaştırmada limit, ilk sayfa ve değişen dataset durumlarını ayrı incele.

Durum ve veri akışı

  1. İstemci baseObject, scope, filter, istenen attribute listesi ve limitleri içeren bir SearchRequest oluşturur.
  2. Sunucu baseObject'i bulur; scope'a göre değerlendirilecek nesne kümesini belirler.
  3. Her aday nesne için filter üç değerli mantıkla (TRUE/FALSE/Undefined) değerlendirilir.
  4. TRUE eşleşen nesneler için istenen attribute'lar, erişim kontrolleri süzdükten sonra SearchResultEntry olarak döner.
  5. Paging kullanılıyorsa ilk istekte control bulunur; sonraki sayfa aynı arama ve sunucunun cookie'siyle istenir. Sayfa boyutu, aramanın toplam sizeLimit'ini veya erişim kontrollerini kaldırmaz.
  6. İstemci dönen alanları 'okundu' olarak işler; yazma/kontrol hakkı bu okumadan çıkarılamaz.

2. Exploitation / İstismar

Broken trust assumption

Kırılan varsayım şudur: Bir nesnenin attribute'larını LDAP ile okuyabiliyorsam, o nesne üzerinde anlamlı bir kontrol ya da değişiklik hakkım da vardır.

Technical prerequisites

  • Dizini okuyabilen bir bind bağlamı; çoğu ortamda Authenticated Users birçok attribute'u okuyabilir.
  • Geniş sonuç için uygun baseObject ve wholeSubtree scope; dar scope keşfi sınırlar.
  • Okunmak istenen attribute için gerekli effective read hakkı; confidential attribute söz konusuysa READ_PROPERTY yanında CONTROL_ACCESS da gerekir.
  • Bir write/control iddiası için, yapılmak istenen değişikliğe ve hedef attribute/nesneye uyan effective DACL ACE/right ayrıca doğrulanmalıdır.
  • Sonuçları sayfalı almak için sunucu Paged Results Control'ı desteklemeli ve ortam politikası isteğe izin vermelidir; bu kontrol yönetim limitlerini veya ACL'leri bypass etmez.

Exploitation mechanism / İstismar mekanizması

Geniş read hakkı, uygun baseObject, wholeSubtree scope ve seçilmiş filter ile çok sayıda nesneyi sıralamayı sağlayabilir: users, groups, memberOf ve service-related attribute'lar görünür. Paged Results Control büyük sonuçları cookie ile sayfalara böler; RFC 2696 bu kontrolü sunucunun sonuç döndürme hızını yönetmek için tanımlar, hakları veya sunucu politikası limitlerini aşmak için değil. Okuma yine attribute-level access checks'e tabidir. Bir grubun üyeliğini okumak, grubun member attribute'unu değiştirebilme hakkı değildir. Hedef değişikliği mümkün saymadan önce o işlem için geçerli effective right/ACE kanıtlanmalıdır.

Keşiften eyleme atlarken kanıt gerekir

LDAP okuması, saldırgana zengin bir harita verir; bu haritadan 'hangi hesap değiştirilebilir?' sorusuna geçmek ayrı bir kanıt ister. Değiştirilebilirlik iddiası, hedef nesnenin DACL'inde okuyan principal'a verilmiş yazma veya control-access ACE'sine dayanmalıdır.

Pratikte bu, 'okunabilir' bulgularını ayrı, 'yazılabilir/kontrol edilebilir' bulgularını ayrı listelemek demektir. İki listeyi karıştırmak, keşif verisini olduğundan güçlü gösterir ve yanlış öncelik doğurur.

Kapsam değişir; erişim hakkı değişmez

Sentetik ağaçta aynı okuma bağlamını koruyup People altında singleLevel ile wholeSubtree'yi karşılaştır. ResearchTeam ikinci aramada aday olur; bu fark bir izin artışı değil, parent ilişkilerinin kapsam içine girmesidir. İstenen attribute listesini büyütmek de okunamayan Deniz.mail alanını açmaz.

Bir değerlendirmede baseObject, scope, filter, istenen alanlar ve limitler kaydedilmelidir. “Dizini okudu” tek başına hangi nesnelerin ve hangi alanların görüldüğünü açıklamaz. Yazma veya kontrol hakkı için ayrı erişim kanıtı gerekir.

Bu örneğin risk sınırı

Eksik bir arama sonucunu bütün effective izin yollarının envanteri saymak hatalı etki iddiası üretir. Read başarısı yazma yetkisi de vermez.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • LDAP search'ün kendisi (base/scope/filter) varsayılan güvenlik denetiminde ayrı bir olay olarak kaydedilmez; okuma denetimi nesne SACL'ine ve Audit Directory Service Access alt kategorisine bağlıdır (4662).
  • 4662 yalnız denetlenen nesnede uygun SACL varsa üretilir ve erişilen class/attribute'u ObjectType/Properties GUID'leriyle gösterir; ancak LDAP sorgusunun filtresini veya scope'unu içermez.
  • Bu nedenle 'kim geniş bir enumeration yaptı?' sorusu tek başına 4662 ile yanıtlanamaz; okuma denetimi ne yapıldığını değil hangi nesneye dokunulduğunu söyler.
  • Uygulama görünürlüğü sınırlıdır: birçok LDAP okuması denetlenmeyen attribute'lar üzerinden geçtiği için hiç iz bırakmaz.

Events and relevant fields

  • 4662 Provider'ı Microsoft-Windows-Security-Auditing, kanalı Security, Version 0'dır (Microsoft, 4662 belgesi).
  • EventData'da SubjectUserSid, SubjectUserName, ObjectServer=DS, ObjectType (class bilgisi), ObjectName (erişilen nesnenin distinguished name'i), OperationType, AccessMask ve Properties alanları bulunur. Properties, erişim türünü ve ilgili class/property-set GUID'lerini içerebilir.
  • Properties içindeki property/property-set GUID'leri erişim kapsamını gösterebilir; property set bir ACE ile birden çok attribute için izin tanımlayabilir. 4662 sonucu yine LDAP query değil, denetlenen nesne erişimidir.
  • 4662, dönen sonuç kümesinin büyüklüğünü, sizeLimit'i veya paging davranışını raporlamaz.

Denetim 'ne okundu'yu değil 'neye dokunuldu'yu söyler

4662'nin gücü nesne/attribute düzeyinde erişimi kaydetmesidir; sınırı ise LDAP sorgusunun şeklini (base, scope, filter) taşımamasıdır. Bu yüzden 'geniş bir enumeration yapıldı mı?' sorusu, güvenlik olaylarıyla ancak dolaylı yanıtlanır: çok sayıda farklı nesneye kısa sürede erişim gibi desenler ipucu verir ama kesin değildir.

Doğru kurgu, hedefli SACL ile gürültüyü azaltmak ve mümkünse ağ/uygulama tarafı LDAP kayıtlarıyla desteklemektir. Okuma denetimini forest geneline yaymak, sinyali gürültüde boğar.

Değişiklik sonrası doğrulama

Sorgu parametreleri, entry sayısı, terminal resultCode, paging control ve cookie’nin boş olup olmadığını kaydet. Tek DC görünümünü forest genelindeki tüm nesnelerle veya sabit snapshot’la eşitleme.

Detection logic · XPath

*[System[EventID=4662] and EventData[Data[@Name='AccessMask']='0x10']]

Query assumptions

  • Security kanalında yalnız AccessMask metni tam olarak 0x10 olan 4662 kayıtlarını seçer. 0x10 Read Property, 0x10000 DELETE’tir; %%1537 okuma kodu olarak kullanılmaz.
  • Bu dar eşleşme birleşik maskeleri veya farklı metin biçimlerini kapsamaz. Daha geniş incelemede maskenin 0x10 biti sayısal olarak kontrol edilmelidir. Audit Directory Service Access ve işleme uyan SACL gerekir.
  • 4662 baseObject, scope veya filter taşımaz. Bu seçim geniş enumeration kanıtı değildir; gerçek Windows Event Log veya SIEM üzerinde çalıştırılmadı.

False positives

  • Yönetim araçları, dizin uygulamaları ve replikasyon rutin olarak denetlenen nesneleri okur ve 4662 üretir.
  • Attribute düzeyi SACL geniş tutulursa normal iş yükünde büyük hacim oluşur.
  • Tek 4662, sorgunun geniş bir keşif mi yoksa dar bir arama mı olduğunu ayırt etmez.
  • Denetlenmeyen attribute'lar üzerinden yapılan okuma hiç olay üretmez; olay yokluğu enumeration olmadığını göstermez.

Hardening

  • Okuma denetimini SACL ile yalnız yüksek değerli nesnelere ve hassas attribute'lara uygula; forest/domain geneli geniş okuma SACL'i yüksek hacim ve düşük sinyal üretir.
  • Gerçekten gizli attribute'ları confidential (searchFlags confidential biti) işaretleyerek yetkisiz okumayı ACE düzeyinde engelle; uygulama uyumluluğunu pilotla doğrula.
  • Sunucu tarafı sorgu sınırlarını (ör. MaxPageSize ve yönetim limitleri) ortam politikasına göre gözden geçir; tek sorguyla sınırsız sıralamayı zorlaştır.
  • Anonim ve aşırı geniş okuma haklarını azalt; varsayılan izinleri en az ayrıcalık ilkesiyle hizala.
  • Enumeration'ı yakalamak için güvenlik olayına ek olarak ağ/uygulama tarafı LDAP telemetrisini (mümkünse) değerlendir; tek kaynağa güvenme.

Örnekler üzerinde oku / Read the examples

ÖRNEĞİ BİRLİKTE OKUYALIM

EĞİTİM İÇİN HAZIRLANDI

Bu SearchRequest nerede arıyor, ne istiyor?

LDAP SearchRequest · kapsam, filtre ve alan seçimi (sentetik BER örneği)

01
baseObjectDC=outreason,DC=example

Aramanın başlangıç DN’i. Scope bu nesnenin kendisinin mi, çocuklarının mı, tüm alt ağacının mı inceleneceğini belirler.

02
scopewholeSubtree (2)

Base dahil alt ağaç. Bu istekte sizeLimit=0, timeLimit=30, typesOnly=FALSE. 0 istemci sınırı yok demektir; sunucu limitleri kalkmaz.

03
filter(sAMAccountName=kayra)

Context [3] equalityMatch: attributeDesc ve assertionValue iki OCTET STRING alanıdır. Bu filtre eşleşen entry’leri seçer; dönecek alanları belirlemez.

04
attributescn, mail, memberOf

İstenen alanlar. Eşleşen entry’den yalnız seçilen ve okunabilen değerler döner; dönmeyen alanın yokluğu yalnız yanıttan kanıtlanmaz.

Buradan çıkaracağın fikir

Base ve scope adayları; filter eşleşen entry’leri; attributes istenen alanları belirler. Bunlar ayrı kararlardır.

Alan eşleştirmesi yalnız değişmemiş sentetik örnek için geçerli. LDAP sınırlı BER kullanır; bu definite-length örneği strict DER parser da kabul eder. Schema, sunucu veya erişim kontrolü çalıştırılmaz.

Bu örneğin kapsamı

RFC 4511 §4.5.1 SearchRequest biçiminde sentetik bir sorgu. Beklenti: tek kök SEQUENCE (LDAPMessage), toplam 94 bayt ve artık bayt yok. messageID=1; protocolOp [APPLICATION 3] (0x63) SearchRequest. Alanlar: baseObject='DC=outreason,DC=example', scope=ENUMERATED 2 (wholeSubtree), derefAliases=ENUMERATED 0 (neverDerefAliases), sizeLimit=0 (istemcinin bu istekte ek boyut sınırı koymadığını belirtir; sunucu politikası yine sınırlayabilir), timeLimit=30, typesOnly=BOOLEAN FALSE, filter=[3] equalityMatch (attributeDesc=sAMAccountName, assertionValue=kayra), attributes={cn, mail, memberOf}. LDAP wire kodlaması RFC 4511'in sınırlı BER biçimidir. Bu örneğin definite-length TLV'leri strict DER parser tarafından da kabul edilir; parser tam BER veya LDAP schema doğrulaması yapmaz; LDAP semantiğini, filtre değerlendirmesini veya erişim kararını doğrulamaz. Değerler outreason.example üzerinde sentetiktir.

Ham kaydı aç · ASN1-HEX
30 5c 02 01 01 63 57 04 17 44 43 3d 6f 75 74 72
65 61 73 6f 6e 2c 44 43 3d 65 78 61 6d 70 6c 65
0a 01 02 0a 01 00 02 01 00 02 01 1e 01 01 00 a3
17 04 0e 73 41 4d 41 63 63 6f 75 6e 74 4e 61 6d
65 04 05 6b 61 79 72 61 30 14 04 02 63 6e 04 04
6d 61 69 6c 04 08 6d 65 6d 62 65 72 4f 66

ÖRNEĞİ BİRLİKTE OKUYALIM

EĞİTİM İÇİN HAZIRLANDI

Bu gözlem bize neyi söylüyor?

Karşılaştırmanın gözlem tablosu · sentetik

01
page1/cookieopaque-1

Boş olmayan cookie, sayfalamanın devam ettiğini gösterir; ilk sayfadaki success bütün dizini bitirmiş olmaz.

02
limitedVariant/resultsizeLimitExceeded

sizeLimitExceeded ile biten aramada gelen kayıtlar kısmi olabilir. Dönen entry sayısını tamlık kanıtı sayma.

Buradan çıkaracağın fikir

Aynı belirtiyi farklı nedenler üretebilir. Bu tabloyu dersteki karar sınırlarıyla birlikte karşılaştır.

Bu JSON bir eğitim kaydıdır; Windows çıktısı veya çalıştırılabilir istek değildir.

Bu örneğin kapsamı

Bu eğitim tablosu native Windows çıktısı değildir. Değerler karşılaştırmanın varsayımlarıdır; üstteki kontroller hangi sonucun henüz bilinmediğini gösterir.

Ham kaydı aç · MODEL-JSON
{
  "kind": "teaching-record",
  "synthetic": true,
  "scenario": "E08",
  "page1": {
    "entries": [
      "toy-A",
      "toy-B"
    ],
    "result": "success",
    "cookie": "opaque-1"
  },
  "page2": {
    "entries": [
      "toy-C"
    ],
    "result": "success",
    "cookie": ""
  },
  "limitedVariant": {
    "entries": [
      "toy-A"
    ],
    "result": "sizeLimitExceeded"
  }
}

İki yanlış kanı / Two reality checks

Sanılan: Tüm user attribute'larını istediğim (boş liste veya '*') bir search bana o nesnenin her alanını verir.
Gerçekte: '*' operational attribute'ları getirmez (onlar ismen istenmelidir) ve erişim kontrolleri bazı attribute/değerleri sonuçtan tamamen süzebilir. Dönmeyen bir alan 'yok' değil, 'bu bağlamda okunamadı' da olabilir (RFC 4511 §4.5.1.8).
Sanılan: Bir hesabın veya grubun attribute'larını LDAP ile okuyabiliyorsam, onu değiştirebilirim de.
Gerçekte: Okuma ve yazma farklı ACE'lere dayanır. memberOf'u veya bir attribute'u görmek, ilgili nesnede write ya da control-access hakkı olmadan değişiklik yapmaya yetmez; kontrol iddiası ayrıca DACL'den doğrulanmalıdır.

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

Base OU=People; scope singleLevel. Tunahan People’ın doğrudan altında, diğer hesap içteki Teams OU’sunun altında. Hangi aday scope’a girer?

Bir cevap seç

Bir ipucu

SingleLevel yalnız doğrudan children’ı kapsar; filter sonucu ayrı.

Cevabın gerekçesini oku

Tunahan adaydır; nested Teams hesabı bu scope’a girmez.

Aday olmak filter eşleşmesini ve attribute okuma hakkını otomatik vermez.

2 / 3 · KANITI OKU

Bu sayfa bütün aramanın bittiğini kanıtlıyor mu?

Sentetik SearchResultDone/paging-control özeti.
SearchResultDone resultCode
success (0)
Paged-results response cookie / Cookie
Non-empty opaque value
Received entries / Alınan entry
2
Bir cevap seç

Bir ipucu

Bir sayfanın Done sonucu ile son paging cookie farklı.

Cevabın gerekçesini oku

Hayır; non-empty cookie sonraki sayfa olduğunu gösterir.

Bir sayfa success olması tüm kümenin tamamlandığını veya tek-an snapshot’ını kanıtlamaz.

3 / 3 · KENDİN ANLAT

Tunahan’ın memberOf alanı okunabiliyor. Grubun membership’ini değiştirme hakkı neden bundan çıkmaz?

Bir ipucu

Okunan alan, değiştirilen hedef ve requested right aynı mı?

Cevabın gerekçesini oku

LDAP sonucu belirli context’te okuma kanıtıdır. Membership değişikliği ilgili hedef group/member operation için ayrı yetki gerektirir; görünürlük kontrol hakkının yerine geçmez.

  • Read ve write/control haklarını ayırdım.
  • Hedef nesne/attribute ve etkin caller scope’unu belirttim.

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\tunahanstudent0305 · 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