Saturday, April 23, 2016

Nmap kullanımı

Bu bölümde aktif bilgi toplama evresinde kullanabileceğiniz en güçlü, en faydalı araçlardan biri olan Nmap üzerinde durmaya çalışacağım. Nmap Windows, MacOSX ve Linux üzerine kurulabilen ve bilgi toplama evresinin footprinting ve banner grabbing evresinde oldukça güvenilir sonuçlar verebilen başarılı bir programdır. Nmap terminal üzerinde çalışır ve sağlamış olduğu kolaylıklarla scan işleminizi oldukça farklı ve detaylı hale getirmenizi sağlar.
Nmap hedef hosta çok spesifik paketler yollar ardından hosttan aldığı cevapları derleyerek, kendi bünyesinde değerlendirdikten sonra hangi portun açık, kapalı veya filtreli olduğunu, hangi işletim sisteminin yüklü olduğunu ve yüklü servislerin türünü ve versiyonlarını yüksek oranda doğruluğunu kabul edebileceğimiz bir şekilde bize sunar.

Nmap sürekli geliştirilmeye devam etmektedir ve daha önceden de belirttiğim gibi ücretsiz bir uygulamadır. Teknoloji çok hızlı gelişmekte ve sürekli servislerin versiyonları değişmekte hatta yeni işletim sistemleri kullanılmakta. Bu anlamda yeni hazırlanan işletim sistemlerinin ve servislerin nmap tarafından tanıtılması ve böylece yapılan network tarama işleminde tanımlanamamış sonuçlar alınmaması için karşılaşılan footprinting izlerinin nmap bünyesine eklenmesi gerekir. Bu client tarafından yapılabilecek birşey değildir. Güncellemeler ile bunları edinmiş oluruz. Ancak karşılaştığınız bazı durumlarda Nmap'in geliştirilme safhasına destek olabilirsiniz. Hangi işletim sisteminin veya hangi servisin kurulu olduğunu bildiğiniz bir hedef üzerinde (local network veya internet üzerinden) yapmış olduğunuz bir test sonucunda, Nmap' in bu özellikleri (işletim sistemi türü ve servisi) tanıyamadığını tespit ettiğinizde bu sonuçları Nmap' in resmi websitesi üzerinden paylaşabilirsiniz.Link burada.

Öncelikle şunu belirtmekte yarar var: Yapacağınız tüm scan taramaları hedef host tarafından pek de hoş olarak karşılanmayacak bir durumdur. Bu tıpkı tepeden tırnağa birini elinizle kontrol etmeye benzer. Port taramalarının genel felsefesi önceden belirlenmiş ve çok kullanılan bir takım portlara sinyaller yollama ve sonuçları yorumlama temeline dayanır. Ancak buna bazı tweakler yaparak 65535 portun tamamını taratabilir veya en çok kullanılan ilk 100, 200 veya buna benzer bir sayıda portu taratabilirsiniz. Aynı zamanda belirli bir aralıkta port taraması yapmak da seçenekleriniz arasında olabilir. Bazı nedenlerden dolayı adminler servisleri yüksek rakamlı (nmap top listte olmayan) portlara kurabilirler veya çeşitli güvenlik duvarları kullanabilirler. Bu durumlarda sonuçlar yanıltıcı olabilir. Ancak yapabileceğiniz ufak ayarlamalar ile sonuçları biraz daha solidife etmek mümkün olabilir. Genel olarak hangi portta hangi servisin olabileceğini anlamak adına şu listeye göz atabilirsiniz.

Kali dağıtımı ile yüklü şekilde gelen Nmap programını diğer linux dağıtımlarına da kurmak mümkün. Bunun için apt-get install nmap komutunu çalıştırmanız yeterlidir. Ardından konsola nmap --version yazarak kurmuş olduğunuz Nmap in versiyonunu öğrenebilirsiniz.

Nmap çok kapsamlı bir programdır ve çok ince detayları dahi göz önünde bulundurarak spesifik scan işlemleri yapmanıza olanak sağlar. Bütün komutlar için help bölümde açıklamalar var ancak önemli olanların üzerinde durmaya çalışacağım.

Öğreneceğiniz komutları pratik yapmak için networkunuzda bulunan bir cihaz üzerinden işlemlerinizi yapabilir veya scanme.nmap.org adresini kullanabilirsiniz. Bu adres tamamen yeni kullanıcıların pratik yapmaları için tahsis edilmiştir.

nmap scanme.nmap.org şeklinde hiçbir özellik eklemeksizin scan yaptığınızda nmap top 1000 listesindeki portları tarar. Aynı şekilde nmap 45.33.32.156 şeklinde de aynı aramayı yapabilirsiniz. Scan işlemi bazen uzun sürebilir. Böyle durumlarda enter tuşuna basarak işlemin gidişatı hakkında bilgi alabilirsiniz. Gördüğünüz üzere kaç adet filtreli port bulunduğunu, hangi portta hangi servisin kurulu olduğunu bize raporladı. -v parametresini ekleyerek belirli aralıklar ile prosesin yüzde kaça geldiğini size bildirmesini sağlayabilirsiniz. Eğer bu parametreyi yazmadı iseniz, proses halindeyken v tuşuna basarak onu aktive edebilirsiniz. Verbosity dört kademedir.( -v, -v2, -v3, -v4)




nmap -sV scanme.nmap.org burada ise -sV komutunu kullanarak servis bilgilerini öğrenmeye çalışıyoruz.




-sT parametresi üçlü handshake ile scan yapar. Tcp scan tipi olarak bilinir.
-sS ise SYN stealth scan olarak bilinir. Handhake yoktur. Sadece SYN (Synchronise) pakedi yollar ve verilen cevabı alır. Eğer SYN/ACK pakedi gelirse port açıktır mantığı üzerine kuruludur.
Yapmış olduğunuz scan işlemlerinin raporlarına daha sonra göz atmak isteyebilirsiniz hatta bunları html formatına çevirmek isteyebilirsiniz. Bunun için -oA komutunu kullanmalısınız. Kaydedilecek raporlar terminalde bulunduğunuz dizinin içinde oluşturulacaktır. oA komutunun anlamı output all dur. Yani üç farklı çıktı tipinin herbirinden verir. Bunlar .nmap .gnmap ve .xml dir. (Sadece xml formatı için -oX, gnmap için -oG, nmap çıktısı için -oN) Xml formatının html formatına dönüştürülmesi de mümküntür. Tercih ettiğiniz converter ile bunu yapabilirsiniz veya xsltproc kullanabilirsiniz.




Belirli portlar veya port aralıkları üzerinden scan yapmanın mümkün olduğunu söylemiştik. Bunun birkaç örneği aşağıdaki gibi olabilir.

nmap nmap.scanme.org -p 443 (Sadece 443 nolu port için)
nmap nmap.scanme.org -p 1-2000 (1 ile 2000 arasındaki tüm portlar için)
nmap nmap.scanme.org -p- (65535 adet portun herbiri için işlemi uygular.)

Birden fazla hedefi aynı anda işleme almak için IP adreslerinin arasına boşluk bırakarak yazmanız yeterlidir. Grup taramalarında işlemin dışında olmasını istediğiniz hedefleri teker teker belirtmek de mümkündür. Bunun için --exclude komutu kullanılmalıdır.

nmap 98.138.253.109-162 -T5  --exclude 98.138.157-161 Burada 109 ile 162 nolu IP aralığı arasında bulacağı tüm hostlar için toplu olarak sonuç verecek. Ancak 157 ve 161 ile bitenler liste dışı. Bunu portlar için de kullanabilirsiniz.




Bazı durumlarda hedef sistemlerde çalışan servisler olmasına rağmen, serverın offline olduğu gibi sonuçlar alınabilir. Bu durumda agnostic scan denilen yönteme başvurabilirsiniz. -Pn parametresi ekleyerek daha verimli sonuçlar alınabilinir. Aynı zamanda hız ayarı da yapılabilir.

Sistemin işletim sistemi hakkında bilgi edinmek isterseniz -O parametresini eklemelisiniz. Ancak bulunan sonuçlar yüzde yüz doğru olmayabilir. Çok az da olsa yanılma payı olabilir.

Az önce bir takım hız parametreleri olduğu yazmıştım. Şimdi bunlardan bahsedelim. T0, T1, T2, T3, T4 ve T5 olmak üzere altı kademeli hız ayarımız var. En yavaş olanı T0' dır. Rakam arttıkça scan tamamlanma süresi uzar. Ancak yavaş olan scan daha verimli sonuçlar verebilir. min_rtt_timeout ve max_rtt_timeout süreleri gibi birkaç değişkende farklılıklar vardır. IPS sistemlerine karşı yapılacak scan işlemlerinde tercih edeceğiniz hız parametresinde değişiklik yapmanız gerekebilir. Hatta bunu daha da ileri götürerek IP adresinizi spooflayıp sanki yapılan scan işleminin birden çok kişi tarafından yapıldığı izlenimini verebilirsiniz. Bu işlem decoy olarak da bilinir. Hazırlanan scan komutunun sonunda -D parametresi eklenir. Örnek olarak;



Bir önceki konumuz proxychains idi. Proxychains proxy kullanarak İnternet üzerinden işlem yapmamızı sağladığı hakkında uzunca bahsetmiştik. Nmap scan işlemlerinize Proxychains' i entegre etmeniz mümkün. Bunun için service tor start komutunu çalıştırarak onu aktive edin. Ardından yapacağınız scan işlemi için yazacağınız komutun başına proxychains yazmanız yeterli. proxychains nmap scanme.nmap.org gibi.


Nmap çeşitli script eklentileri ile daha da zengin bir hale getirilebilir. Http-enumeration, traceroute veya snmp sistemlerine karşı kullanılabilecek birçok script mevcut. Biraz daha detaya girmek ve ne tarz scriptler olduğunu keşfetmek için resmi websitesine göz atabilirsiniz.

No comments:

Post a Comment