Windows Sızma Testlerinde MS17-010 Zafiyetinin Tespiti

0
391
views

 

Sızma testleri sırasında tespit edilen zafiyetlerin istismarı ile hedef sistemlerde bir takım yetkiler elde edilebilir. Bu yazıda Windows 7 (32 bit) ve Windows Server 2008 R2 (64 bit) işletim sistemlerindeki MS17-010 zafiyetinin tespit yöntemleri incelenecektir.

2017 yılı başlarında Shadow Brokers ekibi tarafından yayınlanan ve NSA‘e (National Security Agency) ait olduğu belirtilen bir çok araç yayınlanmıştır. Bu araçlardan birisi de bir çok Windows işletim sistemini etkileyen Eternalblue & Doublepulsar olarak bilinen ve MS17-010 olarak da isimlendirilen zafiyeti istismar etmek için kullanılabilen araçlardır. Bu zafiyetten etkilenen işletim sistemleri listesi aşağıdaki gibi sıralanabilir.

  • Unify OpenStage Xpert 6010p 5R1
  • Unify OpenStage Xpert 6010p 5
  • Microsoft Windows Vista x64 Edition SP2
  • Microsoft Windows Vista SP2
  • Microsoft Windows Server 2012 R2 SP0
  • Microsoft Windows Server 2012 SP0
  • Microsoft Windows Server 2008 R2 for x64-based Systems SP1
  • Microsoft Windows Server 2008 R2 for Itanium-based Systems SP1
  • Microsoft Windows Server 2008 for x64-based Systems SP2
  • Microsoft Windows Server 2008 for Itanium-based Systems SP2
  • Microsoft Windows Server 2008 for 32-bit Systems SP2
  • Microsoft Windows RT 8.1
  • Microsoft Windows 8.1 for x64-based Systems SP0
  • Microsoft Windows 8.1 for 32-bit Systems SP0
  • Microsoft Windows 7 for x64-based Systems SP1
  • Microsoft Windows 7 for 32-bit Systems SP1
  • Microsoft Windows 10 Version 1607 for x64-based Systems SP0
  • Microsoft Windows 10 Version 1607 for 32-bit Systems SP0
  • Microsoft Windows 10 version 1511 for x64-based Systems SP0
  • Microsoft Windows 10 version 1511 for 32-bit Systems SP0
  • Microsoft Windows 10 for x64-based Systems SP0
  • Microsoft Windows 10 for 32-bit Systems SP0

 

MS17-010 zafiyeti ile ilgili yayınlanan CVE listesi aşağıdaki gibi sıralanabilir

  • CVE-2017-0143
  • CVE-2017-0144
  • CVE-2017-0145
  • CVE-2017-0146
  • CVE-2017-0147
  • CVE-2017-0148

 

Bu yazı kapsamında MS17-010 zafiyetinin farklı yöntemler ile tespiti incelenecektir.

 

A) Nmap ile MS17-010 Zafiyeti Keşfi

Nmap aracı ile zafiyetin keşfi gerçekleştirilebilir. Nmap raporuna görsellik katmak amacı ile stil dosyaları da kullanılabilir. Bu amaçla öncelikle stil dosyası indirilebilir.

wget https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl
file nmap-bootstrap.xsl

 

Örnek XSL dosyaları aşağıdaki gibi sıralanabilir.

  • https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl
  • https://svn.nmap.org/nmap/docs/nmap.xsl

 

Sonrasında örnek bir tarama gerçekleştirilebilir.

nmap -Pn -sV -A –script vuln -oA sonuc –stylesheet nmap-bootstrap.xsl 192.168.100.128/27

 

Elde edilen XML dosyası bir web tarayıcı ile açılabilir.

firefox sonuc.xml

 

Açılan dosya incelendiğinde, 3 ana başlık görülmektedir. “Scanned Hosts” adı verilen ilk başlık altında her IP için açık TCP ve UDP port port adetleri belirtilmektedir.

 

İkinci ana başlık olan “Online Hosts” başlığı altında ise, her IP adresindeki tespit edilen portta çalışan servis detayı ile birlikte verilir.

 

Zafiyet bulunması durumunda da zafiyetler listelenir.

 

Üçüncü ve son ana başlık olan “Open Services” başlığında ise her IPde açık olduğu tespit edilen port detayları filtrelenebilir tablo halinde sunulur.

 

Filtreleme yanında arama işlemi de gerçekleştirilebilir.

 

Not: Github honze-net kaynağındaki “nmap-bootstrap.xsl” yerine Nmap sitesinde sunulan “nmap.xsl” dosyasının (https://svn.nmap.org/nmap/docs/nmap.xsl) kullanılması ile elde edilen sonuca ait ekran görüntüsü ise aşağıdaki gibidir. Bu şekilde yapılan bir tarama sonucunda ise tek bir tabloda her IP için açık portlar ve servisler altalta listelenmektedir.

 

Not: Aynı sonuç hedef odaklı olarak Nmap smb-vuln-ms17-010.nse betiği kullanılarak da elde edilebilirdi.

nmap -Pn -n –open -sV -p139,445 –script smb-vuln-ms17-010 192.168.100.128/27

 

Sonuç olarak ağdaki 192.168.100.129 ve 192.168.100.153 makinelerinde MS17-010 zafyetinin mevcudiyeti tespit edilmiştir.

 

B) MSF smb_ms17_010 Auxiliary Modülü ile MS17-010 Zafiyeti Keşfi

MSF üzerindeki smb_ms17_010 auxiliary modülü kullanılarak MS17-010 zafiyetinin varlığı tespit edilebilir.

msfconsole -q
search ms17-010 type:auxiliary
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.100.128/27
set ShowProgress false
run

 

Modülün çalıştırılması ile temel olarak 2 sonuç elde edilebilir.

  • Hedef sistemde zafiyet varsa “…Host is likely VULNERABLE to MS17-010!…” mesajı dönülerek hedefin muhtemel işletim sistemi bilgisi elde edilir.
  • Hedef sistemde Antivirüs gibi bir koruma mekanizması varsa, (VERBOSE modda) “…Errno::ECONNRESET: Connection reset by peer” gibi Ruby kütüphanesine ait hata mesajı alınabilir.
  • Hedef sistemde TCP\445 portuna erişilmesine rağmen MS17-010 zafiyetinin olmadığı düşünülüyorsa “…Host does NOT appear vulnerable.” gibisinden bir mesaj dönülür.

 

C) Github nixawk Hesabına Ait Betik ile MS17-010 Zafiyeti Keşfi

Github’daki nixawk hesabında bir çok zafiyete yönelik tespit veya istismar betiği bulunmaktadır.

https://github.com/nixawk/labs

 

Bu betiklerden MS17-010 tespiti için hazırlanan betik indirilir. Betiğe hedef IP verildiğinde zafiyetin bulunma durumu ile ilgili çeşitli sonuçlar elde edilebilir.

wget https://raw.githubusercontent.com/nixawk/labs/master/MS17_010/smb_exploit.py
python smb_exploit.py 192.168.100.129
python smb_exploit.py 192.168.100.153
python smb_exploit.py 192.168.100.1
python smb_exploit.py 192.168.100.138
python smb_exploit.py 192.168.100.180

 

Bu durumlar aşağıdaki gibi sıralanabilir.

  • Hedef sistemde zafiyet varsa “…is likely VULNERABLE to MS17-010!…” mesajı dönülerek hedefin muhtemel işletim sistemi bilgisi elde edilir.
  • Hedef sistemde Antivirüs gibi bir koruma mekanizması varsa, “…Exception: [Errno 104] Connection reset by peer” gibi Python kütüphanesine ait hata mesajı alınabilir.
  • Hedef sistemde TCP\445 portuna erişilmesine rağmen MS17-010 zafiyetinin olmadığı düşünülüyorsa “…does NOT appear vulnerable…” gibisinden bir mesaj dönülür.
  • Hedef sisteme erişim sağlanamadı ise, “…Exception: [Errno 113] No route to host” gibi Python kütüphanesine ait hata mesajı alınabilir.

 

D) Github worawit Hesabına Ait Betik ile MS17-010 Zafiyeti Keşfi

Github’daki worawit hesabında MS17-010 zafiyetinin tespitine ve istismarına ait bir çok betik ve araç bulunmaktadır.

https://github.com/worawit/MS17-010

 

İlgili proje indirilip checker.py betiği ile MS17-010 zafiyeti için tespit işlemi gerçekleştirilebilir.

git clone https://github.com/worawit/MS17-010.git
cd MS17-010/
python checker.py
python checker.py 192.168.100.129
python checker.py 192.168.100.153
python checker.py 192.168.100.1
python checker.py 192.168.100.138

 

Modülün çalıştırılması ile temel olarak 3 sonuç elde edilebilir.

  • Hedef sistemde zafiyet varsa “…The target is not patched…” mesajı dönülerek hedefin muhtemel işletim sistemi bilgisi ve ek olarak erişilebilen PIPE bilgileri elde edilir.
  • Hedef sistemde TCP\445 portuna erişilmesine rağmen MS17-010 zafiyetinin olmadığı düşünülüyorsa, hedefin muhtemel işletim sistemi bilgisi ve “The target is patched” gibisinden bir mesaj dönülür.
  • Hedef sisteme erişim sağlanamadı ise, “…socket.error: [Errno Connection error (…:445)] [Errno 113] No route to host” gibi Python kütüphanesine ait hata mesajı alınabilir.

 

Kaynaklar:

https://www.securityfocus.com/bid/96705
https://canyoupwn.me/tr-ms17-010-zafiyeti-ve-korunma-yontemleri/

İç Ağ Sızma Testi Senaryosunda Kullanılabilecek Araç ve Yöntemler

Manually Exploiting MS17-010


http://waf1337.blogspot.com/2017/12/tutorial-ms17-010-in-android-world.html

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz