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ışı
- Uygulama UNC yolunu ister; istemci hedef sunucuyu çözer ve uygun bağlantıyı seçer.
- İstemci ile FS01 NEGOTIATE mesajlarıyla SMB sürümü ve bağlantı özelliklerini görüşür.
- SESSION_SETUP, SSPI üzerinden kimlik doğrulama yapar ve FS01 üzerinde session güvenlik bağlamı kurar.
- TREE_CONNECT session'ı Finance paylaşımına bağlar.
- CREATE, reports\summary.txt hedefi için istenen erişim maskesini taşır.
- FS01, güvenlik bağlamını share ve dosya sistemi izinleriyle değerlendirir.
- İ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: lowQuery 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 HAZIRLANDIKim, hangi dosya için, hangi hakkı istemiş?
5145 · ayrıntılı dosya paylaşımı isteği (Event XML, Version 0)
S-1-5-21-111111111-222222222-333333333-1104SubjectUserSid erişim isteyen hesabı gösterir. Hesap adı ve domain ayrı alanlardır; bu SID dosyanın owner’ı değildir.
\\*\Financeİsteğin yöneldiği paylaşım adı. RelativeTargetName bu paylaşımın içindeki yolu verir; ShareLocalPath sunucudaki yerel yoldur.
reports\summary.txtBu örnekte reports\summary.txt için istek var. Paylaşım adıyla birlikte oku; bu alan dosyanın okunduğunu söylemez.
0x1Bu 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.
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 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?
- Producer / Üreten host
- FS01
- Examined event / İncelenen event
- 5145 Failure
- Observation / Gözlem
- Not found
- NTFS outcome / Sonuç
- Not separately observed
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.
Ctrl / ⌘ + Enter: çalıştır · Shift + Enter: yeni satır
PS C:\Users\tunahan>
Uzun çıktı: terminalin içinde kaydırarak devamını oku.
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 oturumdaki son komutlar
Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.
Kaynaklar / Sources
- Microsoft Open Specifications · [MS-SMB2]: Server Message Block (SMB) Protocol Versions 2 and 3
Protocol Details; NEGOTIATE, SESSION_SETUP, TREE_CONNECT ve CREATE mesajları. - Microsoft · Kerberos authentication overview
How Kerberos authentication works; istemcinin service ticket'ı hedef servise sunması. - Microsoft · How DACLs control access to an object
DACL ve ACE değerlendirmesinde access token SID'leri ile requested access ilişkisi. - Microsoft · 5145(S, F) A network share object was checked to see whether client can be granted desired access
Event XML, Event Versions, Field Descriptions ve NTFS Failure sınırına ilişkin Important notu. - Microsoft · Audit Detailed File Share
Açıklama, Event volume, SACL gereksinimi ve Events List.