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

Yetki grafiği okumak: Üyelik, nesne kontrolü, oturum ve yönetim ilişkileri.

Yetki grafiği bir saldırı sonucu değil, principal'lar ile denetlenebilir ilişkiler arasındaki hipotez haritasıdır. Üyelik, object-control ACE, oturum ve yönetim ilişkisi aynı ok türü değildir: her biri farklı veri tazeliği, farklı yetki kapsamı ve farklı runtime kapı gerektirir.

1. Core Mechanism / Temel mekanizma

Bu ders graph'taki bir kenarı, dayandığı directory veya runtime kanıtına geri bağlar. Bir yol ancak her kenarın subject'i, hedefi, kapsamı ve aradaki runtime koşulları doğrulanınca uygulanabilirlik adayı olur; nihai resource authorization ayrıca değerlendirilir.

Arabirimler ve belirtimler

  • membership edge: principal'ın güvenlik grubu üyeliği veya nested group yolu.
  • object-control edge: belirli object/property/control-access right için DACL ACE'i.
  • session edge: bir principal'ın yönetilebilir hedefte gözlemlenmiş, zaman sınırlı oturumu.
  • management edge: hedefte bir yönetim işlemi yapabilmek için gereken ayrı authorization boundary.
  • AccessCheck: token'daki SID'ler, istenen erişim ve object DACL'i birlikte değerlendirilir.
  • edge freshness: directory snapshot, oturum telemetrisi ve ACL'in aynı zamandaki gerçeği temsil etmeyebilir.

Okunacak şey düğüm değil, ilişki sözleşmesidir

Grafikteki User-A -> Group-B oku, User-A'nın Group-B üyesi olabileceğini; Group-B -> Object-C oku ise bir ACE'in Group-B'ye belirli bir hak verebildiğini anlatır. Bu iki oku tek bir 'admin' etiketiyle birleştirmek, hangi değişikliğin yolu kapatacağını gizler.

Bir object-control edge için ACE'in trustee'si, access mask'i, varsa object type GUID'i, inherited olup olmadığı ve hedef object okunmalıdır. 'Write Property' ile 'Generic All' aynı etkiyi vaat etmez; property-specific bir ACE yalnız ilgili attribute'a uygulanır.

Grafik yolu çalışma zamanı kanıtı değildir

Bir yolun çizilebilmesi, her geçişin aynı anda kullanılabildiğini kanıtlamaz. Token group membership değişmiş olabilir, ACE deny veya daha dar bir object type ile sınırlı olabilir; ağ, servis kabulü ya da resource ACL ayrıca engelleyebilir.

Oturum kenarı özellikle farklıdır: directory'de kalıcı bir yetki değil, gözlem zamanı ve toplama kapsamına bağlı bir olgudur. Eski bir session kaydı bugün de oturum olduğu anlamına gelmez.

Durum ve veri akışı

  1. Her edge'i membership, object-control, session veya management olarak sınıflandır.
  2. Edge'in dayandığı object, trustee, right ve gözlem zamanını kaydet.
  3. Bir sonraki edge için token, ACL ve runtime önkoşullarını ayrı doğrula.
  4. Resource üzerinde gerçek authorization sonucunu grafikten bağımsız kanıtla.

2. Exploitation / İstismar

Broken trust assumption

Saldırgan, graph'ta görünen ilişkilerden en az birinin kontrolünü elde etmiş veya yanlış yorumlanan bir edge'i kullanmaya çalışmaktadır; bu ders gerçek ortamda işlem adımı vermez.

Technical prerequisites

  • Yolun her object-control edge'i doğru trustee ve gerekli access mask ile gerçekten uygulanabilirdir.
  • Yolun runtime kısmı günceldir; hedef erişilebilir ve sonraki authorization boundary'leri ayrıca geçilebilir.

Exploitation mechanism / İstismar mekanizması

Graph, saldırgana hangi kontrol düzlemlerinin birleşebileceğini gösterir. Ancak geniş bir yol, en zayıf kenarı kadar gerçektir: stale session, kaldırılmış grup üyeliği veya property-specific ACE'in yanlış geniş yorumlanması yolu geçersiz kılar.

En kısa yol, en güçlü kanıt değildir

Bir araç iki düğüm arasında kısa yol gösterebilir; bu önceliklendirme için yararlıdır ama exploit kanıtı değildir. Kenarları kaynak artifact'e indirgemeden yolun etki alanını 'domain compromise' diye etiketlemek yanlış düzeltmeye yol açar.

Özellikle owner, WRITE_DAC ve doğrudan yazma hakları farklı mekanizmalardır. Değerlendirme, aradaki izin değişikliği adımını görünür tutmalıdır.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • Yüksek etkili her graph edge için object DN, trustee SID, ACE türü, mask ve object type bilgisini sakla.
  • Membership kaynağını, nested group çözümünü ve snapshot zamanını ayır.
  • Session edge'lerine gözlem kaynağı, collector kapsamı ve son görülme zamanını ekle.
  • Yolu kapatacak en dar yetki değişikliğini ve beklenen iş etkisini ayrı kaydet.

Events and relevant fields

  • Event 4662 uygun SACL ile denetlenen directory object operation'ını kaydedebilir. ObjectType erişilen nesnenin sınıfını belirtir; operation sırasında kullanılan property veya property-set GUID'leri Properties alanında yer alır. Olay tek başına graph path'inin tamamını veya resource access success sonucunu kanıtlamaz.
  • Oturum telemetrisi görünürlük kapsamına bağlıdır; yokluğu oturumun hiç oluşmadığı sonucu değildir.

Graph bulgusunu denetlenebilir hale getir

Bir edge raporunda yalnız kaynak ve hedef adı değil, onu üreten artifact de bulunmalıdır. Bu örnekte ACE, belirli member property GUID'ine Write Property verir; parser ACE'i okur ama AccessCheck veya group değişikliği yapmaz.

Bu kayıt, düzeltme sonrası aynı edge'in yeniden ölçülmesini mümkün kılar. Düzeltmenin endpoint erişimini bozup bozmadığı ise ayrı change validation işidir.

Detection logic · XPath

*[System[(EventID=4662)]]

Query assumptions

  • Bu XPath örneği ilgili kanaldaki 4662 event'lerini seçer; member attribute GUID'ine göre filtreleme yapmaz.
  • Property-specific incelemede ObjectType nesne sınıfını, Properties ise operation'la ilişkili class/property-set GUID'lerini taşır. Member attribute GUID'i Properties alanında aranmalı ve AccessMask, Subject, ObjectName ile birlikte yorumlanmalıdır.
  • 4662 üretimi ilgili directory object üzerindeki uygun SACL'e ve başarı/başarısızlık audit ayarına bağlıdır; sorgu canlı dataset'te çalıştırılmadı.

False positives

  • Meşru grup yönetimi aynı object type ile olay üretebilir.
  • Event, bir path'in tamamının çalıştığını veya sonraki resource authorization sonucunu göstermez.

Hardening

  • Privileged group membership ve hassas object ACE'lerini ayrı owner ve change-control ile yönet.
  • Property-specific delegation'ı Generic All veya geniş Write Property ile değiştirme.
  • Graph raporuna stale-data ve runtime verification alanlarını zorunlu ekle.

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

Group membership edge · property-specific SDDL

01
S-1-5-21-1987654321-1234567890-2468013579-4101OA · Write Property

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.

02
Nesnenin sahibiBuilt-in Administrators

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

03
Primary groupBuilt-in Administrators

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

04
Erişim kuralları / DACL(OA;;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-1987654321-1234567890-2468013579-4101)

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ı

Sentetik grup object DACL kesiti. OA ACE'i belirli member attribute GUID'ine WP verir; gerçek directory'den alınmadı ve parser tam AccessCheck hesaplamaz.

Ham kaydı aç · SDDL
O:BAG:BAD:(OA;;WP;bf9679c0-0de6-11d0-a285-00aa003049e2;;S-1-5-21-1987654321-1234567890-2468013579-4101)

İki yanlış kanı / Two reality checks

Sanılan: Grafikte bir yol görünüyorsa her edge uygulanabilir ve sonuç garantidir.
Gerçekte: Her edge'in right kapsamı, token/ACL değerlendirmesi, tazeliği ve runtime kapıları ayrı doğrulanır; resource authorization bağımsız son karardır.
Sanılan: Bir ACE'teki Write Property her attribute üzerinde tam kontrol demektir.
Gerçekte: Object-specific ACE, object type GUID'i ile daraltılabilir; örnekteki hak yalnız member attribute edge'inin dayanağı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

FS01 üzerindeki session gözlemi dün alınmış. Bu ok bugün için ne söyler?

Bir cevap seç

Bir ipucu

Oturumun gözlem zamanı ile directory üyeliğini ayır.

Cevabın gerekçesini oku

Dünkü gözlemi gösterir; bugünkü session ayrıca doğrulanmalıdır.

Doğru. Session edge zaman ve toplama kapsamına bağlıdır.

2 / 3 · KANITI OKU

Bu öğretim tablosunda hangi bilgi hakkın dar kapsamını gösterir?

Vaka için hazırlanmış ilişki tablosu; Windows çıktısı değildir.
Edge type
object-control
Right
Write Property
Attribute scope
member
Resource READ result
not observed
Bir cevap seç

Bir ipucu

Write Property’nin hangi attribute’a uygulandığını ara.

Cevabın gerekçesini oku

member attribute kapsamı

Evet. Property-specific hak, tüm object üzerinde Generic All değildir.

3 / 3 · KENDİN ANLAT

Bu graph neden Tunahan’ın FS01 raporunu açtığını tek başına göstermez?

Bir ipucu

İlişki, runtime ve son resource kararını bağla.

Cevabın gerekçesini oku

Graph belirli ilişkileri gösterir; onların tazeliği ve token/ACL koşulları ayrıca doğrulanır. FS01’deki READ sonucu bunların ardından bağımsız kanıt ister.

  • Edge türünü ve dar right kapsamını ayırdım.
  • Güncel context ve FS01 READ sonucunun ayrı kanıt istediğini söyledim.

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