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

İki DC neden farklı? Replication metadata, çatışma ve yakınsama

İki DC’nin farklı değer göstermesi her zaman arıza değildir. Değişikliğin version ve originating stamp bilgisiyle local USN’yi ayır; gecikme ile çatışmanın nasıl farklı sonuçlar verdiğini gör.

1. Core Mechanism / Temel mekanizma

10.02 değişikliğin yayılmasını anlattı. Burada aynı objectGUID’ye sahip nesnenin tek değerli department alanını iki replica’da karşılaştırıyoruz. SYSVOL, linked-value ve naming conflict bu modelin farklı kuralları olan komşu konularıdır.

Arabirimler ve belirtimler

  • dwVersion: originating değişiklikte artar; replication tek başına yeni version üretmez.
  • ftimeLastOriginatingChange: son originating değişikliğin zamanı; varış zamanı değildir.
  • uuidLastOriginatingDsaInvocationID: son değişikliği üreten database instance’ı; kullanıcı kimliği değildir.
  • usnOriginatingChange kaynak instance’ın; usnLocalChange gözlem yapılan replica’nın numarasıdır.

Bir değer, bir değişiklik damgası

department=Finance değişikliği DC-A’da yapıldı. Attribute version artar; origin zamanı ve invocation ID kaydedilir. DC-B bu değişikliği aldığında origin bilgilerini korur. Kendi database’ine uyguladığı işlem için local USN farklıdır.

Tablodaki origin-A/B yalnız eğitim etiketleridir. Native alan eşlemesini yukarıda görebilirsin; tablo gerçek API dump’ı değildir. Metadata değişikliği üreten DC instance’ını gösterir; onu başlatan kişi için ayrı audit geçmişi gerekir.

9000 mı yeni, 14000 mi?

DC-A localUSN=9000 ve DC-B localUSN=14000 karşılaştırmasını küresel zaman çizgisi gibi kullanamazsın. Numaralar farklı database instance’larının yerel sıralamasına aittir. Aynı değişiklik iki DC’de farklı local USN alabilir.

Önce objectGUID, attribute ve naming context’in gerçekten aynı olduğundan emin ol. Sonra originating metadata’yı karşılaştır. Farklı nesne veya non-replicated attribute için yakınsama beklemek, yanlış soruyu çözmeye çalışmaktır.

Çatışmada yalnız saate bakılmaz

Örnekte A’daki version=4, originTime=09:00; B’deki version=3, originTime=09:05. Daha yüksek version önce karşılaştırılır; bu nedenle burada Finance seçilir. “En son görünen saat kazanır” kuralı bu sonucu yanlış tahmin eder.

Aynı version’da originating zaman karşılaştırılır; o da eşitse originating DSA için deterministic tie-break vardır. Bu son karşılaştırmanın UUID sıralamasını eğitim etiketleriyle taklit etmiyoruz. Eşit version/zaman örneği modelde açıklanması gereken bir sınır olarak kalır.

Yakınsama ile uygulama durumunu ayır

Yeni yazımlar durursa ve ilgili değişiklikler replica’lara başarıyla taşınırsa bu tek attribute örneği ortak değere yakınsar. Aynı anda bütün forest’ın tek snapshot’ı oluşmuş sayılmaz. Multi-object okuma, aralarında yeni değişiklikler olan nesneleri birlikte gösterebilir.

Directory değeri eşitlendiğinde eski token, Kerberos ticket veya açık SMB session yeniden yaratılmaz. 08.01’deki context yaşı ile buradaki replica yaşı farklıdır. Kapanışta hem directory görünümü hem yeni kaynak davranışı doğrulanmalıdır.

Her attribute replike edilmez

department eşitlenmişken badPwdCount farklı olabilir. badPwdCount domain içindeki her DC’de ayrı tutulur ve replike edilmez. Bu sayaç için iki DC’nin farklı değer göstermesi, department metadata’sıyla aynı yakınsama beklentisine tabi değildir.

Durum ve veri akışı

  1. Aynı objectGUID, attribute ve naming context için iki snapshot al.
  2. DC-A’daki originating write version ve origin stamp üretir.
  3. Replication gecikirse DC-B önceki değeri göstermeyi sürdürebilir.
  4. Çatışmada version, sonra originating time karşılaştırılır; eşitlikte ayrı tie-break gerekir.
  5. Kazanan değişiklik diğer DC’ye uygulanırken origin bilgisi korunur, local USN değişir.
  6. Yakınsama yalnız ilgili directory durumunu eşitler; kişi audit’i ve session ayrı kalır.

2. Exploitation / İstismar

Broken trust assumption

Tek DC’nin görünümünü forest gerçeği, en büyük local USN’yi de en yeni değişiklik sanmak.

Technical prerequisites

  • Etki iddiası için ilgili target, effective hak ve observed context belirlenmiş olmalıdır.

Exploitation mechanism / İstismar mekanizması

Yanlış karşılaştırma, meşru değişikliği geri alma veya yanlış replica’ya güvenme kararına yol açabilir. Metadata origin bilgisini taşır; bunu kullanıcıya ya da kötü niyete çevirmek ayrı audit kanıtı olmadan mümkün değildir.

Etkili değer ile actor aynı soru değildir

Bir yazımın kazandığını görmek onun onaylı olduğunu söylemez. Tersine gecikmiş bir replica görmek de kasıtlı engelleme kanıtı değildir. İzin ve change-owner kayıtlarını outcome’dan ayrı değerlendir.

Kuralı yanlış veri türüne genişletme

Bu örnek tek değerli department içindir. Group membership linked-value metadata’sı veya aynı adla nesne oluşturma çatışması için aynı tabloyu kopyalamak doğru değildir.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.

Events and relevant fields

  • Olay kayıtları yalnız uygun üretim/toplama koşullarında kendi producer’ının kararını gösterir; bütün erişim zincirini kanıtlamaz.

Kanıtın kapsamını koru

ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.

Üretim ve toplama kapsamını bilmeden eksik olayı negatif kanıt sayma. Yeni davranışı ilgili owner’ın gözlemiyle doğrula.

Detection logic · XPath

*[System[(EventID=5136)]]

Query assumptions

  • Bu seçim yalnız uygun Windows Security log’larındaki aday olayları seçer. Dersin JSON gözlem tablosu Windows event değildir.
  • ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.

False positives

  • Meşru değişiklikler, cache/context kullanımı veya geçici bağlantı sorunu aynı belirtiyi üretebilir; bu seçim saldırı kararı vermez.

Hardening

  • Replication bağımlılıklarını, partner erişimini ve saat sağlığını aynı olayın farklı koşulları olarak kontrol et.
  • Tek replica ile kapanış yapma; ilgili NC ve nesnenin karşılıklı görünümünü doğrula.
  • Değişiklik onayı ile audit kaynağını uzlaştır; metadata’dan kişi adı üretme.

Örnekler üzerinde oku / Read the examples

ÖRNEĞİ BİRLİKTE OKUYALIM

EĞİTİM İÇİN HAZIRLANDI

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

Senaryonun gözlem tablosu · sentetik JSON

01
DC-A/version4

A’daki version 4, B’de 3. Bu çatışmada önce version karşılaştırılır; B’nin saatinin daha geç olması yeterli değildir.

02
DC-B/localUSN14000

14000 yalnız DC-B’nin yerel sırasıdır. DC-A’daki 9000 ile karşılaştırarak hangi değişikliğin kazanacağını bulamazsın.

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 tablo eğitim için hazırlanmıştır; Windows Event, API veya gerçek sistem çıktısı değildir. Native alanlarla ilişkisi ve çıkarım sınırı yukarıdaki derste açıklanır.

Ham kaydı aç · MODEL-JSON
{
  "kind": "teaching-record",
  "synthetic": true,
  "scenario": "N02",
  "attribute": "department",
  "objectIdentity": "toy-17",
  "DC-A": {
    "value": "Finance",
    "version": 4,
    "originTime": "2026-10-01T09:00:00Z",
    "originInvocationId": "origin-A",
    "originUSN": 80,
    "localUSN": 9000
  },
  "DC-B": {
    "value": "Ops",
    "version": 3,
    "originTime": "2026-10-01T09:05:00Z",
    "originInvocationId": "origin-B",
    "originUSN": 120,
    "localUSN": 14000
  }
}

İki yanlış kanı / Two reality checks

Sanılan: Local USN büyükse değer daha yenidir.
Gerçekte: Local USN yalnız kendi database instance’ında sıralama sağlar. Replica’lar arasında origin stamp karşılaştırılır.
Sanılan: DC’ler eşitlendi; eski session da günceldir.
Gerçekte: Directory replication token, ticket ve uygulama session’ını yeniden üretmez. Yeni context davranışı ayrı doğrulanı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

DC01 local USN 9000, DC02 local USN 14000. Bu iki sayı neyi kanıtlar?

Bir cevap seç

Bir ipucu

Numaraların ait olduğu database instance’larını düşün.

Cevabın gerekçesini oku

Her database’in yerel sıralamasını; küresel yenilik sırasını değil.

Aynı değişiklik replica’larda farklı local USN alabilir.

2 / 3 · KANITI OKU

Bu tek değerli department çatışmasında hangi değer önce gelir?

Sentetik replication metadata karşılaştırması; DC bağlamı etiketle belirtilmiştir.
DC01 department
Finance
DC01 dwVersion
4
DC01 ftimeLastOriginatingChange
2026-10-08T09:00:00Z
DC02 department
Sales
DC02 dwVersion
3
DC02 ftimeLastOriginatingChange
2026-10-08T09:05:00Z
Bir cevap seç

Bir ipucu

Önce version, eşitse originating time.

Cevabın gerekçesini oku

Finance; version 4, version 3’ten önce karşılaştırılır.

Daha geç saat, daha düşük version’ı bu karşılaştırmada kazandırmaz.

3 / 3 · KENDİN ANLAT

DC01 ve DC02 yakınsadığında Tunahan’ın açık WS01 session’ı neden otomatik yenilenmiş sayılmaz?

Bir ipucu

Directory kopyası ile oluşturulmuş token/ticket/session’ı ayır.

Cevabın gerekçesini oku

Replication ilgili directory değerini eşitler; daha önce yaratılmış token, ticket ve SMB session’ı yeniden üretmez. Yeni context ve FS01 davranışı ayrıca doğrulanmalıdır.

  • Replication’ın directory durumunu eşitlediğini belirttim.
  • Eski context’in ayrı yaşa sahip olduğunu belirttim.

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

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

Kaynaklar / Sources