Nmap (Network Mapper); ağ güvenliği uzmanı Gordon Lyon tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Nmap taranan ağın haritasını çıkarabilir, çalışan servislerini, işletim sistemini ve açık portları kullanıcıya sunabilir. Nmap, sızma testlerinde ve uygulamalarında aktif bilgi toplama işlemlerinde en çok kullanılan araçlardan biridir. Bu yazı ile nmap’in özelliklerine, kullanım amacına, kurulumuna ve detaylı kullanımına ulaşabilirsiniz.
Nmap’in Özellikleri
- Oldukça detaylı bir ağ haritası oluşturabilir.
- Hedef cihazın çalışan servislerini, güvenlik duvarını, güvenlik açıklıklarını, açık portları ve ağ kartını üreten firmanın adı gibi bilgiler sunabilir.
- Özgür ve ücretsiz bir yazılımdır. Açık kaynak kodu nmap.org üzerinden indirilebilir.
- Linux, Windows, MacOS, Solaris gibi birçok işletim sisteminde kullanılabilir. Ancak diğer avantajlarından dolayı nmap kullanımında en çok tercih edilen işletim sistemi Linux’tur.
Nmap hedef sistemi taramak için birden fazla yönteme sahiptir. Yaptığınız tarama sonucunda elde ettiğiniz bilgiler açık portları ve diğer zaafiyetleri tespit edebilirsiniz. Tarama sonucunda ortaya çıkabilecek port durumları şu şekildedir;
- Open (Açık): Portun açık durumda olduğunu belirtir. (Port üzerinde bir uygulamanın TCP ve UDP bağlantısı kabul ettiğini gösterir.)
- Closed (Kapalı): Portun erişilebilir durumda olduğunu ancak üzerinde işlem yapılabilecek bir uygulamanın olmadığını gösterir.
- Filtered (Filtreli): Dönen paketler bir paket filtreleme mekanizması tarafından filtrelendiği için nmap portun açık veya kapalı olduğuna karar veremez.
- Unfiltered (Filtresiz): Portlara erişilebilir ancak nmap portun açık veya kapalı olduğuna karar veremez. (Bu sadece ACK Scan için geçerlidir.)
- Open|filtered (Açık |Filtreli): Nmap portların açık veya filtreli olduğuna karar veremez. (UDP, IP Protocol, FIN, Null, Xmas Scan için geçerlidir.)
- Closed|filtered (Kapalı|Filtreli): Nmap portların kapalı veya filtreli olduğuna karar veremez. (Sadece Idle Scan için geçerlidir.)
Nmap’in Sızma Testlerinde Kullanım Amacı
- Sızma testi işlemi yapılan ağda hangi cihazların gönderilen isteklere yanıt verdiğini görmek,
- Hedef Ağın veya ağa bağlı olan cihazların açık portları ile zaafiyetlerini tespit edebilmek,
- Hedef ağda veya ağa bağlı olan cihazlarda kullanılan servisleri görebilmek,
- Nmap aracılığıyla elde edilen bilgiler ile açıklıkları kapatmak için çalışmalar gerçekleştirmek.
Nmap Kurulumu (Linux İşletim Sistemi)
Nmap’in kurulumu oldukça basittir. Kali Linux’ta bunların içinde olmak üzere çoğu Linux dağıtımlarında yüklü gelmektedir. Ancak farklı bir dağıtım veya farklı bir işletim sistemi kullanıyorsanız https://nmap.org/download.html üzerinden nmap’i indirebilirsiniz.
• Linux dağıtımınızda nmap bulunmuyor ise apt-get install nmap
komutu ile nmap’i kurabilirsiniz.
Nmap Kullanımı
Nmap’i herhangi bir ağa veya sisteme karşı kullanmak için hedef sisteme ait IP adresini bilmeniz gerekmektedir. Hedef sistemin IP adresini nasıl elde edebileceğinize dair yöntemleri içeren bir yazı yakında eklenecektir.
Hedef sistemin IP adresini elde ettikten sonra nmap <hedef sistemin ip adresi> komutu ile direkt bir tarama başlatabilirsiniz. Bu kod üzerinde herhangi bir parametre belirtmediğinizden dolayı nmap otomatik olarak en sık kullanılan 1000 portu tarayacak ve sonuçları karşınıza çıkaracaktır.
Resimde bir Windows Sanal Makinesine yapılan tarama sonucu görüntülenmekte. Nmap tarama sonucunda 22/tcp portunun open yani açık durumda olduğunu belirtmiş. Ayrıca cihazın MAC adresi ve ağ kartının üreticisinin bilgilerine yer vermiş (Sansürlü kısımlar). Sızma testi işlemlerinizde bu açık portlardan yararlanarak cihazlara sızmayı deneyebilirsiniz. Bu konuyla ilgili bir yazı yakında yayınlanacaktır.
nmap <hedef ip>
komutu ile portlara dair oldukça bilgi alsanız bile gerekli durumlarda daha fazla ve daha özel bilgilere ihtiyaç duyabilirsiniz. Bunun için nmap’in parametrelerini kullanabilirsiniz.
Nmap Parametreleri
1- TCP Syn Scan
Bu tarama kaynak makinenin, hedef makineye TCP Syn bayrağı gönderek başlattığı bir tarama türüdür. Karşı tarafın TCP portlarının açık veya kaplı olduğu dönen bayrağın RST+ACK olmasından anlaışır. Eğer dönen paket RST+ACK ise kapalı, SYN+ACK ise açık anlamına gelmektedir.
nmap -sS -v <hedef ip>
komutu ile kullanılabilir. (Bu komut içerisinde yer alan -v parametresi ayrıntı düzeyini arttırmak için kullanılır. Daha fazla detay istiyorsanız -vv parametresini de kullanabilirsiniz.)
2- TCP Connect Scan
Bu taramada kaynak makine hedef sistemin tüm portları ile el sıkışması yapar. Eğer port ile oturum açılırsan portun açık olduğu bilgisi verilir. Bu taramanın sonuçları TCP Syn Connect’e göre daha güvenli sonuçlar vermektedir. Ancak hedef sistem yapılan bu taramayı tespit edebilir.
nmap -sT -v <hedef ip>
komutu ile bu taramayı gerçekleştirebilirsiniz.
3- FIN (Stealth) Scan
Hedef makineye TCP bağlantı isteği olmadan gönderilen segment ile tarama yapılır.
nmap -sF -v <hedef ip>
komutu ile kullanılabilir.
4- Xmass Scan
URG, PSH ve FIN bayraklarının “1” olduğu durumlarda makinenin verdiği tepkiye göre bir sonuç sunulmaktadır. Eğer RST+ACK paketi dönerse port kapalı, tepki oluşmazsa port açık anlamına gelir.
nmap -sX -v <hedef ip>
komutu ile kullanılabilir.
5- Null Scan
Hiçbir bayrağın bulunmadığı, normal durumlarda oluşamayan bir taramadır. Kaynak makine tarafından gönderilen bayraksız segmentler karşısında hedef makinenin vereceği tepkiler FIN Scan ile aynıdır. Portun durumu bu şekilde belirlenir.
nmap -sN -v <hedef ip>
komutu ile kullanılabilir.
6- Ping Scan
Hedef makineye kaynak makineden tek bir ICMP Echo istek paketi gönderilir. Eğer hedef makine erişebilir değil veya paket filtreleyici ile ICMP paketlerini filtreliyorsa, makineden herhangi bir cevap dönmeyecektir. Ancak erişilebilir durumda ve filtreleme bulunmuyor ise ICMP Echo cevabını döndürecektir.
nmap -sP -v <hedef ip>
komutu ile kullanılabilir.
7- UDP Scan
Kaynak makine tarafından hedef makineye UDP datagramı gönderilir. Eğer ICMP Port Unreachable yanıtı döndürülüyorsa makine kapalı, UDP datagramı dönüyorsa makine açıktır.
nmap -sU -v <hedef ip>
komutu ile kullanılabilir.
8- ACK Scan
Hedef makineye kaynak makine tarafından TCP ACK bayraklı segment gönderilir. Eğer hedef makine ICMP Destination Unreachable mesajını dönerse ya da hedef makine de bu taramaya karşılığı bir tepki oluşmazsa port “filtered” olarak kabul edilir. Eğer hedef makine RST bayraklı segment döndürülürse port “unfiltered” olarak kabul edilir.
nmap -sA -v <hedef ip>
komutu ile kullanılabilir.
9- Idle Scan
Bu taramada kaynak makine hedef makineyi tarama esnasında aktif olarak rol almaz. Kaynak makine zombi veya bot olarak nitelendirilen makineler üzerinden hedef makineyi tararak bilgi toplar.
nmap -sI -v <hedef ip>
komutu ile kullanılabilir.
10- NSE – Nmap Scripting Engine (Betik Motoru)
NSE ile normal nmap taramalarıyla elde edilemeyen türden veya elde edilmesi çok zor olan türden taramalar kolay bir şekilde yapılabilir. Nmap, beraberinde birçok betik kütüphanesi ile gelmektedir. Ancak internet üzerinden farklı betikler bulmak veya özel betikler yazmak mümkündür.
NSE ile ağ keşifleri (whois sorguları, SNMP sorguları vb), karmaşık versiyon tespiti (Normal taramalarda elde edilen sonuçları daha detaylı tespit edebilir), zafiyet tespiti (Nmap bu iş için en uygun araç değildir ancak zafiyet tespiti yapabilir), Arka kapı tespiti (Backdoor tespiti), zafiyet sömürmesi ve benzeri işlemler yapılabilir.
NSE kullanmak için nmap komutunun sonuna --script-betikadı.nse
eklenmelidir.
11- Ek Parametreler
- -O : İşletim sistemini tespit eder.
- -p<sayı1>-<sayı2> : Belirttiğiniz portlar arasındaki portları tarar.
- -top-ports 2000 : En sık kullanılan 2000 portu tarar.
Zenmap
Zenmap, Adriano Monteiro Marques tarafından UMIT grafiksel kullanıcı arabiriminden faydalanılarak geliştirilmiş şu anki resmi kullanıcı arabirimdir. Sızma testlerinizde veya uygulamalarınızda nmap kullanımınızı kolaylaştırmak için Zenmap arabirimini kullanabilirsiniz.
• Kali Linux ve çoğu Linux işletim sisteminde Zenmap yüklü gelmektedir. Terminale zenmap
yazarak programı başlatabilir veya apt-get install zenmap
komutu ile Zenmap’i indirebilirsiniz.
• Zenmap arabiriminde Target kısmına hedef makinenin IP adresini yazıp Profile kısmından istediğiniz tarama türünü seçerek tarama işlemini başlatabilirsiniz. Tarama tamamlandığı zaman sonuçlar karşınıza çıkacaktır.
Sonuç
Nmap aracının ne olduğunu, özelliklerini, kullanım amaçlarını ve kullanımını öğrendiniz.
Nmap parametreleri ve kullanımlarını öğrendiniz.
Nmap görsel arabirimi, Zenmap’in kullanımını öğrendiniz.
Nmap’e ek olarak bütün açıklıklıları sınayan bir araç olan Nessus programının kullanımını öğrenerek Aktif Bilgi Toplama konusunda daha fazla bilgi sahibi olabilirsiniz. Bu aracın kullanımına dair içeriğe buradan ulaşabilirsiniz.