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

Bir kullanıcı dosya paylaşımına eriştiğinde baştan sona neler olur?

Bir UNC yolu açılırken hedefi bulma, SMB oturumu kurma ve dosyaya yetki verme aynı karar değildir. İstemci önce sunucuya ulaşır, SMB session ve share bağlamını kurar; son erişim kararı ise istenen haklar, istemciyi temsil eden güvenlik bağlamı ve kaynak üzerindeki izinlerle dosya sunucusunda verilir.

1. Core Mechanism / Temel mekanizma

İstemci uygulaması ve Windows SMB istemcisi, dosya sunucusundaki SMB servisi ve kaynak yöneticisi arasında ilerleyen akış. Bu ders keşif, SMB session, share bağlantısı ve dosya açma kararını birbirinden ayırır; Kerberos mesaj ayrıntısını 06.x'e, DACL değerlendirme sırasını 05.03–05.04'e bırakır.

Arabirimler ve belirtimler

  • UNC adı: \\server\share\path hedef sunucu, paylaşım ve göreli yolu belirtir.
  • MS-SMB2: NEGOTIATE bağlantı özelliklerini, SESSION_SETUP kullanıcı güvenlik bağlamını, TREE_CONNECT paylaşım bağlamını, CREATE ise dosya veya dizin açma isteğini taşır.
  • SSPI: SESSION_SETUP sırasında Kerberos veya uygun başka bir Windows kimlik doğrulama paketini SMB'ye sunar; Kerberos tek olasılık değildir.
  • CREATE isteği: hedef nesne ve istenen erişim maskesi dosya sunucusundaki kaynak kararına girer.
  • Windows Security 5145: paylaşım üzerinde denetlenen isteğin subject, share, göreli hedef ve erişim alanlarını kaynak hostta kaydeder.

Yolu bulmak erişim izni vermek değildir

Uygulama \\FS01\Finance\reports\summary.txt yolunu istediğinde ilk iş, FS01 adına hangi adrese ve mevcut hangi bağlantı durumuna karşılık geldiğini belirlemektir. Bu aşama yalnız hedefe nasıl ulaşılacağını çözer.

SMB istemcisi sunucuya bağlandıktan sonra NEGOTIATE ile ortak protokol özelliklerini seçer. Bu görüşmenin başarıyla tamamlanması kullanıcı kimliğinin doğrulandığını veya Finance paylaşımının açılabildiğini göstermez.

Her aşamanın çıktısı sonraki aşamaya girdi olur; ancak hiçbir erken başarı sonraki kararı peşinen vermez.

Session ve share iki ayrı bağlamdır

SESSION_SETUP, SSPI aracılığıyla seçilen kimlik doğrulama paketini kullanır ve sunucuda istemciyi temsil eden bir SMB session güvenlik bağlamı kurar. Ortam ve koşula göre Kerberos dışında desteklenen bir paket de kullanılabilir.

TREE_CONNECT bu session'ı belirli bir paylaşıma bağlar. Sunucuya kimliği doğrulanmış olmak, her share için bağlantının kabul edileceği anlamına gelmez.

Bu ayrım olay incelemesinde önemlidir: domain controller üzerindeki ticket işlemi, FS01 üzerindeki session ve share isteğinin yerine geçmez.

Dosya kararı CREATE isteğiyle somutlaşır

İstemci CREATE mesajında göreli hedefi ve istediği hakları taşır. Adındaki CREATE, yalnız yeni dosya üretmek anlamına gelmez; mevcut dosya veya dizini açma isteğini de taşır.

Sunucu, istemciyi temsil eden token veya güvenlik bağlamındaki SID'leri paylaşım ve dosya sistemi güvenlik tanımlarıyla değerlendirir. Kimlik doğrulama, bu değerlendirmeye bir principal sağlar; sonucu garanti etmez.

Sağlam bir kanıt zinciri kullanıcı/session, share, göreli hedef, istenen hak ve kararın hangi hostta verildiğini ayrı ayrı korur.

Durum ve veri akışı

  1. Uygulama UNC yolunu ister; istemci hedef sunucuyu çözer ve uygun bağlantıyı seçer.
  2. İstemci ile FS01 NEGOTIATE mesajlarıyla SMB sürümü ve bağlantı özelliklerini görüşür.
  3. SESSION_SETUP, SSPI üzerinden kimlik doğrulama yapar ve FS01 üzerinde session güvenlik bağlamı kurar.
  4. TREE_CONNECT session'ı Finance paylaşımına bağlar.
  5. CREATE, reports\summary.txt hedefi için istenen erişim maskesini taşır.
  6. FS01, güvenlik bağlamını share ve dosya sistemi izinleriyle değerlendirir.
  7. İzin verilen işlem yürür; reddedilen aşamanın kanıtı kendi gözlem noktasında aranır.

2. Exploitation / İstismar

Broken trust assumption

Kırılan varsayım, geçerli kimlik materyalini kullanan tarafın hesabın meşru sahibi olduğu ve kimlik doğrulama başarısının hedef dosya üzerinde yeterli hak sağladığıdır.

Technical prerequisites

  • Kullanılabilir hesap, ticket veya mevcut session materyali.
  • Dosya sunucusuna ağ erişimi ve hedef paylaşımın mevcut olması.
  • Temsil edilen principal'a hedefte en az bir ilgili share ve dosya hakkının verilmiş olması.

Exploitation mechanism / İstismar mekanizması

Saldırgan meşru SMB akışını kullanarak ele geçirilen principal adına session kurar ve o principal'ın mevcut hakları kapsamında listeleme, okuma veya yazma ister. Mekanizma DACL'yi atlamaz; yanlış hedef, kullanılamayan credential, kapalı ağ yolu veya yetersiz hak işlemi durdurur.

Geçerli session yetki yükseltmesi değildir

SESSION_SETUP'in kabul edilmesi yalnız sunucunun bir güvenlik bağlamı kurabildiğini gösterir. Sonraki share ve dosya kararları yine hedef kaynakta verilir.

Bu nedenle ele geçirilen sırların etkisi hesabın gerçekten sahip olduğu haklarla sınırlıdır. Her credential otomatik olarak bütün paylaşım ve dosyaları açmaz.

Bu dersin saldırı sınırı

Credential çıkarma, relay ve ticket üretme adımları bu derste tarif edilmez. Buradaki amaç, bu materyal mevcut olduğunda normal erişim akışının hangi güven varsayımını taşıdığını göstermektir.

Etkiyi ölçmek için principal adı kadar kaynak host, share, hedef yol ve istenen hak da kaydedilmelidir.

3. Defense & Detection / Savunma ve tespit

Telemetry scope

  • Kaynak dosya sunucusunda Audit Detailed File Share alt kategorisini Success ve/veya Failure gereksinimine göre etkinleştir.
  • 5145 için share SACL'i gerekmez; ancak olay hacmi yüksek olabileceğinden kapsam ve saklama planı önce ölçülmelidir.
  • 5145 Failure share düzeyindeki reddi gösterir; NTFS düzeyindeki bir red için aynı Failure kaydı oluşmayabilir.
  • Domain controller ticket olayları bilet işlemini destekler; dosyanın açıldığını tek başına kanıtlamaz.

Events and relevant fields

  • 5145 / SubjectUserSid, SubjectUserName, SubjectDomainName, SubjectLogonId: isteği yapan güvenlik bağlamı.
  • 5145 / IpAddress, IpPort: istemcinin kaynak ağ bağlamı.
  • 5145 / ShareName, ShareLocalPath, RelativeTargetName: share ile kaynak üzerindeki göreli hedefi ayırır.
  • 5145 / AccessMask, AccessList, AccessReason: istenen haklar ve Windows'un bildirdiği karar gerekçesi.
  • 5145 / Version 0: belgelenen şema en az Windows Vista ve Windows Server 2008 kapsamındadır.

5145 hangi soruyu yanıtlar?

5145, kaynak hostta hangi subject'in hangi share ve göreli hedef için hangi erişimi istediğini gösterir. Bu yüzden DC'deki bir ticket kaydından dosya hedefini çıkarmaya çalışmaktan daha doğrudan bir gözlem noktasıdır.

Yine de olayın sınırı korunmalıdır: share düzeyindeki kontrol ile NTFS düzeyindeki nihai karar aynı şey değildir.

Korelasyon kanıt gücünü artırır

Aynı kaynak host üzerindeki 4624 ile SubjectLogonId, istemci adresi ve zaman üzerinden ilişki kurulabilir. Kaynak gecikmesi ve alan normalizasyonu eşleştirmenin kesinliğini etkiler.

Ticket, session ve nesne isteği farklı hostlarda oluşabilir. Bir olayın yokluğu diğer aşamanın başarısını otomatik olarak çürütmez.

Detection logic · Sigma

title: Hassas SMB hedefinde ayrintili dosya paylasimi istegi
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 5145
    ShareName|endswith: '\\Finance'
  condition: selection
fields:
  - SubjectUserName
  - SubjectDomainName
  - SubjectLogonId
  - IpAddress
  - ShareName
  - RelativeTargetName
  - AccessMask
  - AccessReason
falsepositives:
  - Yetkili kullanici ve uygulamalarin normal dosya islemleri
level: low

Query assumptions

  • Alan adları Windows EventData/Data[@Name] adlarıdır; hedef backend normalize ediyorsa mapping gerekir.
  • Kural yalnız aday olayları seçer; başarı, NTFS sonucu veya dosya içeriğinin okunduğu sonucunu tek başına vermez.
  • ShareName gösterimi collector tarafından farklı kaçış veya normalizasyonla saklanabilir.
  • Kural gerçek bir SIEM veya veri kümesi üzerinde çalıştırılmadı.

False positives

  • Normal kullanıcı ve uygulama dosya erişimleri.
  • Yedekleme, yazılım dağıtımı, tarayıcı ve indeksleme süreçleri.
  • SYSVOL gibi yoğun paylaşımlarda beklenen yüksek hacim.

Hardening

  • Share ve NTFS izinlerini birlikte en az ayrıcalıkla düzenle; gereksiz share'leri kaldır.
  • Kritik yollar için Success görünürlüğünü, daha geniş kapsam için Failure görünürlüğünü hacim ölçerek kademeli aç.
  • Değişiklik öncesi mevcut iş akışını ve geri alma yolunu kaydet; sonrasında hem erişim sonucunu hem ilgili kaynak-host telemetrisini doğrula.

Örnekler üzerinde oku / Read the examples

ÖRNEĞİ BİRLİKTE OKUYALIM

EĞİTİM İÇİN HAZIRLANDI

Kim, hangi dosya için, hangi hakkı istemiş?

5145 · ayrıntılı dosya paylaşımı isteği (Event XML, Version 0)

01
İsteyen hesabın SID’siS-1-5-21-111111111-222222222-333333333-1104

SubjectUserSid erişim isteyen hesabı gösterir. Hesap adı ve domain ayrı alanlardır; bu SID dosyanın owner’ı değildir.

02
Paylaşım\\*\Finance

İsteğin yöneldiği paylaşım adı. RelativeTargetName bu paylaşımın içindeki yolu verir; ShareLocalPath sunucudaki yerel yoldur.

03
Paylaşım içindeki hedefreports\summary.txt

Bu örnekte reports\summary.txt için istek var. Paylaşım adıyla birlikte oku; bu alan dosyanın okunduğunu söylemez.

04
İstenen hak0x1

Bu sentetik dosya örneğinde 0x1, istenen ReadData hakkıdır. AccessMask bir istek alanıdır; NTFS izni veya tamamlanmış I/O sonucu değildir.

Buradan çıkaracağın fikir

5145’te hesabı, paylaşımı, hedef yolu ve istenen hakkı birlikte oku. Bu kesit AccessReason ve audit sonucu içermez; share kontrolünün sonucunu, NTFS kararını veya tamamlanmış okumayı buradan çıkarma.

Rehber bu sentetik örneğin seçilmiş alanlarını açıklar. Ham metni değiştirirsen genel okumaya dönülür; Windows işlemi veya olayın gerçekliği doğrulanmaz.

Bu örneğin kapsamı

Sentetik, şema odaklı seçilmiş alan alt kümesidir; gerçek Windows veya lab kaydı değildir. Windows Event namespace, EventID 5145 ve Version 0 ile belirtilen EventData adlarını parser düzeyinde incelemek içindir. AccessReason dahil tam olay alan kümesini temsil etmez; dosyanın açıldığını, okumanın tamamlandığını veya NTFS sonucunu kanıtlamaz.

Ham kaydı aç · EVENT-XML
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing" />
    <EventID>5145</EventID>
    <Version>0</Version>
    <Channel>Security</Channel>
    <Computer>FILE01.besiktas.example</Computer>
  </System>
  <EventData>
    <Data Name="SubjectUserSid">S-1-5-21-111111111-222222222-333333333-1104</Data>
    <Data Name="SubjectUserName">kayra</Data>
    <Data Name="SubjectDomainName">BESIKTAS</Data>
    <Data Name="SubjectLogonId">0x123</Data>
    <Data Name="ObjectType">File</Data>
    <Data Name="IpAddress">192.0.2.10</Data>
    <Data Name="IpPort">50123</Data>
    <Data Name="ShareName">\\*\Finance</Data>
    <Data Name="ShareLocalPath">\??\D:\Shares\Finance</Data>
    <Data Name="RelativeTargetName">reports\summary.txt</Data>
    <Data Name="AccessMask">0x1</Data>
  </EventData>
</Event>

İki yanlış kanı / Two reality checks

Sanılan: Kerberos service ticket alındıysa dosyaya erişim verilmiştir.
Gerçekte: Service ticket hedef serviste kimlik doğrulamayı destekler. SMB session kurulduktan sonra share ve dosya için istenen haklar kaynak hostta ayrıca değerlendirilir; ticket düzenlenmesi bu kararın kanıtı değildir.
Sanılan: 5145 Failure görünmüyorsa bütün dosya erişimleri başarılıdır.
Gerçekte: 5145 Failure share düzeyindeki reddi gösterir. Microsoft'un belgelediği sınıra göre NTFS düzeyinde reddedilen erişim için 5145 Failure oluşmayabilir; sonuç başka kaynak-host kanıtıyla 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

SMB NEGOTIATE başarılı. Bundan hangisi çıkar?

Bir cevap seç

Bir ipucu

Bu mesaj kullanıcı kimliği mi bağlantı özelliği mi görüşüyor?

Cevabın gerekçesini oku

Ortak bağlantı/protocol özellikleri görüşüldü; dosya hakkı henüz bilinmiyor.

SESSION_SETUP, share ve CREATE/resource kararları ayrı kalır.

2 / 3 · KANITI OKU

FS01’de 5145 Failure yok. Bu neden bütün dosya okumalarının başarılı olduğunu göstermez?

Sentetik kaynak-host gözlem özeti.
Producer / Üreten host
FS01
Examined event / İncelenen event
5145 Failure
Observation / Gözlem
Not found
NTFS outcome / Sonuç
Not separately observed
Bir cevap seç

Bir ipucu

Bu event’in share düzeyi kapsamını düşün.

Cevabın gerekçesini oku

NTFS düzeyindeki ret için 5145 Failure oluşmayabilir; ayrı sonuç kanıtı gerekir.

Event yokluğunu kapsamı dışında genel başarı kanıtına dönüştürme.

3 / 3 · KENDİN ANLAT

SMB CREATE adı neden yalnız “yeni dosya yaratma” diye okunmamalı?

Bir ipucu

Talebin hedefini ve requested access’i düşün.

Cevabın gerekçesini oku

CREATE mevcut Reports dosyasını açma isteğini de taşıyabilir. Hedef ve istenen erişim maskesi FS01’de share/dosya sistemi koşullarıyla değerlendirilir; mesaj adı tek başına yaratma veya başarı kanıtı değildir.

  • Mevcut dosya/dizin açma isteğini kapsayabildiğini belirttim.
  • Requested access ve FS01 resource kararını 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\tunahanstudent0104 · 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