Nmap

NMAP(Network Mapper)

Nmap network keşif ve güvenlik takip yazılımıdır. Açık kaynak kodlu olarak geliştirilmiş olan bu yazılım ile, içinde barındırdığı özellikler sayesinde bir çok test işlemi gerçekleştirilebilmektedir.

Nmap ile port taraması, servis tespiti, versiyon ve işletim sistemi analizi testleri, zaafiyet testleri yapılabilir ve sahip olunan farklı birçok script seçeneği ile testler genişletilebilir. Desteklenen platformlar; FreeBSD, OpenBSD, NetBSD, Solaris, IRIX, MAC OS X, HP-UX, Sun OS, Amiga, Linux ve Microsoft Windows. Fakat popülerliği öncelikle Linux daha sonrasında Windows’ ta dır.

Nmap ile toplanan bilgiler esnasında hedef sistem ile bire bir iletişim sağlandığından dolayı aktif bilgi toplama sınıfına girmektedir.

Kullanımı:

nmap [tarama türü] [opsiyonlar] {hedef tanımlama}

Nmap hedef belirleme

Port taraması gerçekleştirilmeden önce açık sistemlerin bulunması daha hızlı ilerleyebilmek adına gerekmektedir. Hedef tanımlama da hostname, ip adres, ağlar yazılabilir. Örnek hedef belirleme işlemleri;

Tek ip için gerçekleştirilecek tarama işlemi için

nmap 192.168.10.10

Nmap ile en basit tarama tekniği budur, yalnız burada dikkat edilmesi gereken nokta, taramayı root olarak yapıyorsanız SYS scan şeklinde, eğer root değilseniz Connect scan şeklinde çalışır.

192.168.10.10 ve 192.168.10.15 ip leri de dahil olmak üzere gerçekleştirilecek tarama işlemi için

nmap 192.168.10.10-15

255.255.255.0 subnet’i için (256 IP) gerçekleştirilecek tarama işlemi için

nmap 192.168.10.10/24

Domain için gerçekleştirilecek tarama için

nmap scanme.nmap.org

iplistesi.txt adlı dosyadan IP adresi okuyarak yapılacak tarama için:

nmap -iL iplistesi.txt

–exclude parametresi ile hedef IP adresleri içerisinden hariç tutulmasını istenilen IP adresleri belirtmek için:

nmap -iL file.txt –exclude 192.168.1.15

–exclude-file parametresi ile hariç tutulacak IP adreslerinin dosyadan okunmasını sağlamak için:

nmap -iL file.txt –exclude-file exfile.txt

-iR parametresi ile nmap’in rastgele olarak IP adreslerini hedef almasını sağlamak için:

nmap –iR 100

komutları kullanılır.

Nmap ile www.acemipenguenler.com adresi tarandıktan sonra ekrana gelen bilgiler :

 

 

 

 

 

 

 

 

 


Tarama sonuçlarında ortaya çıkabilecek port durumları aşağıdaki gibidir;

open (açık): Portun erişilebilir durumda olduğunu ve port üzerinde bir uygulamanın TCP bağlantılarını ya da UDP datagramlarını kabul ettiği anlamına gelmektedir.

closed (kapalı): Portun erişilebilir olduğunu (Paketleri almakta ve geri paket göndermekte) fakat üzerinde herhangi bir uygulamanın olmadığı anlamını taşımaktadır.

filtered (filtreli): Dönen tepkiler bir paket filtreleme mekanizması tarafından engellenir. Nmap portun açık olduğuna karar veremez.

unfiltered (filtresiz): Portlar erişilebilir ancak Nmap portların açık veya kapalı olduğuna karar veremez. (Sadece ACK scan için )

open|filtered (açık|filtreli): Nmap portların açık veya filtrelenmiş olduğuna karar veremez. (UDP, IP Protocol, FIN, Null, Xmas Scan için )

closed|filtered (kapalı|filtreli): Nmap portların kapalı ya da filtreli olduğuna karar veremez. (Sadece Idle Scan için )

Nmap Hedef Port Belirleme

Açık olan sistemler tespit edildikten sonra bir sonraki aşamada sistemler üzerinde aktif olarak çalışan portları belirlememiz gerekmektedir. Nmap herhangi bir port belirtilmedi ise yaptığı taramalarda en çok kullanılan 1000 adet portu tarar. Ancak etkin bir tarama gerçekleştirmek için Nmap’e port bilgisi verilmesinde fayda vardır. Örnek port bilgisi verilmesi;

nmap -p80,22,1433 [hedef_IP]

Nmap üzerinde -p parametresi ile tarama gerçekleştirilecek port bilgisi verilmektedir. Port bilgisi virgül(,) ile ayrıldığında spesifik olarak belirtilen portlar üzerinde, ortadan tire(-) ile ayrıldığında ise belirtilen port aralığında kalan bütün portlar üzerinde tarama gerçekleştirilmektedir.

nmap –top-ports n [hedef_IP]

En çok kullanılan n portu taramak için Nmap’e parametre olarak –top-ports n verilmesi gerekmektedir.

nmap -p- [hedef_IP]

65535 portun hepsini tarar.

nmap –F [hedef_IP]

Hızlı tarama yapılmak istendiğinde ise en çok kullanılan 100 port üzerinde tarama gerçekleştirile bilir, bu işlem Nmap’e -f parametresini girdi olarak verilerek kullanılmaktadır.

Yapılan port taramasında elde edilen bilgiler birçok zaman bize yetmeyecektir. Orda hangi servisin çalıştığı ve servisin hangi versiyonunun kullanıldığını bilmek, hedefi tanıma aşamasında, bizi bilgili kılacaktır. Bunun için versiyon keşif komutu kullanılabilir:

nmap -sS -sV [hedef_IP]

Elde edilen bilgiler yetersiz kaldığında nmap işletim sistemi analizi yapabilir. İşletim sistemi tespiti yapılabilmesi için nmap tarama esnasında minimum bir açık bir kapalı port bulmalıdır.

İşletim sistemi analizi için:

nmap -sS -O [hedef_IP]

işletim sistemi analizi ve versiyon keşfi için:

nmap -sS -A [hedef_IP]

komutları kullanılır.

Yapılan test gereği karşıda var olabilecek bir Firewall/IDS in atlatılması gerekebilir. Bunun için aşağıdaki parametreler kullanılabilir.

Paket parçalama işlemi için:

nmap -f [hedef_IP]

Manual olarak MTU değeri atamak için:

nmap -MTU (MTUDeğeri) [hedef_IP]

IP Spoofing için:

nmap -D Spooflananip [hedef_IP]

 

Yardımcı Parametreler

Nmap aracını kullanılarak yardımcı parametreler ile taramalarımızı istediğimiz şekilde yönlendirebiliriz bunlardan en çok kullanılan 3 tanesi;

v Taramaya esnasında taramaya ait detayları görüntülenir.

-n Tarama esnasında IP adreslerinin Reverse kayıtlarının kontrolünü devre dışı bırakır.

–open Tarama esnasında sadece açık portlara ait çıktılar görüntülenir.

-Pn ping atmak için kullanılır.

h yardım almak için kullanılır.

V versiyon kontrolü için kullanılır.

6 Ipv6 aktif edilmek istendiğinde kullanılır.

-A agresif tarama opsiyonunu aktifleştirir.

-e [interface] network kartı tanımlamak amaçlı kullanılır.

ttl TTL değerinin ayarlanması sağlanır.

badsum hatalı checksum’a sahip paketler gönderir.

data-length paketlerin boyutunun ayarlanmasını sağlar.

Sistemlerin Aktif Durumunun Tespiti

Nmap ile ağda bulunan ve ayakta olan cihazların testi yapılabilir.

-PS21,22,23,25 ile sadece belirtilen TCP portlarına bakarak sistemin aktif olup olmadığına karar verebiliriz.

-PS parametresi kullanıldığında Nmap hedef sisteme TCP SYN paketi göndererek taramayı gerçekleştirir. Eğer dönen cevap SYN+ACK ise sistemin aktif olduğu, RST ise sistemin aktif olmadığını anlamına gelir.

-PA21,80 ile sadece belirtilen TCP portlarına bakarak sistemin aktif olup olmadığına karar verebiliriz.

-PA parametresi kullanıldığında Nmap hedef sisteme TCP ACK paketi göndererek taramayı gerçekleştirir. Eğer dönen cevap RST ise sistemin aktif olduğu, hiç bir cevap dönmez ise sistemin aktif olmadığı anlamına gelir.

Port Tarama Teknikleri

Nmap aracı ile port taraması gerçekleştirilir iken bulunduğunuz ağda ki ihtiyaçlarına göre farklı teknikler kullanılabilmektedir. Bu teknikler aşağıdaki gibidir.

TCP Syn (half open) Scan

Syn Scan nmap’te varsayılan olarak yapılan port tarama tekniğidir ve oldukça hızlıdır. Kaynak makinanın hedef makinaya TCP SYN bayraklı segment göndermesiyle başlar. Bu tarama sonucu dönecek cevaplar “open, close ve filtered” olabilir. Hedef port ile arada bir güvenlik cihazı(firewall) bulunuyor ise herhangi bir cevap dönmeyecektir.Portların kapalı olduğu durumlarda hedef makina cevap olarak RST + ACK bayraklı segmenti döndürür. Portların açık olduğu durumlarda ise hedef makina SYN + ACK bayraklı segment döndürür. Daha sonra kaynak makina RST bayraklı segment göndererek bağlantıyı koparır ve böylelikle TCP üçlü el sıkışma (TCP three-way handshaking) tamamlanmaz. Bu yüzden bu tarama türüne half open da denilmektedir. Bu tarama türünde TCP üçlü el sıkışma gerçekleşmediği için bu tarama türü hedef sistemlerinde herhangi bir şekilde iz bırakmaz.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sS -v [Hedef_IP]

komut çıktısı

 

 

 

 

 

 

 

TCP Connect Scan

Kaynak makinanın gerçekleştireceği TCP Connect Scan, kapalı portlara yapıldığı zaman RST + ACK bayraklı segment dönecektir. Ancak açık portlara yapıldığı durumlarda hedef makinanın göndereceği SYN + ACK bayraklı segmenti, kaynak makina ACK bayraklı segment göndererek cevaplar ve üçlü el sıkışmayı tamamlar.Diğer tarama tekniklerinde 3’lü el sıkışma işlemi yarıda bırakıldığından dolayı hedef sistemler üzerinde daha az iz bırakmakta ancak güvenlik duvarlarında alınmış olan bazı önlemleri atlatamamakta idi. Connect Scan tekniği ile Syn Cookie, Syn Proxy şeklinde alınmış olan güvenlik önlemleri atlatılabilmektedir. Bazı güvenlik önlemlerini atlatabilmesi avantajı olsada TCP oturumu kurulduğundan dolayı güvenlik cihazları üzerinde log kayıtları bırakmaktadır.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sT -v [Hedef_IP]

komut çıktısı ;

 

UDP Scan

Kaynak makinanın hedef makinaya göndereceği UDP datagramına, ICMP Port Unreachable cevabı döndürülüyorsa hedef makina kapalı kabul edilecektir. Herhangi bir tepki döndürmeyen hedef makina open|filtered kabul edilecektir. UDP datagramıyla cevap döndüren hedef makinaya ait port ise açık kabul edilecektir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sU -v [Hedef_IP]

FIN (stealth) Scan

Hedef makinaya TCP bağlantı isteği olmadan gönderilen segmentle tarama yapılır. Kaynak makinanın göndereceği FIN bayraklı segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer açık portuna gelirse hedef makinadan herhangi bir tepki dönmeyecektir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sF -v [Hedef_IP]

Xmas Scan

Bu tarama türünde kaynak bilgisayarın TCP segmentine URG,PSH ve FIN bayraklarını set edeceği (“1” yapılacağı) segment hedef makinaya gönderilir. Eğer Kaynak makinanın göndereceği URG,PSH ve FIN bayraklı segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer port açık olursa hedef makinadan herhangi bir tepki dönmeyecektir.

Bu tarama türünde TCP başlığı içerisinde yer alan toplam altı adet bayraktan üç tanesi set edildiği (“1” yapıldığı) için, gönderilen segment yılbaşı ağacının yanan lambalarına benzetilmiştir. Bundan dolayı da bu tarama türüne Xmas (Christmas) Scan denmiştir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sX -v [Hedef_IP]

Null Scan

Hiçbir bayrağın bulunmayacağı bu tarama türü, gerçek hayatta karşımıza çıkmayan bir durumdur. Kaynak makinanın göndereceği bayraksız segmentler karşısında hedef makinanın vereceği tepkiler FIN Scan ile aynıdır. Kaynak makinanın göndereceği bayraksız segment, hedef makinanın kapalı bir portuna gelirse hedef makina RST + ACK bayraklı segment döndürecektir. Eğer port açık olursa hedef makinadan herhangi bir tepki dönmeyecektir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sN -v [Hedef_IP]

Ping Scan

Bu tarama türünde kaynak makina hedef makinaya tek bir ICMP Echo istek paketi gönderir. IP adresi erişilebilir ve ICMP filtreleme bulunmadığı sürece, hedef makina ICMP Echo cevabı döndürecektir. Eğer hedef makina erişilebilir değilse veya paket filtreleyici ICMP paketlerini filtreliyorsa, hedef makinadan herhangi bir cevap dönmeyecektir.

Kısaca tüm sistemlere ping atarak ,yanıt veren sistemlerin açık ya da kapalı olduğunu tespit eder.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sP -v [Hedef_IP]

ACK Scan

ACK Scan, güvenlik duvarının konfigürasyon durumunu analiz etmek için sıkça kullanılan bir tarama türüdür. Bu taramada kaynak makina hedef makinaya TCP ACK bayraklı segment gönderir. Eğer hedef makina ICMP Destination Unreachable mesajını dönerse ya da hedef makinada bu taramaya karşılık herhangi bir tepki oluşmazsa port “filtered” olarak kabul edilir. Eğer hedef makina RST bayraklı segment döndürürse port “unfiltered” kabul edilir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sA -v [Hedef_IP]

Window Scan

Window Scan, ACK Scan türüne benzer ancak bir önemli farkı vardır. Window Scan portların açık olma durumlarını yani “open” durumlarını gösterebilir. Bu taramanın ismi TCP Windowing işleminden gelmektedir. Bazı TCP yığınları, RST bayraklı segmentlere cevap döndüreceği zaman, kendilerine özel window boyutları sağlarlar. Hedef makinaya ait kapalı bir porttan dönen RST segmentine ait window boyutu sıfırdır. Hedef makinaya ait açık bir porttan dönen RST segmentine ait window boyutu sıfırdan farklı olur.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sW -v [Hedef_IP]

IP Protocol Scan

Bu tarama türü standart NMAP tarama türlerinden biraz farklıdır. Bu tarama türünde hedef makinaların üzerlerinde çalışan IP tabanlı protokoller tespit edilmektedir. Bu yüzden bu tarama türüne tam anlamıyla bir port taraması demek mümkün değildir. Hedef makina üzerinde, taramasını yaptığımız IP protokolü aktif haldeyse hedef makinadan bu taramaya herhangi bir cevap gelmeyecektir. Hedef makina üzerinde, taramasını yaptığımız IP protokolü aktif halde değilse hedef makinadan bu taramaya, tarama yapılan protokolün türüne göre değişebilen RST bayraklı (RST bayrağı “1” yapılmış) bir segment cevap olarak gelecektir.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sO -v [Hedef_IP]

IdleScan

Bu tarama türü, kaynak makinanın hedef makinayı tarama esnasında aktif olarak rol almadığı bir türdür. Kaynak makina “zombi” olarak nitelendirilen makinalar üzerinden hedef makinayı tarayarak bilgi toplar.

Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır :

nmap -sI -v [Zombie_IP] [Hedef_IP]

Nmap betik motoru (Nmap scripting engine – NSE)

NSE (Nmap scripting engine), Nmap’in en güçlü ve kullanışlı özelliklerinden birisidir. NSE’yi; normal Nmap komutlarıyla yapılamayan ya da yapılması çok zor olan işlemlerin daha kolay bir şekilde yapılmasının sağlandığı bir betikler bütünü olarak tarif edebiliriz. Nmap ile birlikte birçok betik kütüphanesi hazır olarak gelmektedir. Fakat NSE aynı zamanda kullanıcıların ihtiyaç duydukları betikleri kendilerinin de yazabilmelerini ve bunları paylaşabilmelerini de sağlar. NSE’de yer alan betikler aynı anda paralel olarak da çalıştırılabilirler.

NSE kullanarak temel olarak yapılabilecekler aşağıda listelenmiştir:

1) Ağ keşifleri: Hedef etki alanlarının (domain) whois veri tabanı sorguları yapılabilir. Hedef sistemlerin SNMP sorguları yapılabilir ve mevcut NFS/SMB/RPC paylaşım ve servisleri listelenebilir.

2) Karmaşık versiyon tespiti: Normal Nmap komutlarıyla hedef sistemlerin versiyonları belirlenebilmektedir. NSE ile hedef sistemlerin versiyonları çok daha ayrıntılı bir şekilde tespit edilebilmektedir.

3) Zafiyet (vulnerability) tespiti: Normal Nmap komutlarıyla hedef sistemlerin zafiyetleri tam anlamıyla tespit edilememektedir. NSE ile bu zafiyetler daha kolayca belirlenebilmektedir. Nmap ile hazır gelen birçok zafiyet tespit betiği bulunmaktadır. Fakat Nmap’in temel işlevinin bir zafiyet tarayıcısı olmadığının bilinmesi gerekir.

4) Arka kapı (backdoor) tespiti: NSE bazı arka kapı programlarını da tespit edebilmektedir.

5) Zafiyet sömürmesi (Vulnerability exploitation): NSE ile sadece hedef sistemlerin zafiyetleri tespit edilmekle kalmayıp bu zafiyetlerin bazıları kullanılarak hedef sistemlere sızılması da mümkün olmaktadır. Fakat Nmap’in temel amacı Metasploit gibi bir zafiyet sömürü programına dönüşmek değildir. Buna rağmen NSE ile hedef sistemlerdeki bazı zafiyetlerin sömürülmesi de mümkündür.

NSE ile temel olarak bu işlemlerin yapılması hedeflenmekle beraber NSE’nin geliştirilmesine devam edilmektedir.

NSE örnekleri

Tüm scriptler kullanılarak yapılacak test için:

nmap -sC [hedef-IP]

http ile başlayan scriptleri kullanmak için:

nmap –script “http”

hedef sistemin başlık(banner) bilgisini almak için çalıştırılacak komut:

nmap -sS [hedef_IP] –script=banner.nse

NSE bütün scriptler için : https://nmap.org/nsedoc/

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir