CyberFlow Logo CyberFlow BLOG
Smb Pentest

SMBGhost Zafiyeti: Derinlemesine Teknik Analiz

✍️ Ahmet BİRKAN 📂 Smb Pentest

SMBGhost zafiyeti hakkında detaylı bir teknik analiz. SMBv3 zafiyetinin tespiti ve istismarıyla ilgili önemli bilgiler burada.

SMBGhost Zafiyeti: Derinlemesine Teknik Analiz

Bu yazıda, SMBGhost (CVE-2020-0796) zafiyetinin teknik analizi yapılacak. Zafiyete dair tespit yöntemleri ve istismar süreçleri hakkında derinlemesine bilgiler sunulacak.

Giriş ve Konumlandırma

SMBGhost, resmi adıyla CVE-2020-0796, özellikle Windows işletim sistemlerinde önemli bir siber güvenlik açığı olarak tanımlanıyor. Bu zafiyet, Microsoft'un Server Message Block (SMB) protokolünün 3.1.1 sürümünde bulunuyor ve hem Windows 10 hem de Windows Server 1903 ve 1909 sürümlerini etkiliyor. Zafiyetin temel kaynağı, SMB'nin sıkıştırma özelliğindeki bir mantık hatasıdır. Söz konusu hata, uzaktan kod çalıştırma (RCE) ve yetki yükseltme (LPE) potansiyeline sahip olması nedeniyle çok kritik bir tehdit oluşturmakta.

Zafiyetin Önemi

SMBGhost, özellikle zararlı yazılımların ağ üzerinde yayılmasına olanak tanıyan bir "wormable" zafiyettir. Bu özellik, bir saldırganın sadece bir cihazı hedefleyerek, o cihazın bağlantılı olduğu diğer sistemlere de ulaşabileceği anlamına gelir. Dolayısıyla, SMBGhost bulgusu, bireysel sistemlerin ötesine geçerek kurumsal ağlar için bir tehdit haline gelmektedir. Bu nedenle, siber güvenlik uzmanları ve sistem yöneticileri için SMBGhost'un anlaşılması ve etkilerinin değerlendirilmesi kritik bir önem taşır.

Teknik Bağlamda Zafiyetin Yapısı

Zafiyetin işleyişi, ağ üzerindeki darbelere ve sistem altyapısına etki ederken, bu durum, penetrasyon testleri (pentest) ve siber güvenlik savunma stratejilerinin geliştirilmesi açısından da dikkate alınmalıdır. Saldırganlar, SMBGhost üzerinden sistem yönetici yetkileri ile komut çalıştırabilirler. Böylece, sistemlerin güvenlik duvarını aşarak ve yetkisiz erişim sağlayarak daha büyük zararlara yol açabilirler.

Bir saldırının başarılı olabilmesi için, hedef sistemin bellek adreslerinin rastgeleleştirilmesini sağlayan KASLR (Kernel Address Space Layout Randomization) gibi güvenlik uygulamalarını aşması da gerekli olmaktadır. Aksi takdirde, zafiyet istismar edilemez hale gelir.

Hazırlık ve Önlemleme

SMBGhost zafiyetinin etkilerini azaltmanın en etkili yollarından biri, sistemlerde SMB sıkıştırma özelliğinin devre dışı bırakılmasıdır. Bu işlem, PowerShell aracılığıyla gerçekleştirilebilir:

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' DisableCompression -Value 1

Bu komut, sistemin SMB sıkıştırma özelliğini kapatarak, potansiyel bir saldırganın bu zafiyeti kullanmasını engellemeye yardımcı olur. Buna ek olarak, yama yüklenene kadar ağda koruyucu önlemlerin alınması gerekmektedir. Bu, güvenlik politikasının yeniden değerlendirilmesi ve sistemlerin doğru bir şekilde güncellenmesini içermektedir.

Sonuç

SMBGhost zafiyetinin daha iyi anlaşılması, hem sistem yöneticileri hem de güvenlik uzmanları için kritik bir adım olmalıdır. Zafiyetin teknik detaylarını incelemek ve olası saldırı vektörlerini anlamak, etkili savunma mekanizmalarının kurulmasına olanak tanır. Bu bağlamda, kurumsal ağların güvenliğini sağlamak için proaktif yaklaşımlar geliştirilmesi büyük önem taşımaktadır. Önümüzdeki bölümlerde, SMBGhost zafiyetinin teknik analizi, tarama yöntemleri ve istismar süreçleri hakkında derinlemesine bilgi verilecektir.

Teknik Analiz ve Uygulama

SMBv3.1.1 Tespiti

SMBGhost zafiyetinin analizi, öncelikle hedef sistemlerin SMBv3.1.1 protokol desteğini belirlemekle başlar. Bu zafiyet, yalnızca Windows 10 ve Server 1903/1909 sürümlerini etkileyen bir açık olduğundan, sistemlerin bu sürümlerin üzerinde çalıştığını doğrulamak önemlidir. Nmap aracı kullanarak hedef sistemde SMBv3 desteğini tespit etmek için aşağıdaki komutu kullanabiliriz:

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

Bu komut, belirtilen hedef IP adresinde SMB protokollerinin desteklenip desteklenmediğini hızla belirleyecektir.

Zafiyetin Kaynağı: Sıkıştırma

SMBGhost zafiyetinin kökeni, SMB'nin veri iletimi sırasında kullanılan Sıkıştırma özelliğinde yatar. SMB protokolü, ağ üzerinden verilerin hızlı iletimini sağlamak için sıkıştırma yöntemi kullanırken, bu işlem sırasında bir mantık hatası oluşur. Bu hata, sistemin bellek yönetiminde yanlış hesaplamalara yol açarak zafiyete neden olur. Sıkıştırma alanlarında bir integer overflow gerçekleştiğinde, sunucu üzerinde uzaktan kod çalıştırma (RCE) imkanı ortaya çıkar.

Zafiyet Taraması

Zafiyetin bulunması için bazı özel tarama araçları mevcut. Örneğin, GitHub’da popüler olarak kullanılan bir Python scripti ile, hedef sistemde SMBGhost zafiyetinin varlığı kontrol edilebilir. Aşağıda basit bir kullanım örneği mevcut:

import requests

def check_smbghost(target_ip):
    response = requests.get(f"http://{target_ip}/smbghost-check")
    return response.status_code == 200

target_ip = "<hedef_ip>"
if check_smbghost(target_ip):
    print("[*] SMBGhost zafiyeti tespit edildi.")
else:
    print("[*] Zafiyet bulunamadı.")

Bu script, hedef IP ile bağlantıya geçip zafiyetin mevcut olup olmadığını kontrol eder.

Teknik Hata: Integer Overflow

SMBGhost, gönderilen bir SMB paketi içerisinde hesaplanan verilerin beklenmedik bir şekilde bellek sınırını aşması (integer overflow) sebebiyle oluşan bir zafiyettir. Bu durumda, sistem üzerinde hangi kontrollere tabi olduğunuz önemli hale gelir. Paketin boyutu hesaplandığında, bu hesaplama sonucu elde edilen değer, bellekte yanlış bir alan ayırarak sistem üzerinde yetkisiz işlemlere olanak tanır.

Zafiyet Mekanizması: RCE

Uzaktan kod yürütme (RCE) yeteneği, saldırganın zafiyet üzerinden sistemin kontrolünü ele geçirmesi anlamına gelir. Bu durum, özellikle hedef sistemin belirtilen güvenlik güncellemelerine sahip olmaması halinde oldukça tehlikeli bir durum teşkil etmektedir. Tespit edilen zafiyetin varlığında, saldırgan sistem üzerinde işlem yapabilme yetkisine sahip olur.

Metasploit ile İstismar

Metasploit framework kullanılarak SMBGhost zafiyetinin istismar edilmesi mümkündür. Aşağıdaki adımlar, Metasploit'te bu exploit modülünü yüklemek için izlenmelidir:

msfconsole
use exploit/windows/smb/cve_2020_0796_smbghost
set RHOST <hedef_ip>
exploit

Bu komutlar, belirtilen hedef IP üzerinde exploit'i çalıştırarak sistem belleğine başarılı bir sızma sağlar. Sızma başarılı olursa, bir Meterpreter oturumu açılacaktır.

Tespit ve Analiz (Wireshark)

Zafiyet istismar ettikten sonra, ağ üzerindeki trafiği analiz etmek için Wireshark aracı kullanılabilir. SMBGhost trafiğinin belirli karakteristik başlıkları (Compress Transform Header) bulunmaktadır. Bu başlıkları tespit ederek, kullanılan protokol ve olası veri akışlarını incelemek mümkündür. Wireshark ile filtreleme yapmak için aşağıdaki komutu kullanabiliriz:

smb2

Bu filtre, SMBv2 ve üzeri trafiği gösterir ve zafiyetler üzerine yapılacak analizlerde fayda sağlar.

Kritik Bypass: KASLR

KASLR (Kernel Address Space Layout Randomization), çekirdek bellek adresinin rastgeleleştirilmesini sağlayarak zafiyeti etkin bir şekilde azaltmak için kullanılan bir önlemdir. Zafiyeti kullanarak sistem üzerinde yetki kazanma girişimlerinde bulunulduğunda, KASLR sayesinde saldırının başarılı olması zorlaşır. Aksi takdirde, bellek adresleri belirli bir sıraya bağlı kalmadığı için saldırganın kodu çalıştırması daha karmaşık hale gelir.

Acil Önlem (Workaround)

SMBGhost zafiyetine karşı acil bir önlem almak için, SMB sıkıştırma özelliğinin devre dışı bırakılması önerilir. Bunun için şu PowerShell komutunu kullanarak gerekli değişiklik yapılabilir:

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' DisableCompression -Value 1

Bu komut, hedef sistemde yoğunluklu olarak kullanılan SMB sıkıştırma özelliğini kapatmayı sağlar ve zafiyetin saldırıya açık olmasını engeller.

İyileştirme (Hardening)

Zafiyetin etkilerinin azaltılması için sistemin önemli güncellemelerle hardening edilmesi gerekmektedir. Microsoft'un Mart 2020 güvenlik güncellemesinin uygulanması, bu zafiyeti kalıcı olarak mühürlemek için kritik bir adımdır. Güncellemelerin uygulanması, sistemin güvenliğini artırır ve gelecekte aynı türdeki saldırılara karşı koruma sağlar.

Nihai Hedef: Integrity

Siber güvenlikte, verinin ve belleğin saflığının korunması ilkesi "Bütünlük" olarak adlandırılır. SMBGhost testleri boyunca, sistem belleğinin yetkisizce manipüle edilmesini önlemek, bu ilkenin korunması açısından büyük bir önem taşır. Bütünlük ilkesi, sistemlerin güvenliğini sağlamak için temel bir gerekliliktir ve tüm bu süreçlerin hedefidir.

Risk, Yorumlama ve Savunma

Risk Değerlendirmesi

SMBGhost zafiyeti (CVE-2020-0796), SMBv3 protokolündeki bir mantık hatasından kaynaklanmaktadır. Bu zafiyet, kötü niyetli bir aktörün ağ üzerinden uzaktan kod çalıştırmasına ve belirli durumlarda yetki yükseltmesine imkan tanır. Özellikle, SMB Compression özelliğindeki bir integer overflow hatası, saldırganların uzaktan kod çalıştırmasını (RCE) sağlarken, bu durum kendiliğinden yayılan bir zafiyet olması nedeniyle oldukça tehlikeli hale gelir. SMBGhost, yalnızca Windows 10 ve Server 1903/1909 sürümlerini etkiler ve bu sistemlerin sızdığı durumlarda, kurumsal ağ güvenliği açısından ciddi riskler doğurur.

Tehdit analizi açısından, iş yerlerinde kullanılan SMBv3 protokolü üzerindeki taramalar, potansiyel zafiyetleri ve tehditleri tespit etmek için kritik öneme sahiptir. SMBv3 desteğini tespit etmek için kullanılan nmap gibi araçlar, ağ yöneticilerine uzaktan erişim sağlamak isteyen saldırganları belirlemek için faydalıdır.

nmap -p 445 --script smb-protocols target_ip

Yukarıdaki komut, belirli bir hedefin SMB protokol sürümünü mühürlemeye yarar. Eğer sistem SMBv3.1.1 destekliyorsa, saldırı yüzeyi önemli ölçüde artmaktadır.

Yorumlamanın Önemi

Bir zafiyetin yorumlanması, onun etkilerini ve muhtemel sonuçlarını anlamak açısından hayati önemdedir. SMBGhost’un kendine özgü özellikleri, sistem yöneticilerinin dikkat etmesi gereken birçok durumu içermektedir. Özellikle, yöntemi ile başarısız bir ağ trafiği analizi veya yanlış yapılandırmalar, basit bir zafiyetten daha karmaşık güvenlik sorunlarına yol açabilir. Örneğin, ağda mevcut olan bellek adreslerini rastgeleleştiren KASLR (Kernel Address Space Layout Randomization) özelliğinin atlanması, saldırganların exploit'lerini daha etkili bir biçimde kullanmasına olanak tanır.

Sistem yöneticileri, SMB sıkıştırma özelliği gereksiz ise, PowerShell kullanarak devre dışı bırakmalıdırlar:

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' DisableCompression -Value 1

Bu komut, sistemin ağda maruz kalabileceği riskleri minimize etmek için önemli bir ilk adımdır.

Savunma Stratejileri

SMBGhost zafiyetine karşı koruma sağlamak için uygulanabilecek birkaç öneri bulunmaktadır:

  1. Aciliyet ve Yamanın Yaygınlaştırılması: Microsoft tarafından sağlanan yamanın uygulanması, organizasyonların bu tür zafiyetlerden korunmasında atılacak en kritik adımdır. Yamanın uygulaması ardından, sistemlerinizi şüpheli aktiviteler açısından belirli aralıklarla kontrol etmek önem taşımaktadır.

  2. Ağ Segmentasyonu: Ağ trafiğini segmentlere ayırarak kritik sistemlerinizi daha az erişilebilir hale getirebilirsiniz. Bu sayede zafiyetin üzerine geldiği sistemler, diğer sistemlerle olan etkileşimlerini sınırlı tutar.

  3. Güvenlik Duvarı ve IPS Kuralları: Dışardan gelen SMB isteklerinin engellenmesi için firewall kurallarını güncelleyebilirsiniz. Aynı zamanda, IDS/IPS sistemlerinde 0xFC imzalı anormal paketleri izlemek ve engellemek için kurallar eklenmesi önerilmektedir.

Sonuç

SMBGhost zafiyeti ciddi bir siber güvenlik tehdidi oluşturmaktadır. Uzaktan kod çalıştırma yeteneği, potansiyel veri sızıntıları ve sistemin bütünlüğü açısından riske yol açmaktadır. Bu nedenle, zafiyetin etkilerini anlamak ve uygun savunma mekanizmalarını uygulamak hayati önem taşımaktadır. Kurumsal ağın güvenliği ancak dikkatli bir risk değerlendirmesi ve etkili savunma önlemleri ile sağlanabilir. Zafiyeti etkisiz hale getirecek en etkili çözüm, düzenli güncellemeler ve bilinçli yapılandırma ile başlar.