Tuesday, October 28, 2014

Metasploit ile Nmap Kullanmak

Nispeten geniş ağları test ederken süre kısıtımız olduğunda zaman kazandırdığına inandığım için taramaların bir kısmını doğrudan Metasploit içerisinden yapmayı tercih ediyorum.

Ağ taramalarının (scan) benim için 4 temel amacı vardır;

  • Ağ üzerindeki sistemleri tespit etmek
  • Bulunan sistemlerde açık olan portları ve çalışan servisleri bulmak
  • Bulunan servislerde ve sistemlerdeki zafiyetleri tespit etmek
  • Ağ üzerinden iş süreçlerini ve genel işleyişi anlamaya çalışmak (Sıramatik var mı?, Misafirlere wi-fi hizmeti veriliyor mu?, NAS cihazı var mı? vs.)


Normal şartlar altında tarama aşaması en çok zaman harcadığım ve en iyi yapmaya çalıştığım şeydir. İyi yapılmış bir tarama hem ağ topolojisini doğru çıkartmamızı sağlar hem de testler için kullanılabilir ve etkili bir plan hazırlamamıza imkan verir.
Bazen de testi hızlı yapmak gerekir, ağ çok karmaşık değildir, "whitebox" dediğimiz, müşterinin topoloji ve sistem detaylarını bizimle paylaştığı türden bir testtir ve zaman esastır. Bu durumlarda Metasploit'un üzerinde bulunan tarama modüllerini kullanmakta fayda görüyorum.
Metasploit'un üzerindeki tarama modüllerini tespit etmek için Metasploit'u başlattıktan sonra "search scan" ile arama yapmanız yeterlidir.

En yaygın olarak kullanılan tarama yazılımı Nmap olduğu için bu yazıdaki örnekleri onun üzerinden yaptım.

Bu işlem için kurduğum topoloji aşağıdaki gibidir. Görüldüğü üzere 192.168.1.34 IP adresli makine saldırgan, diğer ikisi kurbandır. 

Resim 1: Topoloji (evet, bunları çizerken çok eğleniyorum)

Metasploit içerisinde Nmap'i kullanabilmek için Metasploit'u başlatmadan önce aşağıda görüldüğü gibi Postgresql'i ve Metasploit'u servis olarak başlatmak gerekiyor.

Resim 2: Postgresql'i çalıştırmak

Resim 3: Metasploit'u servis olarak başlatmak

Bu iki aşamadan sonra "msfconsole" komutuyla Metasploit konsolünü çalıştırabiliriz.

Resim 4: Metasploit konsolü çalıştırmak

Resim 5: Her zaman olduğu gibi Metaslpoit bizi sevimli bir grafikle karşılıyor

Metasploit içerisinden Nmap'e ulaşmak için kullanacağımız komutlar bildiğimiz Nmap komutlarıdır.
Ağdaki diğer makineleri tespit etmek için kullanabileceğimiz yöntemlerden biri Ping paketi gönderip, cevap veren makinelere bakmaktır. Bazı sistemlerin açık ve ağa bağlı oldukları halde Ping paketlerine cevap vermeyeceklerini hatırlatmak isterim. Bu durumda kullandığımız komut aşağıdaki gibidir:
msf > db_nmap -sP 192.168.1.*

db_nmap: Metasploit içerisinden Nmap'i çalıştırmama imkan veriyor.
-sP: Ping taraması yapar ve hedef olarak belirlediğimiz IP veya IPlere ping paketi gönderir.
***Edit: -sP basitçe Ping paketi göndermekten fazlasını yapıyor, daha doğrusu sadece ping göndermiyor. Ayrıntılar için Nmap'in kendi dokümantasyonuna http://nmap.org/book/man.html adresinden ulaşabilirsiniz. Uyarı ve düzeltme için teşekkür ederim @kadiraltan kendimi geliştirmemde ve vizyon kazanmamda katkın büyük. 

192.168.1.*: 192.168.1.0 ile 192.168.1.255 arasındaki bütün IP adreslerini kapsar

Resim 6: Ping taraması

Aşağıda görüldüğü gibi Ping sorgusu ile 192.168.1.20 adresinde bir makine tespit ettik. 

Resim 7: Ping taraması sonucu



Ping taramasından sonra ağ ve apdaki makineler hakkında daha fazla bilgi almak için bir de SYN taraması yapıyoruz. 

Resim 8: SYN Taraması

SYN taraması yapmak için kullanacağımız komut db_nmap -sS 192.168.1.* dir. 

Resim 9: SYN taraması sonuçları ve hosts komutu

SYN taraması sonuçlandığında "hosts" komutu ile tarama sonucu tespit ettiğimiz makineleri listelememiz mümkündür. Yukarıda görüldüğü üzere 192.168.1.20 ve 192.168.1.27 IP adreslerini kullanan makineleri tespit ettik. 

Makineler hakkında biraz daha bilgi sahibi olmak için daha kapsamlı bir tarama komutu kullanılabilir. Bunun için -sS parametresi ile birlikte -sV (versiyon/sürüm bilgisi) ve -O (işletim sistemi) parametreleri eklenebilir. 

Resim 10: İşletim sistemi ve sürüm bilgilerini de almaya çalıştığımız tarama

Bu tarama sonucunda "hosts" komutunu tekrar çalıştırdığımızda tespit ettiğimiz makinelerin birinin Linux, diğerinin Windows olduğunu görüyoruz. 


Resim 11: Hosts komutu ile işletim sistemi bilgisini görmek


Taramadan sonra "services" komutu ile ağ üzerinde tespit edilen sistemlerde Nmap'in bulduğu makineler üzerinde çalışan servisleri listeleyebiliyoruz. Amacımız zaman kazanmak olduğu için kolay istismar edilebilir olarak bildiğimiz servislerin hangi IP adreslerinde bulunan makinelerde aktif olduğunu tespit etmemize yardımcı olacak bir komuttur. 

Resim 12: services komutu ile ağ üzerinde çalışan servisleri listelemek

Ağ üzerinde birkaç sisteme hızlı şekilde sızmanın gerektiği durumlarda hosts komutunu -c address,os_flavor parametreleriyle kullanmak hedef makinleri listelememizi hızlandıracaktır. Bu durumda gerçek ağlarda çoğunlukla olduğu gibi ilk seçeneğimiz Linux makinelere saldırmak olacaktır. Linux sistemlerin hem daha seyrek olarak güncellenmeleri hem de "virüs bulaşmaz" düşüncesiyle antivirüs kurulmadan ağa bağlanmaları saldırganlar için çok güzel bir fırsat sunmaktadır. 


No comments:

Post a Comment

MITRE ATT&CK Gerçek Hayatta Ne İşimize Yarar?

  Rusya kaynaklı siber saldırılar webinarı sırasında üzerinde durduğum önemli bir çalışma vardı. MITRE ATT&CK matrisini ele alıp hangi...