Saldırgan Güvenlikte Windows İşletim Sistemi
Windows, Microsoft tarafından ilk defa 1985 yılında yayınlanmış olup şahıs ve kurumlar için en çok tercih edilen işletim sistemlerinden biridir. Windows siber güvenlik sektörünün var olmasında çok büyük bir katkı payına sahiptir. Katkı payının yüksek olması birçok tehlikeyi de beraberinde getirmektedir. Makale içerisinde Microsoft Windows işletim sistemlerine yönelik kurumsal ve kullanıcı bazında gündelik kullanımlar içerisinde gerçekleştirilebilme potansiyeli olan saldırı teknikleri uygulamalı bir şekilde göz önünde bulunduruldu. Bu makale Windows Server güvenliğine odaklanır. Bu makale okunduktan sonra Windows işletim sistemine yönelik atak vektörlerine hâkim olacaksınız.
CyberArts Siber Güvenlik Uzmanı Ufukcan Dal
Anahtar Kelimeler
Sızma Testi, Exploit, Windows, Yetki Yükseltme, Bilgi Toplama, Zafiyet Taraması, ISSAF
1. Windows işletim sistemi nedir?
Microsoft Windows, kullanıcıya grafik arabirimler ve görsel iletilerle yaklaşarak, yazılımları çalıştırmak, komut vermek gibi klavyeden yazma zorunluluğunu ortadan kaldıran, Microsoft şirketinin geliştirdiği dünyada en çok kullanılan işletim sistemi ailesidir. Windows, ilk olarak 20 Kasım 1985 tarihinde satışa sunulmuştur.
Windows dünya çapında masaüstü piyasasında yaklaşık %97,46’lık bir pay sahibiydi. 2021 Haziran ayı itibarıyla Windows’un tüm dünyadaki kullanım oranı %72,96’dır. (Wikipedia, 2022)
2. Sızma Testi Metodolojileri Nelerdir?
İşinin ehli bir hacker kendisine hedef olarak belirlediği sisteme sızmak için daha önce edindiği tecrübeler ışığında düzenli bir yol izler. Benzer şekilde sızma testlerini gerçekleştiren uzmanlar da çalışmalarının doğrulanabilir, yorumlanabilir ve tekrar edilebilir olmasını sağlamak için metodoloji geliştirirler veya daha önce geliştirilen bir metodolojiyi takip ederler.
Bu bahsedilen metodolojilerin başında;
- ISSAF (Information Systems Security Assessment Framework)
- OWASP (Open Web Application Security Project)
- OSSTMM (The Open Source Security Testing Methodology Manual)
gelmektedir. İnternetten ücretsiz edinilebilecek bu test metodolojileri incelenerek yapılacak güvenlik denetim testlerinin daha sağlıklı ve tekrar edilebilir sonuçlar üretmesi sağlanabilir.
Metodoloji hazırlanmasında dikkat edilmesi gereken en önemli hususlardan biri sızma test metodolojisinin araç tabanlı (X adımı için Y aracı kullanılmalı gibi) olmamasına dikkat edilmesidir.
Bizim bu makale içerisinde genellikle kullanacağımız metodoloji ISSAF ’dır.
Sızma testlerinde ISSAF (Information Systems Security Assessment Framework) tarafından geliştirilen metodoloji temel alınmıştır. Metodolojimiz dört ana bölüm ve beş alt bölümden oluşmaktadır.
- Bilgi Toplama
- Ağ Haritalama
- Zafiyet Tarama Süreci
- Sızma Süreci
- Erişim Elde Etme ve Hak Yükseltme
- Detaylı Araştırma
- Erişimlerin Korunması
- İzlerin Silinmesi
- Raporlama
1. Bilgi Toplama
Bilindiği üzere sızma testi yapıldığında hedefe istenildiği yerden yaklaşmak her zaman mümkün olmamaktadır. Hedef sistemin durumu göz önüne alındığında birçok karmaşık yapı ile karşılaşılabilmekte ve sızma testi yapan kişiler bazen anlamlandırması zor durumlarla karşılaşabilir. (BGA,2022)
Sızma testlerinde karmaşalardan sıyrılmak ve zor durumları aydınlatabilmek için sistem hakkında bilgi sahibi olmak kritik bir faktördür. Sistem hakkında yeterli bilgi sahibi olunmadığı takdirde test işlemi oldukça fazla uzadığı gibi, sonuçları da çok sağlıklı olmayacaktır. Fazla bilgi sahibi olmanın bir zararı olmayacağı gibi aksine faydası olacaktır.
Bilgi toplama aşamasında pek çok araç kullanılmaktadır, bunların arasında en sık kullanılan bilgi toplama aracı Nmap’i ele alacağız. Nmap ile taranan ağın haritasını çıkarabilir ve ağ makinalarında çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını öğrenebiliriz.
Nmap’in kullanım amaçlarını genel olarak aşağıdaki gibi de inceleyebiliriz;
- Ağ keşif
- Port, servis tarama
- Versiyon tarama
- İşletim sistemi tespiti
- Zafiyet keşfi
- Firewall/IDS atlatma
Nmap kullanırken öncelikle parametreleri tanımamız daha sonra bu parametrelerin kullanım şeklini bilmemiz gerekir.
Nmap çıktıları 3 durumla sonuçlanır bunlar;
- Open: Portun erişilebilir durumda olduğunu belirtir.
- Close: Portun erişilebilir olduğunu fakat üzerinde herhangi bir servis olmadığını belirtir.
- Filtered: Dönen tepkilerin bir paket filtreleme mekanizması tarafından engellendiğini, portun açık veya kapalı olduğuna karar veremediğini ve bir güvenlik cihazı olabileceğini belirtir.
Nmap’in kullanım mantığı şu şekildedir.
- “nmap ‘parametreler’ host”
En sık kullanılan parametreler ise şu şekildedir;
- -A àAgresif tarama opsiyonunu aktifleştirir.
- -p àTaranacak portların belirtildiği parametre.
- -sS àSYN taraması yapılır.
- -sV àAçık portlar üzerinde çalışan servislerin versiyonlarını öğrenmeye çalışır.
- -sC àsV ile versiyon tespiti yapılırken nmap scriptlerini kullanır.
- –script à Script çalıştırmaya yardımcı olur.
- -O àİşletim sistemi tespiti yapmaya yardımcı olur.
- –open à Açık portları getirir.
- -V àNmap sürümünü öğrenirsin
- -T àHız ayarını yapılır. 0-5 arasındadır, varsayılan -T3’tür.
- -Pn àPing atmadan bir tarama işlemi başlatır.
Nmap örnek kullanım şekilleri;
- nmap -p 80,443 -sS -sV hosts (ip) à Http (80) ve Https (443) portlarının servis versiyonlarını kontrol ederler.
- nmap -p “*” hosts (ip) à Tüm portlara tarama gerçekleştirir. (-p “*”) = (-p-)
- nmap –script firewall-bypass hosts à Firewall atlatmak için kullanılan script.
- nmap –script vuln hosts à Zafiyet taraması yapmak için kullanılan script.
- Nmap -sn hosts à Açık makinaları öğrenmek için kullanılan parametre.
Şimdi genel olarak bir makinadan işimize yarayacak pek çok bilgiyi elde ettik ancak bir insanın eliyle kontrol edemeyeceği kadar çok fazla zafiyet bulunmaktadır bunun için yazılımlardan yardım istemeliyiz.
2 adet yazılımı konuk edeceğiz, bunlar Nessus ve Netsparker’dır.
Nessus, sıkça kullanılan kapsamlı bir güvenlik açığı tarama yazılımıdır. Görevi bilgisayar sistemlerinde ve bilgisayar ağlarında potansiyel güvenlik açıklarını tespit etmektir. Yerel ağ testlerinde başarı oranı yüksek olan bu yazılım Windows işletim sistemlerine yönelik pek çok zafiyeti test eder ve test sonucunda tespit edilen bu zafiyetlerin nasıl engelleneceğine yönelik bilgiler sunar.
Netsparker ise aynı şekilde sıkça kullanılan kapsamlı bir güvenlik açığı tarama yazılımıdır. Görevi internet sitelerine yönelik güvenlik açıklarını tespit etmektir. Nessus ile arasındaki en büyük fark, Nessus yerel ağ testlerinde yüksek başarı oranı sergilerken Netsparker ise internet testlerinde daha yüksek başarı oranına sahiptir. Saldırganlar tarafından bu yazılımlar sıklıkla kullanılır ve zafiyet keşfinin ardından sızma sürecine geçmek için hazırlık (silahlanma) aşamasına başlanır. Uygulamalara yönelik örnek resimler aşağıda bulunmaktadır.
Nessus:
NetSparker:
2. Sızma Süreci
Sızma sürecinde enumeration, bilgi toplama ve zafiyet taraması sonucunda elde edilen bilgiler doğrultusunda belirlenen teknikler kullanılarak hedef sisteme erişim elde edilmeye çalışılır.
Bir hedefin güvenlik açıklarını ortaya çıkarmak için XSS, SQL İnjection ve İdor gibi atak vektörleri kullanılır. Test kullanıcıları daha sonra, neden olabilecekleri hasarı anlamak için tipik olarak ayrıcalıkları artırarak, verileri çalma, trafiği durdurma gibi işlemleri gerçekleştirmek için bu güvenlik açıklarından yararlanmaya çalışırlar.
3. Erişimlerin Korunması
Güvenlik açığının istismar edilen sistemde kalıcı bir varlık elde etmek için sistemde birtakım işlemler gerçekleştirilir. Buradaki fikir, bir kuruluşun en hassas verilerini çalmak için genellikle aylarca sistemde kalan gelişmiş kalıcı tehditleri taklit etmektir. En son olarak sistemden istenilen bilgiler bulgu kartlarını oluşturacak olan kanıtları toplamak ve sistemden izleri temizleyerek cihazdan çıkış yapmak.
4. Raporlanma
Ele geçirilen sistemden kritik edinilebilecek bilgilerin kanıtları ile bir şablonda bu bulgular belirtilir. Bu bulgu karlarının içerisinde; bulgunun açıklaması, etkilenen sistemler, çözüm önerisi, risk seviyesi, erişim noktası gibi bilgiler yer almaktadır. Bu rapor kurumunuzun politikasına yönelik güvenilir bir şekilde müşterilere iletilir. Müşteri ile sonrasında raporun hakkında bir görüşme planlanır ve bu görüşmede raporun sunumu gerçekleştirilir. Bu sunum gerçekleştirilirken hedef kurumun aklına takılan sorular cevaplanır ve sızma testi süreci tamamlanır.
3. Saldırı Senaryoları
3.1. Saldırı Senaryoları– 1
İlk uygulamamızda öğrendiğimiz bilgi toplama aracını kullanacağız. Nmap ile hedef makine üzerinde bir script yardımı ile zafiyet taraması gerçekleştireceğiz. Nmap sorgumuzun şu şekilde olması gerekir; nmap –script vuln <HedefIP>
Resimde görüldüğü gibi Vulnerability alanında ms17-010 isminde bir zafiyet bulunmaktadır. Bu zafiyeti Metasploit Framework içerisinde bulunan exploit ile sömürebiliriz.
Bunun için öncelikle Metasploit Framework’ümüzü ‘msfconsole’ komutu ile açmalıyız.
Zafiyetimizi ‘search’ komutu ile aratmalıyız. Sorgumuz şu şekilde olmalıdır; “search ms17-010”
Çıkan sonuçların içerisinde “exploit/windows/smb/ms17_010_eternalblue” sonucunu solunda yazan değere göre ’use X’ veya ‘use exploit/windows/smb/ms17_010_eternalblue’ şeklinde kullanmalıyız.
Gerekli konfigrasyon ayarlarını ‘options’ diyerek inceleyip ayarlarımızı ‘set’ komutu ile yapılandırıyoruz.
Ardından bu ayarların yapınca ‘run’ veya ‘exploit’ yazıp zafiyeti sömürmeye başlayabiliriz.
Sistemde başarılı bir şekilde local admin durumunda giriş yapabildik.
3.2. Saldırı Senaryoları– 2
Bu senaryomuzda ilk senaryomuzda olduğu gibi bir nmap taraması gerçekleştireceğiz.
‘AChat’ isminde bir uygulama olduğunu keşfediyoruz.
Metasploit Framework içerisinde bir exploit olduğunu öğrendik şimdiki aşamada içeride çalışan uygulamayı exploit etmek için ‘msfconsole’ ile Framework’ü açıp varlığını kontrol ediyoruz.
‘Achat exploit’ araması yaptığımda github içerisinde bir exploit bulunduğunu gördük bunu saldırgan makinemize indirip exploit etmeye çalışalım.
Aynı zamanda multi/handler ile dinleme işlemini başlıyoruz.
Öncelikle ‘AChat_Exploit.py’ içeriği derleniyoruz ve sonrasında çalıştırıyoruz.
Sistemden erişim sağlayabildik.
3.3. Saldırı Senaryoları– 3
LLMNR ve NetBIOS Nedir:
LLMNR: Bağlantı-Yerel Çok Noktaya Yayın Ad Çözümlemesi hem IPv4 hem de IPv6 ana bilgisayarlarının aynı yerel bağlantıdaki ana bilgisayarlar için ad çözümlemesi gerçekleştirmesine izin veren Etki Alanı Adı Sistemi paket biçimine dayalı bir protokoldür. (Wikipedia, 2021)
NetBIOS (Network Basic Input/Output System): Ağ’a bağlı aygıtların birbirleri ile haberleşmesi için kullanılan bir API’dir. NetBIOS, Network Basic Input/Output System ‘in kısaltmasıdır. Bu, ayrı bilgisayarlarda yerel alan ağı üzerinden iletişim kurmak için OSI Modelini sağlayan uygulamaların oturum katmanı ile ilgili hizmet vermektedir. (Wikipedia, 2021)
Bu bilgileri öğrendikten sonra bu saldırı girişimimizde ‘responder’ isimli aracı kullancağız.
Responder uygulaması ile LLMNR ve NetBIOS isteklerine sahte bir cevap (kendi IP adresimizi) gönderiyoruz. Hedef makinede bize kullanıcı adını ve kullanıcı parolasının hash halini gönderiyor. Biz bu hash bilgilerini kimi zaman kırıyoruz (john the ripper, hashcat) kimi zaman doğrudan yönlendirerek ağdaki diğer cihazlar üzerinde oturum elde etme yoluna gidiyoruz.
Responderi çalıştırıyoruz.
Hedef \\ufukcandal\’a bağlanmaya çalışırken, olmayan bir sunucuya erişmeye çalışmaktadır. Bu sırada girilen parola ise ele geçilmektedir.
Kullanıcıının NTLMv2 parola hash’ini vermesi ile saldırgan dinleme yaptığı ekrana düşen credential bilgileri;
Elde edilen parolayı psexec ile erişim sağlayabiliriz.