CyberFlow Logo CyberFlow BLOG
Smb Pentest

SMB Versiyon Tespiti: Tüm Ayrıntılarıyla Rehber

✍️ Ahmet BİRKAN 📂 Smb Pentest

SMB versiyon tespiti hakkında kapsamlı bir rehber. Güvenlik risklerini azaltmak için protokollerin nasıl yönetileceğini öğrenin.

SMB Versiyon Tespiti: Tüm Ayrıntılarıyla Rehber

SMB versiyon tespiti, siber güvenlikte kritik bir adımdır. Bu yazıda, güvenlik açıklarını tespit etmek için hangi yöntemlerin kullanılacağını öğreneceksiniz.

Giriş ve Konumlandırma

Siber güvenlikteki risklerin tespiti, idaresi ve azaltılması, kurumların güvenliği için kaçınılmaz bir unsurdur. Özellikle küçük ve orta ölçekli işletmeler (SMB’ler) için bu durum daha da kritik hale gelir. Veri akışlarının güvenliği söz konusu olduğunda, dosya paylaşım protokolleri büyük bir rol oynamaktadır. Bu bağlamda, Server Message Block (SMB) protokolü, ağ üzerinde dosya ve yazıcı paylaşımı konusunda yaygın bir kullanıma sahiptir. Ancak, SMB protokolünün farklı sürümleri, çeşitli güvenlik açıkları ve performans sorunları barındırır. Bu nedenle, SMB versiyon tespiti, modern siber güvenlik senaryolarında vazgeçilmez bir teknik beceri olarak ön plana çıkar.

SMB versiyon tespiti, özellikle sızma testleri için önemli bir adımdır. Test ederek tespit edilen her versiyon, potansiyel zafiyetlerin ortadan kaldırılması konusunda kritik bilgiler sunar. Örneğin, SMBv1 versiyonu artık günümüzde "ölü" bir protokol olarak değerlendirilmektedir. Bu sürüm açık olduğunda, saldırganların ağda parolasız bilgi toplamasına olanak tanıyabilir. Bu nedenle, ağ yöneticilerinin, sistemlerinde hangi SMB sürümlerinin kullanıldığını bilmesi ve zayıf olanları ortadan kaldırması büyük bir önem taşır.

SMB Protokol Hiyerarşisi ve Versiyonları

SMB protokolü, zaman içinde farklı sürümlerine evrilmiştir; bu sürümler, sistemlerin güvenliği ve performansı açısından kritik özellikler taşır. Örneğin, SMBv2 ve daha yeni sürümleri, daha iyi performans sağlamanın yanı sıra, mesaj imzalama ve veri şifreleme gibi güvenlik özelliklerini de içerir. Bu, protokolün güvenlik perspektifinden nasıl geliştiğini anlamak açısından ehemmiyet arz eder. Versiyonların belirli "lehçe" numaralarıyla temsil edilmesi, farklı sistemlerin bu sürümlerle hangi düzeyde iletişim kurabildiğini belirlemek için teknik bir gerekliliktir.

Bu süreçte, istemci ve sunucu arasında gerçekleşen 'negotiation' aşaması oldukça kritik bir adımdır. İstemci, bağlantı başladığında sunucuya hangi sürümleri desteklediğini iletir ve sunucu da bu listedeki en yüksek sürümü seçerek yanıt döner. Bu aşama, doğru sürümle güvenli bir bağlantının sağlanması adına hayati öneme sahiptir.

Gelişmiş Analiz Yöntemleri

SMB versiyon tespiti sırasında, genellikle otomatik araçlar kullanılmakla birlikte, belirli durumlarda manuel sorgulama yöntemlerine de başvurulması gerekmektedir. Örneğin, smbclient aracı kullanarak doğrudan bir protokol sürümü ile bağlantı kurma girişiminde bulunulabilir. Bunun için aşağıdaki komut kullanılabilir:

smbclient -L target_ip -m SMB2

Bu komut, hedef sunucu üzerinde yalnızca SMBv2 protokolü aracılığıyla bağlantı denemesi yapar. Böylece, yalnızca bu protokolle ilgili bağlantı durumu hakkında bilgi edinilebilir.

Araçların yanı sıra, iş yerlerinde kullanılan ağların durumunu izlemek için Wireshark gibi paket analizi yazılımları da etkili birer yardımcıdır. Wireshark kullanarak belirli bir protokolün veri trafiğini analiz etmek, olası güvenlik açıklarının tespiti açısından güçlü bir yöntem sunar. Örneğin, SMBv2 ve üzeri trafiği filtrelemek için aşağıdaki komutu kullanabilirsiniz:

smb || (smb2 || smb3)

Güvenlik Özellikleri ve Önlemleri

Siber güvenlik perspektifinden bakıldığında, SMB versiyon tespiti yalnızca var olan zafiyetlerin tespit edilmesi değil, aynı zamanda ağın genel güvenliğini artırmak için atılacak adımlar hakkında bilgi verir. Örneğin, zayıf SMV sürümlerinin tespitinin ardından, bu protokollerin kapatılması veya devre dışı bırakılması gibi önlemler, ağın siber hijyenini önemli ölçüde artırır. Ek olarak, mesaj imzalama (signing) gibi güvenlik özelliklerinin etkinleştirilmesi, olası 'man-in-the-middle' saldırılarını önlemekte kritik bir rol oynar.

Sonuç olarak, SMB versiyon tespiti, sadece mevcut zafiyetleri gün yüzüne çıkarmakla kalmaz; aynı zamanda organizasyonların güvenlik durumunu güçlendiren proaktif bir yaklaşım sunar. Bu nedenle, SMB versiyon tespiti, sızma testlerinde önemli bir aşama ve genel güvenlik stratejisinin ayrılmaz bir parçası olarak değerlendirilmelidir.

Teknik Analiz ve Uygulama

Nmap ile Otomatik Versiyon Tespiti

SMB sürümlerinin tespiti için Nmap aracı oldukça etkilidir. Nmap’in yerleşik betikleri kullanarak hedef sunucunun hangi SMB lehçelerini desteklediği ve en yüksek sürümle iletişim kurabildiği tespit edilebilir. Aşağıdaki komut, bir hedef IP adresinde SMB protokolü sürümlerini taramak için kullanılabilir:

nmap -p 445 --script smb-protocols <hedef_ip>

Bu komut, hedef IP üzerinde 445 numaralı portu dinleyen SMB hizmetinin hangi sürümünü desteklediğini gösterecektir. Tarama sonucunda, her sürüm için uygun lehçe kodları ile birlikte hangi özelliklerin mevcut olduğu bilgisi sağlanacaktır.

SMB Versiyon Hiyerarşisi

SMB protokolü, tarihsel olarak birçok değişim ve iyileştirmeye tabi tutulmuştur. Protokol, SMBv1 olarak bilinen ilk sürümünden, günümüzde yaygın olarak kullanılan SMBv3.1.1 sürümüne kadar evrilmiştir. SMBv1 genellikle "CIFS" (Common Internet File System) olarak da adlandırılır ve artık modern ağlarda kullanılması önerilmez. Çünkü güvenlik açıkları ve performans sorunları barındırmaktadır.

  • SMBv1 (CIFS): Eski ve güvensiz sürüm.
  • SMBv2: Performans iyileştirmesi sağlarken, mesaj imzalamanın geliştirdiği bir versiyon.
  • SMBv3: Uçtan uca şifreleme özelliği ve modern Windows sistemlerinde varsayılan güvenli sürümdür.

Bu sürümlerin her biri, veriyi güvenli bir şekilde iletmek için farklı mühürleme teknikleri kullanmaktadır.

Protokol Müzakeresi (Negotiation)

Bağlantı başladığında, istemci sunucuya desteklediği SMB protokol sürümlerinin bir listesini gönderir. Bu sürece "Negotiation" denir. Sunucu, istemcinin sunduğu en yüksek protokol sürümünü seçer ve yanıt olarak geri döner. Bu aşama, istemci ile sunucu arasında hangi sürümle iletişim kurulduğunu belirlemek açısından kritik öneme sahiptir.

smbclient ile Manuel Sorgulama

Otomatik araçlar yerine manuel testler yapmak bazen gerekli olabilir. Örneğin, smbclient aracı kullanılarak belirli bir versiyonla bağlantı kurulabilir. Aşağıdaki komut, yalnızca SMBv2 protokolü üzerinden bağlantı denemesi yapmak için kullanılabilir:

smbclient -L <hedef_ip> -m SMB2

Bu komutla, hedef sunucunun SMBv2 üzerinden paylaşımlarını listelemek mümkündür. Eğer sunucu SMBv2 destekliyorsa, bağlantı sağlanacaktır; aksi takdirde hata alınabilecektir.

Güvenlik Özellikleri Analizi

Her SMB versiyonu, verinin güvenliğini artırmak amacıyla kendine özgü güvenlik özellikleri sunar. Örneğin:

  • Message Signing: Paketlerin değiştirilmediğini kanıtlar ve relay saldırılarını önler.
  • Encryption: SMBv3 ile gelen bu özellik, verinin ağ üzerinde düz metin olarak okunmasını engeller.
  • Pre-Auth Integrity: Müzakere aşamasındaki paketlerin kurcalanmasını önleyen gelişmiş bir gözaltı (integrity) mekanizmasıdır.

Bu özelliklerin doğru yapılandırılması, ağın güvenliğini artırır ve siber saldırılara karşı koruma sağlar.

Zafiyet: SMBv1 Exposure

SMBv1, modern ağlarda "ölü" bir protokol kabul edilir ve açık olduğu takdirde büyük güvenlik riskleri doğurur. Özellikle, parolasız bilgi toplamak için kullanılabilen null session açıkları mevcuttur. Bu nedenle, SMBv1’in kapatılması ağ güvenliği açısından kritik öneme sahiptir.

Metasploit ile Versiyon Taraması

Sızma testlerinde otomatik araçlar kullanılarak yapılan taramalar, daha hızlı ve kapsamlı analiz yapma imkanı sunar. Metasploit üzerinde SMB versiyon tespit modülünü kullanmak için aşağıdaki komut kullanılabilir:

use auxiliary/scanner/smb/smb_version

Bu komut, belirtilen hedeflerdeki SMB versiyonlarını taramak için Metasploit’in SMB versiyon tespit modülünü aktive eder. Tarama sonucunda, açık olan SMB sürümleri ve bunların güvenlik özellikleri hakkında bilgi alabilirsiniz.

Lehçe (Dialect) Kodları

SMB versiyonları, belirli "lehçe" numaralarıyla temsil edilir. Örneğin, 0x0202 kodu SMBv2’nin ilk stabil sürümünü, 0x0311 kodu ise SMBv3.1.1'i temsil etmektedir. Bu kodlar, protokol müzakeresi sırasında kullanılarak istemci ve sunucu arasındaki uyumluluğu belirler.

Güvenlik Bariyeri: SMB Signing

SMB mesaj imzalama (“signing”), verilerin doğruluğunu sağlamak için önemli bir güvenlik önlemidir. Saldırganlar, imzalamayı devre dışı bıraktıklarında, trafiği araya girerek başka bir hedefe yönlendirme yapılabilir. Bu nedenle, imzalama özelliğinin etkin olması önerilir.

Wireshark ile Paket Analizi

Wireshark, ağ trafiğini gerçek zamanlı olarak izlemek ve analiz etmek için kullanılan güçlü bir araçtır. Sadece SMBv2 ve üzeri trafiği filtrelemek için kullanılacak komut aşağıda verilmiştir:

smb2

Bu filtre, trafiği önemli ölçüde daraltarak yalnızca güvenli ve modern protokollerin analiz edilmesine olanak tanır.

İyileştirme (Remediation)

Zayıf SMB sürümlerini kapatmak, ağın genel siber hijyenini artırmak ve saldırılara karşı korunma sağlamak açısından kritik önem taşır. Güçlü bir güvenlik politikası oluşturmak, ağda görünmez risklerin açığa çıkmasını sağlayarak sızma testi sürecinin sağlam bir temele oturmasını sağlar.

Nihai Hedef: Visibility

Siber güvenlikte "görünürlük" birçok mücadelenin anahtarıdır. Ağınızdaki cihazları ve bunların güvenlik durumunu, SMB oturumları da dahil olmak üzere sürekli izlemek, olası tehditleri önceden fark etmek için gereklidir. Bu, ağ güvenliği yönetiminde etkili bir yaklaşım sağlar ve başarısızlıklara karşı duyarlılığı artırır.

Risk, Yorumlama ve Savunma

Sızma testleri sırasında SMB (Server Message Block) protokolü sürüm tespiti, ağın güvenliğini değerlendirmek açısından kritik öneme sahiptir. Bu süreç, hedef sistemin güvenlik durumunu, potansiyel tehditlerini ve olası zafiyetleri anlamaya yardımcı olur. Aşağıda, bu bağlamda önemli noktaları değerlendiriyoruz.

Elde Edilen Bulguların Güvenlik Anlamı

SMB protokol sürüm tespiti sonucunda elde edilen bilgiler, saldırganların sistem üzerinde gerçekleştirebileceği olası saldırı yüzeylerini belirlemek için önemlidir.

Örneğin, bir sistemin hala SMBv1 kullandığını tespit etmek, ciddi bir güvenlik açığı anlamına gelir. SMBv1, modern siber tehditlere karşı savunmasızdır ve parolasız oturum (null session) gibi saldırılara kapı açabilir.

nmap -p 445 --script smb-protocols <hedef_ip>

Yukarıdaki Nmap komutuyla, hedef sistemdeki SMB protokol sürümleri taranabilir. Elde edilen çıktılar, hangi sürümlerin aktif olduğunu ve hangi güvenlik risklerinin mevcut olduğunu göstermektedir.

Yanlış Yapılandırmalar ve Zafiyetler

Yanlış yapılandırmalar, ağın güvenliğini ciddi şekilde tehlikeye atabilir. Örneğin, SMB Signing özelliğinin kapalı olması, araya girme (man-in-the-middle) saldırılarına yol açabilir. Bu durumda saldırgan, veri trafiğini kontrol edebilir ve hassas bilgileri çalabilir.

Aşağıda, SMB Signing’in kapalı olduğu bir senaryoda olası bir açıklığı gösteren bir Wireshark istatistiği örneği bulunmaktadır:

No.     Time           Source                Destination           Protocol Length Info
1       0.000000      192.168.1.10         192.168.1.20          SMB      146    Session Setup AndX Request, User: Guest

Elde edilen bu tür trafikte, SMB Signing’in kapalı olması durumunda istemci ve sunucu arasındaki veri bütünlüğü tehlikeye girebilir.

Sızma Testlerinde Önemli Öğeler

Sızma testleri sırasında, elde edilen bulguların anlamı derinlemesine araştırılmalıdır:

  • Topoloji: Ağ yapısının analizi, hangi sistemlerin birbirleriyle iletişimde olduğunu ve hangi güvenlik katmanlarının oluşturulduğunu anlamak adına kritik öneme sahiptir.
  • Servis Tespiti: Hedef ağda hangi SMB sürümlerinin çalıştığını ve bunların hangi hizmetlerle bağlantılı olduğunu belirlemek, potansiyel saldırı vektörlerini açığa çıkarır.
  • Zafiyetler: Özellikle eski sürümler, güncel olmayan sistemler ve zayıf yapılandırmalar, potansiyel siber saldırganlar için hedef teşkil eder.

Savunma Önlemleri ve Hardening Önerileri

SMB protokolüne dair zafiyetlerin ortadan kaldırılması amaçlanıyorsa aşağıdaki önlemler alınmalıdır:

  1. SMBv1’i Devre Dışı Bırakın: SMBv1, eski ve güvenlik açıklarıyla dolu bir protokoldür. Bu protokolü devre dışı bırakmak için PowerShell veya Group Policy kullanabilirsiniz.

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  2. Mesaj İmzalamayı Zorunlu Kılın: Mesaj imzalama, paketlerin değiştirilmediğini garantileyerek araya girme saldırılarını önlemeye yardımcı olur. Tüm istemcilerin bu özelliği kullanmasını sağlamak için yapılandırmalarınızı güncelleyin.

  3. SMBv2 ve SMBv3 Kullanımı: Daha yeni sürümler olan SMBv2 ve SMBv3’ü kullanmak, performans iyileştirmelerinin yanı sıra şifreleme ve veri bütünlüğü sağlama özellikleri sunar.

  4. Ağ Görünürlüğünü Arttırın: Tüm ağ trafiğini sürekli izlemek, sıradışı etkinlikleri fark etmeye yardımcı olur. Bu bağlamda, Wireshark gibi araçlar kullanarak ağ trafiğini analiz etmek faydalı olabilir.

Sonuç Özeti

SMB versiyon tespiti, bir ağın güvenlik durumu hakkında kritik bilgiler sunar. Yanlış yapılandırmalar ve zayıf protokollerin bulunması, sistemlerin maruz kalabileceği riskleri artırır. Güvenliğin artırılması için, eski protokollerin devre dışı bırakılması, mesaj imzalamanın zorunlu hale getirilmesi ve ağın sürekli izlenmesi gerekir. Bu tür önlemler, organizasyonların siber hijyenini artırarak güvenlik açıklarını minimize edecektir.