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

GPO neden uygulanmadı? Resultant policy, yenileme, sürüm ve kanıt okuma.

Bir GPO'nun hedefte görünmemesi, listede görünmesi veya ayarının beklenen sonucu vermemesi aynı arıza değildir. Bu ders, önce kapsamı, sonra GPC/GPT sürüm ve erişim kanıtını, en son client-side extension işlemesini ayırır. Resultant policy raporu sonuç listesidir; yenileme denemesi, dağıtımın ve her ayarın başarıyla uygulandığının tek başına kanıtı değildir.

1. Core Mechanism / Temel mekanizma

Group Policy teşhisinde üç soru birbirinden ayrılır: hedef GPO için kapsamda mı, istemci GPO'nun AD tarafındaki Group Policy Container (GPC) ile SYSVOL içindeki Group Policy Template (GPT) kopyasını okuyup aynı sürümde mi görüyor, yoksa seçilen ayarı ilgili client-side extension (CSE) işlerken mi hata alıyor? Bu ders bu kanıt zinciriyle sınırlıdır; link sırası ve loopback 09.02'de, düzenleme/link izinleri 09.03'te anlatılır.

Arabirimler ve belirtimler

  • GPC, Active Directory'de GPO kimliği ve özelliklerini; GPT ise SYSVOL'da policy dosyalarını taşır. Bir GPO iki depodan oluşur; yalnız birini kontrol etmek dağıtım kanıtı değildir.
  • Kapsam kararı OU/link, security filtering, WMI filter, GPO ve Computer/User Configuration durumuna bağlıdır. Bir GPO'nun uygulanabilir listede olmaması ile CSE hatası farklı dallardır.
  • Group Policy istemcisi arka planda yenilenir; gpupdate yalnız istemcinin işleme isteğini tetikler. DC/SYSVOL replikasyonunun yakınsadığını veya bir CSE'nin ayarı uyguladığını garanti etmez.
  • Resultant Set of Policy ve gpresult, istemcinin değerlendirdiği sonuç için kanıttır. Ayrı bir ayarın işlenmesi, hata kodu veya reboot/logoff gereksinimi için CSE ve ilgili günlük kanıtı gerekir.

Önce sonucu sınıflandır

“GPO uygulanmadı” ile başlanmaz; önce hedefin GPO'nun kapsamına girip girmediği belirlenir. Hedef OU'da olmayabilir, link devre dışı olabilir, security veya WMI filter geçmeyebilir ya da doğru Computer/User yarısı kapalı olabilir. Bu dallardan biri doğruysa yenileme veya dosya erişimi aramak yanlış katmanda teşhistir.

Kapsama giren GPO için ikinci soru dağıtımdır: istemcinin kullandığı DC'de GPC okunabiliyor mu, karşılık gelen GPT SYSVOL üzerinden erişilebilir mi ve iki taraftaki sürüm mantıklı mı? GPC/GPT ayrımı önemlidir; AD replikasyonu ile SYSVOL replikasyonu ayrı gözlem yüzeyleridir. Aynı GPO adı tek başına iki kopyanın güncel olduğunu kanıtlamaz.

Sürüm bir eşleştirme kanıtıdır

GPO düzenlendiğinde istemci yalnız başlığı değil, değişiklik bilgisini ve ilgili policy tarafını değerlendirir. Bu nedenle vaka kaydında GPO GUID'i, hedef, kullanılan DC, GPC/GPT sürüm gözlemi, son başarılı işleme zamanı ve beklenen ayar ayrı alanlar olmalıdır. “SYSVOL var” veya “AD'de GPO var” gibi tek bir gözlem, sürüm uyumunun yerine geçmez.

Bir sürüm farkı görüldüğünde hemen tek bir kök neden ilan edilmez. İstemci farklı bir DC'ye yönelmiş olabilir, AD veya SYSVOL kopyası henüz yakınsamamış olabilir ya da erişim/ağ sorunu GPT'nin okunmasını engelliyor olabilir. Kanıt, hangi DC ve hangi kopya görüldüğünü zamanla bağlamalıdır.

GPO version’ının user ve computer kısımları ayrıdır: üst16 bit user, alt16 bit computer version’ını taşır. Bu Folder Redirection karşılaştırması GPC ve GPT’nin user kısmıyla ilgilidir. Yalnız computer kısmındaki artış yeni user ayarını göstermez; iki version kısmı da CSE veya local ayar başarısı kanıtı değildir.

Refresh ile işleme sonucunu ayır

Arka plan refresh ya da gpupdate, istemciyi politika işleme döngüsüne sokar; bir dağıtım onarım komutu değildir. İstemci kapsamda olmayan bir GPO'yu refresh sonrasında da uygulamaz. Benzer biçimde, GPC/GPT erişimindeki veya replikasyondaki arıza sürüyorsa ek refresh yalnız aynı koşulu yeniden dener.

GPO raporda listelenebilir ama ayar hedef durumda olmayabilir. Preferences için item-level targeting ve item action, policies için ilgili CSE'nin davranışı, ayrıca restart veya logoff gereksinimi sonucu değiştirir. Bu yüzden resultant listesi, GroupPolicy günlükleri ve ayarın hedefteki doğrulaması üç farklı kanıt türüdür.

Seçilmiş GPO henüz işlenmemiş olabilir

Aynı kullanıcı, aynı GPO ve eşleşen GPC/GPT sürümlerini sabit tutalım. Değişen yalnız processing zamanı olsun. Folder Redirection, normal background refresh’te işlenmez; user logon sırasında foreground processing gerektirir. GPO’nun kapsamda olması ve dosyalarının erişilebilirliği, bu extension’ın background’da uygulanmasını sağlamaz.

Foreground’a geçince yalnız “bu aşamada işlenebilir” sonucuna ulaşırız. Delivery koşulu eksikse veya CSE başarısızsa ayarın uygulandığını söyleyemeyiz. Synchronous/asynchronous davranışı, extension ve ilgili policy’ye göre değerlendirilir; bütün extension’ları aynı kabul etmeyiz. Karşılaştırmada foreground seç; ardından delivery failure seç. Scope ve version aynı kalırken uygulama kanıtının neden değiştiğini açıkla.

Durum ve veri akışı

  1. Önce User-A için scope ve filtering sonucunu oku. Kapsam dışı GPO’yu refresh uygulayamaz.
  2. Aday GPO’nun GUID’ini ve istemcinin baktığı DC-B’yi sabitle; farklı kopyaları aynı kayıt sanma.
  3. GPC ile GPT user version’larını ayrı oku. Bu Folder Redirection örneği user policy yarısını karşılaştırır.
  4. Version farkı delivery araştırmasına işaret eder; tek başına CSE failure değildir. Eşleşme de ayarın uygulandığını kanıtlamaz.
  5. Background ile user-logon foreground’u karşılaştır. Folder Redirection foreground ister; uygun aşama yalnız bir önkoşuldur.
  6. CSE işleme kanıtını oku. Gözlenmemiş sonucu başarı veya failure diye doldurma.
  7. Configured ayar ile gözlenen local sonucu karşılaştır. Refresh, scope/delivery onarımı veya ayar sonucu kanıtı değildir.

2. Exploitation / İstismar

Broken trust assumption

Merkezi bir GPO'nun hedefe ulaştığı ve ayarın hedefte etkin olduğu varsayımı; GPC ve GPT'nin aynı DC görünümünde erişilebilir ve güncel kabul edilmesidir.

Technical prerequisites

  • Hedef bilgisayar veya kullanıcı ilgili GPO'nun kapsamına girer; link, filtering ve configuration yarısı beklenen biçimdedir.
  • İstemci, GPO için kullandığı DC'ye ve GPT'nin SYSVOL yoluna erişebilir; aradaki AD/SYSVOL replikasyon görünümü yakınsamış veya ölçülmüştür.
  • İlgili CSE ve ayarın kendi önkoşulları (örneğin logoff/restart veya item-level targeting) ayrıca sağlanır.

Exploitation mechanism / İstismar mekanizması

Bu varsayımlardan birini sessizce doğru kabul eden yönetim süreci iki yönde risk yaratır: beklenen koruma uygulanmamışken uygulanmış sanılabilir veya geçici replikasyon/erişim sorununda gereksiz geniş kapsamlı değişiklik yapılabilir. Güvenlik açısından kritik olan, GPO adına değil hedefte doğrulanmış ayara ve onu taşıyan kanıt zincirine güvenmektir.

Koruma adı ile etkin koruma aynı değildir

Bir hardening GPO'sunun GPMC'de görünmesi, hedefte korumanın etkin olduğu anlamına gelmez. Kapsam dışı hedef, eski GPT kopyası veya CSE'nin atladığı item aynı adlı GPO'nun farklı fiilî sonuç üretmesine yol açabilir. Bu boşlukta karar verici yalnız merkezi tanıma bakarsa gerçek attack surface'i olduğundan küçük görür.

Bu ders bir bypass tarifi değildir. Savunma açısından çıkarım şudur: kritik ayarlarda GPO kimliğini, hedef popülasyonunu ve hedefteki fiilî ayarı birlikte doğrulamak gerekir. Tek bir “başarılı refresh” ifadesi üç kanıtın yerini tutmaz.

Kısmi yakınsama yanlış müdahaleye götürür

GPC/GPT veya farklı DC görünümleri arasında fark görüldüğünde tüm GPO'yu silmek, linki genişletmek ya da filtreyi kaldırmak güvenli ilk hamle değildir. Bu işlemler arızayı maskeleyebilir ve daha geniş bir hedef kümesine istenmeyen ayar dağıtabilir.

Daha dar yaklaşım, kullanılan DC'yi ve zaman damgasını korumak; AD ile SYSVOL gözlemlerini ayırmak; sonra CSE hatasını ayrı kanıtla incelemektir. Böylece bir dağıtım problemi yetkilendirme veya politika tasarımı problemi diye yanlış etiketlenmez.

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

Bir GPO’nun seçildiğini korumanın uygulandığına eşitlemek, saldırı olmasa da koruma boşluğu yaratabilir. Bu belirtiyi tek başına malicious GPO olarak etiketleme.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • Vaka kaydında GPO display name yerine GUID, hedef kullanıcı/bilgisayar, OU yolu, kullanılan DC, GPC ve GPT erişim/sürüm gözlemi, son işleme zamanı ve beklenen ayar tutulmalıdır.
  • Resultant policy raporu kapsam/değerlendirme kanıtıdır; GroupPolicy Operational günlüğü işleme yolunu, ayarın hedefteki durumu ise fiilî sonucu gösterir. Üçü aynı tür kanıt değildir.
  • AD replikasyonu ile SYSVOL replikasyonunu tek bir “GPO replike oldu” cümlesinde birleştirme. Birden fazla DC varsa gözlemi DC adı ve zamanıyla ilişkilendir.

Events and relevant fields

  • Group Policy olayları CSE işleme ve hata bağlamı sağlayabilir; tek bir Event ID, GPO kapsamını ve ayarın hedefteki sonucunu tek başına kanıtlamaz.
  • gpresult/RSOP çıktısında listelenen applied veya denied GPO, kapsam kararını araştırmak için başlangıç kanıtıdır; GPT dosya sürümünün ya da ayar sonucunun kopyası değildir.
  • SYSVOL erişim hatası incelenirken dosya yolu, kullanılan DC, ağ/kimlik bağlamı ve aynı GPO'nun AD tarafındaki GPC gözlemi birlikte tutulmalıdır.

Triage sırası bir veri modeli olsun

Blue ekip için iyi bir kayıt “policy bozuk” değildir. Hedef, GPO GUID'i, scope sonucu, kullanılan DC, GPC/GPT gözlemi, sonuç raporu, CSE olayı ve hedefte ölçülen ayar ayrı sütunlardır. Bu yapı farklı ekiplerin aynı kelimeyle farklı katmanı kastetmesini engeller.

Özellikle sürüm iddiası zaman bağlamı olmadan saklanmamalıdır. Aynı anda farklı DC'lerden alınmış iki gözlem, replikasyon ya da locator farkını açıklayabilir; bunları tek istemci denemesinin sonucu gibi karşılaştırmak yanlış kök neden üretir.

Kanıt zincirini kapat

Kritik kontrol için minimum zincir şöyledir: hedef kapsamda mı, istemci doğru ve erişilebilir GPC/GPT çiftini mi gördü, ilgili CSE işlemi ne söyledi, hedefte ayar gerçekten ne durumda? Her halka farklı bir soruyu yanıtlar.

Bu zincir başarısız olduğunda olaydan doğrudan saldırı veya yapılandırma hatası sonucu çıkarılmaz. Önce eksik kanıt tanımlanır; sonra en dar doğrulama yapılır. Böylece hem yanlış pozitif müdahale hem de uygulanmamış korumayı başarı sanma riski azalır.

Değişiklik sonrası doğrulama

Scope, GPC/GPT, processing zamanı, extension sonucu ve hedefteki gerçek ayarı sırayla doğrula. Background ve foreground gözlemlerini aynı test sonucu gibi toplama.

Detection logic · XPath

*[System[Provider[@Name='Microsoft-Windows-GroupPolicy']]]

Query assumptions

  • Bu XPath yalnız GroupPolicy sağlayıcısına ait olayları seçmek için örnek bir başlangıçtır; belirli Event ID veya EventData alan şeması iddia etmez.
  • Olayların kanalı, sürümü ve CSE bağlamı Windows sürümüne ve işlenen policy türüne göre değişebilir; olayı gpresult ve GPC/GPT gözlemiyle ilişkilendirmek gerekir.
  • Sorgu canlı bir Windows ortamında çalıştırılmadı; ders artifact'i gerçek Windows logu değildir.

False positives

  • Rutin background refresh, policy değişikliği veya hedefin normal kapsam değişimi GroupPolicy olayları üretebilir; tek başına arıza değildir.
  • Bir GPO'nun denied görünmesi saldırı göstergesi değildir; security filtering veya WMI filter tasarım gereği böyle bir sonuç üretebilir.
  • Negatif örnek: GPO listede görünür ve olay hatasızdır, fakat ayarın kendi restart/logoff veya preference targeting koşulu sağlanmamıştır; bu sorgu fiilî sonucu söylemez.

Hardening

  • Kritik GPO'lar için hedef popülasyonu, GPO GUID'ini, beklenen ayarı ve hedef doğrulama yöntemini değişiklik kaydına ekle; display name tek kimlik değildir.
  • AD ve SYSVOL sağlık/erişim kontrollerini ayrı sinyal olarak izle; DC adı ve zaman bağlamı olmayan “replikasyon tamam” ifadesini kabul etme.
  • Değişiklik sonrasında örnek hedeflerde resultant policy ile hedefteki ayarı ayrı doğrula; gereken restart/logoff ve CSE koşullarını yayımla.
  • Filter veya link genişletmeden önce denied/failed kararının hangi katmanda verildiğini kanıtla; geniş kapsamlı düzeltmelerin blast radius'unu sınırlı tut.
  • GroupPolicy günlükleri için uygun saklama ve merkezileştirme kararı ver; yüksek hacimli rutin refresh kayıtlarını olay bağlamı olmadan alarm olarak kullanma.

Ö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ı?

GPT/SYSVOL erişim sınırı (sentetik SDDL)

01
Authenticated UsersA · Generic Read

İ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.

02
Built-in AdministratorsA · 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.

03
Nesnenin sahibiLocal System

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

04
Primary groupLocal System

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ı

Bu sentetik descriptor, GPO teşhisindeki GPT erişim dalını okumak için dar bir modeldir: Authenticated Users GR (Generic Read), Built-in Administrators GA (Generic All) alır. Gerçek bir SYSVOL ACL'sinden alınmamıştır ve gerçek bir GPO'nun güvenlik tanımlayıcısı olduğu iddia edilmez. Artifact'in kanıt rolü, “GPC görünür” ile “istemci GPT dosyalarını okuyabilir” sorularının ayrı olmasıdır; gerçek olay şeması veya fiilî erişim sonucu yerine geçmez.

Ham kaydı aç · SDDL
O:SYG:SYD:(A;;GR;;;AU)(A;;GA;;;BA)

Ö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
clientA/phaseuser-logon foreground

Client A, Folder Redirection için user-logon foreground aşamasında; scope, user version ve delivery varsayımları B ile aynı.

02
clientA/extensionProcessingEligibletrue

true yalnız bu aşamada Folder Redirection’ın işlenmeye uygun olduğunu gösterir; CSE completion değildir.

03
clientB/extensionProcessingEligiblefalse

Client B background refresh’tedir: false, aynı extension’ın bu aşamada işlenmediğini gösterir. Scope ve version değişmedi.

04
settingEffectNot inferred solely from processing eligibility

Her iki örnekte de gerçek ayar etkisi eligibility’den çıkarılmaz. GPC/GPT raw version 524291, user=8/computer=3 olarak ayrı gösterilir; karşılaştırma user kısmıdır.

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. Tam version 524291 = (8 × 65536) + 3: üst16 bit user=8, alt16 bit computer=3. DC-B ve T0, iki kopya için aynı sentetik gözlem bağlamıdır. Folder Redirection karşılaştırması user kısmını kullanır; veri Windows ölçümü değildir.

Ham kaydı aç · MODEL-JSON
{
  "kind": "teaching-record",
  "synthetic": true,
  "scenario": "E04",
  "GPO": "toy-GPO-9",
  "extension": "Folder Redirection",
  "scope": "allowed",
  "versionMatched": true,
  "clientA": {
    "phase": "user-logon foreground",
    "extensionProcessingEligible": true
  },
  "clientB": {
    "phase": "background refresh",
    "extensionProcessingEligible": false
  },
  "settingEffect": "Not inferred solely from processing eligibility",
  "versionScope": "user policy",
  "GPC": {
    "rawVersion": 524291,
    "userVersion": 8,
    "computerVersion": 3,
    "DC": "DC-B",
    "observedAt": "T0 / synthetic observation"
  },
  "GPT": {
    "rawVersion": 524291,
    "userVersion": 8,
    "computerVersion": 3,
    "DC": "DC-B",
    "observedAt": "T0 / synthetic observation"
  }
}

İki yanlış kanı / Two reality checks

Sanılan: gpupdate çalıştıysa GPO dağıtımı ve bütün ayarlar kesin olarak başarılıdır.
Gerçekte: Hayır. Refresh, istemcinin Group Policy işleme döngüsünü istemesidir; hedef kapsam dışı olabilir, GPC/GPT kopyası erişilemeyebilir veya güncel olmayabilir, ayrıca CSE ya da ayarın restart/logoff gibi kendi koşulu sonuç üretmeyebilir. Kapsam, dağıtım/versiyon ve işleme/fiilî ayar ayrı kanıtlarla doğrulanmalıdır.
Sanılan: gpresult'ta bir GPO'nun applied görünmesi, o GPO içindeki her ayarın hedefte etkin olduğunu kanıtlar.
Gerçekte: Hayır. Resultant policy raporu değerlendirme sonucuna dair güçlü bir işarettir, ancak CSE'nin her ayarı işlediğini, preference item-level targeting'in geçtiğini veya hedefte gereken restart/logoff'un yapıldığını tek başına söylemez. Sonuç raporu, GroupPolicy işleme bağlamı ve hedef ayar doğrulaması birlikte okunmalı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 · OLAYLARI SIRALA

Bu sınırlı GPO incelemesinde soruları sırala.

  1. Seçili DC’de GPC/GPT read ve sürümleri karşılaştır.
  2. User scope ve filtering sonucunu belirle.
  3. Processing mode, CSE sonucu ve local değeri incele.

Bir ipucu

Kapsam dışı policy’yi refresh kapsam içine almaz.

Cevabın gerekçesini oku
  1. User scope ve filtering sonucunu belirle.
  2. Seçili DC’de GPC/GPT read ve sürümleri karşılaştır.
  3. Processing mode, CSE sonucu ve local değeri incele.

Önce adayın kullanıcıya uygulanabilirliğini, sonra okunan kopyaları, en son işlem ve gerçek değeri incelersin.

2 / 3 · KANITI OKU

Bu Folder Redirection örneğinde background refresh neyi göstermez?

Yeni sentetik pratik örneği; ders artifact’inden bağımsızdır.
Extension
Folder Redirection
GPC user version read
4
GPT user version read
4
Processing mode
background
Local result
not observed
Bir cevap seç

Bir ipucu

Bu extension’ın foreground koşulunu düşün.

Cevabın gerekçesini oku

Ayarın uygun user-logon foreground’da işlendiğini.

Doğru. Eşleşen sürümler foreground ihtiyacını ve sonuç gözlemini kaldırmaz.

3 / 3 · KENDİN ANLAT

“Refresh başarılı, demek ayar uygulandı” sonucunu düzelt.

Bir ipucu

Döngü denemesi ile her setting’in sonucu farklıdır.

Cevabın gerekçesini oku

Refresh işleme döngüsünü ister; kapsam dışı GPO’yu kapsama almaz veya delivery sorununu kendiliğinden onarmaz. Sürümler eşleşse bile extension’ın uygun processing mode’u, CSE sonucu ve WS01’deki gerçek ayar değeri ayrıca doğrulanır.

  • Scope ile delivery/processing’i ayırdım.
  • CSE ve gözlenen local değer için ayrı kanıt gerektiğini anlattı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.

Yerel task kaydını oku. Ready, çalıştığı anlamına gelmez.

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