İçindekiler

    Yazıyı Dinle

    Hazır
    Tarayıcınızın yerleşik ses sentezi özelliğini kullanır.

    Yazı Boyutu

    Küçük Aa
    Normal Aa
    Büyük Aa
    Çok Büyük Aa

    Kaydet

    📑

    Bu makaleyi daha sonra okumak için kaydedin

    Windows Sunucularda SMB Bağlantılarının Derin Analizi

    Windows Sunucularda SMB Bağlantılarının Derin Analizi
    Yazıyı dinlemek için oynat butonuna tıklayın

    PID 4, Netstat Çıktıları ve Hangi Dosyalara Erişildiğinin Tespiti

    Kurumsal ağlarda dosya sunucuları hâlâ kritik öneme sahip bileşenlerdir. Kullanıcıların günlük işlemleri, paylaşılan klasör yapıları, departman dizinleri, otomasyon yazılımlarının dosya tabanlı süreçleri gibi pek çok aktivite, SMB (Server Message Block) protokolü üzerinden gerçekleşir.

    Bir sistem yöneticisi olarak, dosya sunucularını incelerken karşımıza sık sık bazı sorular çıkar:

     Hangi istemci sunucuma bağlanıyor?
     Bu istemci hangi paylaşım klasörlerine erişiyor?
     Açtığı dosyalar neler?
     Bu bağlantı hangi uygulama üzerinden geliyor?
     Neden PID 4 görünüyor? bu bir problem mi? kötü amaçlı bir şey mi?

    İşte bu blog yazısında, bu soruların tamamını gerçek bir örnek üzerinden adım adım ele alıyoruz.

    Bir Durum İncelemesi: Netstat Çıktısında PID 4

    Örnek senaryomuzda, dosya sunucusunda şu komut çalıştırılıyor:

    cmd
    netstat ano | findstr 10.20.30.5


    Ve sonuç şu şekilde geliyor:


    TCP    10.20.30.9:445    10.20.30.5:51795    ESTABLISHED     4
    TCP    10.20.30.9:445    10.20.30.5:51797    ESTABLISHED     4
    TCP    10.20.30.9:445    10.20.30.5:51798    ESTABLISHED     4


    İlk bakışta anlamlı olan şey:
    10.20.30.5, sunucuya 445 numaralı port üzerinden bağlanıyor.
    Bu port, SMBv2/v3 protokollerinin standart bağlantı noktasıdır.

    Dikkat çeken şey ise: PID 4.

    PID 4 Neden Özel Bir PID'dir?

    Windows’ta PID 4, dünyada yalnızca bir tek süreç için ayrılmıştır:

    SYSTEM (NT Kernel & System Process)

    Bu süreç, işletim sisteminin çekirdeğinin çalışmasını sağlar.
    İçinde:

     SMB sunucusu sürücüleri
     Dosya paylaşımı bileşenleri
     NFS / CIFS işleyicileri
     Kernelmode network stack
     Windows Defender’ın bazı çekirdek eklentileri
     I/O scheduler yönetimi
     Bellek yönetiminin büyük kısmı

    gibi en düşük seviyeli bileşenler vardır.

    Dolayısıyla bir SMB bağlantısı geldiğinde Windows işlem tablosu şu şekilde çalışır:

     "Bu bağlantıyı kullanıcı uygulaması başlatmıyor. SMB protokolü kernel seviyesinden işleniyor. O hâlde bu bağlantı PID 4 üzerinden görünecek."

    Ve bu tamamen doğru, beklenen, olağan bir durumdur.
    Bir uygulamanın kötü amaçlı olduğuna işaret etmez.

    SMB Trafiği Neden Kernel (PID 4) Üzerinden Yönetilir?

    SMB çok sık kullanılan ve performans açısından kritik bir protokoldür. Bu nedenle Microsoft, SMBv2’den itibaren protokolü kullanıcı modundan çıkarıp kernel seviyesine taşımıştır.

    Bu sayede:

     Daha düşük gecikme
     Daha hızlı dosya listeleme
     Daha az CPU kullanımı
     Yüksek yoğunluklu bağlantılarda kararlılık
     Kaya gibi sağlam bir güvenlik modeli

    elde edilir.

    Bu yüzden SMB bağlantısının PID 4 olarak görünmesi:

    ✔ Doğru
    ✔ Güvenli
    ✔ Tasarımsal bir davranıştır

    > “Sunucuma bir şey mi bulaştı?”
    > Hayır. Bu davranış Windows Server’ın doğal çalışma şeklidir.

     

    10.20.30.5 Hangi Dosyalara Erişiyor?

    İşte işin teknik olarak ilginç kısmı burada başlıyor.
    Netstat yalnızca bağlantının olduğunu gösterir.
    Ama bağlantının içeriği hakkında hiçbir şey söylemez.

    Yani:

     Hangi klasör?
     Hangi dosya?
     Ne zaman açtı?
     Ne kadar süre açık kaldı?
     Kullanıcı kimliği ne?
     Okuma mı yaptı yazma mı yaptı?

    Bunların hiçbirini netstat ile göremezsiniz.

    Peki nasıl görürüz?

    Windows Server bize bunun için çok güçlü araçlar sunuyor.

     

    1. SMB Oturumlarını Görme – Bağlantının Kimliği

    İlk adım, istemcinin sunucuda aktif bir oturumu olup olmadığını görmek:

    powershell
    GetSmbSession | Select ClientComputerName, ClientUserName, NumOpens


    Bu komut size şunu söyler:

     10.20.30.5 şu kullanıcı ile bağlı
     Bu oturumda X adet dosya açık
     Bağlantı SMBv2 mi SMBv3 mü
     Oturum trafiği kaç MB

     

     2. En Kritik Adım: Açık Dosyaları Listeme – Gerçekleri Görme

    Bu komut, bir istemcinin o anda hangi dosyaları açtığını birebir gösterir:

    powershell
    GetSmbOpenFile | WhereObject {$_.ClientComputerName eq "10.20.30.5"} |
        Select ClientComputerName, Path, ClientUserName


    Bu sayede direkt olarak:

     “Hangi paylaşım klasörüne girilmiş?”
     “Hangi dosya açılmış?”
     “Okuma mı yazma mı yapılmış?”
     “Kim erişmiş?”

    hepsini net bir şekilde görürüz.

    Örnek bir çıktı:


    ClientComputerName : 10.20.30.5
    Path               : \\10.20.30.9\Shared\HR\salary.xlsx
    ClientUserName     : corpintra\user1


    Bu noktada artık bütün tablo netleşmiş olur:

     İstemci → 10.20.30.5
     Erişilen dosya → salary.xlsx
     Paylaşım yolu → HR
     Kullanıcı → user1

     

     🟧 3. Gerçek Zamanlı İzleme – ShareMonitor / Sysinternals

    Eğer canlı olarak:

     kim hangi klasörü açtı,
     dosyanın adı neydi,
     paylaşımdan ne okundu ne yazıldı

    görmek istiyorsanız Sysinternals’ın “ShareMonitor” aracı bunu anlık gösterir.

    Her açılan dosya şöyle görünür:


    10.20.30.5 opened \\10.20.30.9\Accounting\Rapor.xlsx
    10.20.30.5 read   \\10.20.30.9\Shared\TaskList.docx


    Ağ trafiğini canlı takip etmek, özellikle de büyük şirket ortamlarında çok değerli bir yetenektir.

    İleri Seviye: Event Viewer – SMB Access Logları

    Eğer SMB Audit Log aktifse:

    Event Viewer → Microsoft → Windows → SMBServer → Operational

    Başlıklar altında:

     3000 → File Read
     3001 → File Write
     3002 → File Create
     3003 → Directory Access

    gibi ID’lerle tüm hareketler kaydedilir.

    Bu loglar:

     Forensic incelemelerde
     Veri sızıntısı araştırmalarında
     Kullanıcı hareket analizlerinde

    çok işe yarar.

    PID 4 Görmek Normaldir, Asıl Önemli Olan Dosya Erişimlerini İzlemektir

    Bir istemci dosya sunucusuna bağlandığında bağlantının PID 4 altında görünmesi tamamen olağan bir durumdur.
    Bu SMB protokolünün Windows’ta kernel seviyesinde çalışmasından kaynaklanır.

    Önemli olan; istemcinin hangi dosyalara eriştiğini, hangi kullanıcıyla bağlandığını, hangi klasörü açtığını doğru araçlarla tespit edebilmektir.

    Bu yazıda anlattığımız araçlar:

     GetSmbSession → Oturum kimliği
     GetSmbOpenFile → Açılan dosyalar
     ShareMonitor → Canlı izleme
     SMBServer Logs → Adli inceleme

    sistemin tüm resmini net şekilde görmeyi sağlar.

    Aşağıya talep ettiğin üç bölümü blog yazısına ek içerik olarak hazırladım.
    Hepsi profesyonel – anlaşılır – teknik olarak doğru şekilde düzenlendi.


    SMB Teknik Terimler Sözlüğü (TR/EN)

    SMB dünyasında sık geçen kavramların Türkçe–İngilizce karşılıkları ve kısa açıklamaları:

    Türkçe Terim İngilizce Terim Açıklama
    Dosya Paylaşımı File Sharing Ağ üzerinden klasör/dosya paylaşımı. SMB’nin temel amacı.
    Paylaşım (Paylaştırılmış klasör) Share / Shared Folder SMB ile erişilebilen paylaştırılmış klasör.
    Oturum Session Bir istemcinin sunucuya kurduğu kimlik doğrulamalı bağlantı.
    Oturum Kimliği Session ID Her SMB bağlantısına verilen benzersiz numara.
    Dosya Tanıtıcısı File Handle Açık bir dosyayı temsil eden sistem tanıtıcısı.
    Okuma / Yazma Read / Write SMB üzerinden dosya erişim türleri.
    Paylaşım Yolu UNC Path \server\share\ klasör yapısının tam yolu.
    Kimlik Doğrulama Authentication Kullanıcı giriş kontrolü (NTLM/Kerberos).
    Yetkilendirme Authorization Kullanıcının klasör/dosyaya erişim yetkisi.
    SMB Protokolü SMB Protocol Windows dosya paylaşım protokolü (CIFS olarak da bilinir).
    SMBv1 SMB Version 1 Güvensiz, eski sürüm. Artık devre dışı bırakılması önerilir.
    SMBv2 SMB Version 2 Performans ve güvenlik olarak büyük sıçrama, modern sürüm.
    SMBv3 SMB Version 3 Şifreleme, kararlılık ve hız geliştirmeleri içerir.
    Network Signed SMB Signing SMB paketlerinin imzalanması, güvenlik artırır.
    SMB Encryption SMB Şifreleme Veri akışını uçtan uca şifreler.
    SMB Session Key Oturum Anahtarı İstemci–sunucu arasındaki şifreleme anahtarı.
    Kernel-Mode Driver Çekirdek Modu Sürücüsü SMB gibi trafiklerin PID 4 altında çalışmasının nedeni.
    File Locking Dosya Kilitleme Çoklu kullanıcı erişiminde çakışmayı önler.

    Bu sözlük, blog yazına ayrı bir bölüm olarak eklenebilir.


    SMBv2 ve SMBv3 Arasındaki Farklar (Detaylı Tablo)

    SMBv2 → Windows Vista/Server 2008 ile geldi
    SMBv3 → Windows 8/Server 2012 ile geldi

    Aşağıdaki tablo, iki sürüm arasındaki farkları net şekilde ortaya koyar:

    Özellik SMBv2 SMBv3
    Çıkış Yılı 2006 2012
    Performans SMBv1’e göre çok daha hızlı SMBv2’den %20–40 daha hızlı
    Güvenlik SMB Signing destekler SMB Encryption destekler (büyük fark!)
    Şifreleme Yok AES-128-GCM / AES-128-CCM
    Çoklu Kanal Yok Multichannel (birden fazla ağ arayüzü → yüksek hız)
    Dayanıklılık Temel düzeyde SMB Durable Handles ile kesintisiz bağlantı
    Failover Yok Clustered Shared Volume desteği, kesintisiz failover
    Sıkıştırma Yok SMB Compression (2020 güncellemesiyle)
    OTOMATİK Yük Paylaşımı Yok SMB Direct + RDMA desteği
    Kullanım Alanı Genel dosya paylaşımı Veri merkezleri, yüksek yük, büyük dosya akışı, Hyper-V

    SMBv3, hem hız hem güvenlik hem dayanıklılık açısından en ideal sürümdür.
    Günümüz sunucularında SMBv1 kapalı, SMBv2/3 açık olarak çalışması önerilir.


    Powershell ile Otomatik SMB İzleme Scripti

    Aşağıdaki script, belirli bir istemci IP adresinin (ör: 10.1.0.24) hangi dosyalara eriştiğini otomatik izler, her 10 saniyede bir kontrol eder ve log kaydı oluşturur.

    Script Özellikleri

    ✔ Hangi dosyalara erişildiğini bulur
    ✔ Kullanıcı bilgisiyle birlikte log’a yazar
    ✔ Tarih-saat damgası ekler
    ✔ Gerçek zamanlı takip sağlar
    ✔ Log dosyasını CSV olarak üretir


    smb-monitor.ps1 — Otomatik SMB Dosya Erişim İzleme Scripti

    # ============================
    # SMB Otomatik İzleme Scripti
    # ============================
    
    $TargetIP = "10.1.0.24"         # İzlenecek istemci IP
    $LogFile = "C:\SMB_Logs\smb_log.csv"
    
    # Log dosyası yoksa oluştur
    if (-Not (Test-Path $LogFile)) {
        "Timestamp,ClientIP,User,FilePath" | Out-File -FilePath $LogFile -Encoding utf8
    }
    
    Write-Host "SMB izleme başlatıldı... IP: $TargetIP" -ForegroundColor Green
    Write-Host "Log dosyası: $LogFile"
    
    while ($true) {
    
        $files = Get-SmbOpenFile | Where-Object {
            $_.ClientComputerName -eq $TargetIP
        }
    
        foreach ($file in $files) {
            $timestamp = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
            $entry = "$timestamp,$($file.ClientComputerName),$($file.ClientUserName),$($file.Path)"
    
            # Log kaydını yaz
            Add-Content -Path $LogFile -Value $entry
    
            Write-Host "[KAYIT] $entry" -ForegroundColor Yellow
        }
    
        Start-Sleep -Seconds 10  # Her 10 saniyede bir kontrol et
    }
    

    Kullanım Talimatı

    1. Scripti bir dosyaya kaydet:

    C:\Scripts\smb-monitor.ps1
    

    2. Log klasörü oluştur:

    mkdir C:\SMB_Logs
    

    3. Scripti çalıştır:

    powershell -ExecutionPolicy Bypass -File C:\Scripts\smb-monitor.ps1
    

    4. Log dosyasına bak:

    C:\SMB_Logs\smb_log.csv
    

    Her satırda şunlar olacak:

    2025-12-03 16:22:10,10.1.0.24,corpintra\user1,\\10.1.0.9\Shared\Finance\budget.xlsx
    

     

    Önceki Yazı Debian 13 Trixie ile Fluxbox: Minimalist Masaüstü Ortamı Kurulumu ve Yapılandırması
    Debian 13 Trixie ile Fluxbox: Minimalist Masaüstü Ortamı Kurulumu ve Yapılandırması

    Modern masaüstü ortamları her geçen gün daha fazla sistem...

    Sonraki Yazı Ransomware İncelemelerinde Dosya Erişim Analizi Nasıl Yapılır?
    Ransomware İncelemelerinde Dosya Erişim Analizi Nasıl Yapılır?

    Ransomware saldırıları günümüzde kurumların karşılaştığ�...