Nmap, ağ tarama ve zafiyet tespiti için kullanılan açık kaynaklı bir araçtır. Bu araç birçok sisteme yönelik taramaları gerçekleştirerek esnek, hızlı ve anlamlı bir şekilde sonuç üretmektedir. Sistemlerin açık olup olmadığını, açık olan sistemlerin portlarını durumları, hangi servislerin çalıştığı ve kullanılan işletim sistemi gibi birçok bilgiyi verebilmektedir. Nmap ile tespit edilen servislerin güvenlik açığı barındırıp barındırmadığı ve kullanılan servisler hakkında bilgi elde edilebilir. Ayrıca içerisinde barındırmış olduğu scriptler ile hedef sisteme yönelik tarama gerçekleştirildiğinde hedef sistem hakkında detaylı bilgi ve güvenlik açığı olup olmamasına yönelik sonuç üretmektedir. Nmap aracı, alanının en iyi araçları arasında yer almaktadır.
2.Nmap Kurulumu
Terminal?de ?sudo apt-get install nmap? komutu çalıştırıldığında Nmap yüklenmeye başlayacaktır. Ayrıca nmap, sitesinden .rpm veya .deb uzantılı setup dosyaları indirilerek kurulabilir.
Kod:
$ sudo apt-get install nmap
$ sudo apt-get install nmap
Basit Bir Nmap Taraması
Bu bölümde hedef sunucu tespiti yaptıktan sonra bir ağdaki ya da uzaktaki bir bilgisayarı/sunucuyu nmap ile standart bir tarama tabii tutacagız ve nasıl bir sonuc alacagımızı gozlemliyeceğiz.Bu örneğimizde yerel ağımızda bulunan bir cihazda tarama yapacağız
Nmap hiçbir parametre kullanılmadığında default olarak en çok kullanılan 1000 port u taramaktadır.
Resimden de anlaşılacağı üzere;
Sunucunun ayakta olduğu
977 portunun kapalı olduğu
23 portun açık olduğu ve açık portları listelediği ve son olarak listelenen portların hangi protokolü kullandığı belirtilmiştir.(örn:tcp)
977 portunun kapalı olduğu
23 portun açık olduğu ve açık portları listelediği ve son olarak listelenen portların hangi protokolü kullandığı belirtilmiştir.(örn:tcp)
Yerel ağda tarama yaptığımız için nmap MAC adresi bilgisinide bize vermiş olucak.
Nmap varsayılan olarak tcp taraması yapmaktadır. Udp taraması yapmak için belirtmemiz gerekir.
Komutun çıktısında gördüğümüz Port, State ve Service alanlarını açıklamaya çalışalım.
Port: port numarası / kullandığı protokol?ü gösterir.
State: port?un open, closed ya da filtered olduğu gösterilir.
Nmap varsayılan olarak tcp taraması yapmaktadır. Udp taraması yapmak için belirtmemiz gerekir.
Komutun çıktısında gördüğümüz Port, State ve Service alanlarını açıklamaya çalışalım.
Port: port numarası / kullandığı protokol?ü gösterir.
State: port?un open, closed ya da filtered olduğu gösterilir.
Open
Portun erişilebilir olduğu ve portun TCP, UDP bağlantısı kabul ettiğini gösterir.
Closed
Portun erişilebilir olduğu ancak üzerine işlem yapılamadığı bilgisini gösterir.
Filtered
Bir paket filtreleme mekanizması tarafından engelleniyor manasına gelir. Portun açık olduğu veya kapalı olduğu konusunda herhangi bir karara varılamamıştır.
Unfiltered
Portlara erişiliyor ama açık mı kapalı mı bilemedim durumudur. (Üçlü el sıkışmanın SYN,SYN-ACK,ACK ayaklarının ACK işlemini ,yani geriye cevap dönüyor mu? sorusunu cevaplar.)
Open | Filtered
Portlar açık mı veya filtrelenmiş mi karar veremedim manasına gelir.(UDP, FIN, Null, Xmas Scan)
Service
port üzerinde çalışan standart sevice ismini belirtir.
Nmap Örnek Taramalar
$ nmap 10.0.2.5 vermiş olduğumuz komut ile 10.0.2.0 ile 10.0.2.255 e kadar olan bütün hostları ayrı ayrı tarıyacaktır. Bunu yapmadan önce ping atarak sunucunun açık olup olmadığını kontrol eder.
Kod:
$ nmap 10.0.2.5
Ek bilgi: Not
Nmap komutunun arkada ne iş yaptığını görmek için komutu çalıştırdıktan sonra ?v? harfi ile o anda hangi sunucuya hangi paketi attığını görebiliriz.
Toplamda 255 makine taradı ve hangi makinede hangi portların açık olduğunu bize listeledi.
Nmap?e Tarama Listesi Verme
Eğer bulunduğunuz ağda hangi makinelerin açık olduğunu biliyorsanız ip adreslerini nmap e liste olarak verebilirsiniz. Nasıl mı ? Ip adresileri bir text dosyasına kaydetip aşağıdaki belirtilen komut ile nmap?e liste olarak verebiliriz.
Resimde belirtildiği gibi tarama yapmak istediğimi IP adreslerini text dosyasına yazıp tarama.txt adı ile kaydediyoruz. Sonrasında aşağıda belirttiğimiz komut ile nmap?e IP leri liste olarak vermiş oluyoruz.
Bu tarama ilgili makinelerin açık olup olmadığını belirleyecek ve bu makineler üzerinde syn taraması yapıcak.
Ek bilgi
nmap IP adresi dışında host(ör:example.com) taraması da yapabilir.
Örenk
Kod:
$ nmap example.com
$ nmap example.com
$ nmap 10.0.2.2?5 bu şekilde 2. ve 5. hostlar dahil olmak üzere nmap de tarama yapabilirsiniz.
Nmap İle Detaylı Port Taramaları
$ nmap 10.0.2.5 -sS → bu komutta syn taraması yapılmıştır, nmap?e harhangi bir parametre verilmez ise default olarak syn taraması yapmaktadır. En hızlı yapılan tarama çeşitidir.
Kod:
$ nmap 10.0.2.5 -sT
Tcp Connect taraması, bu syn taramasından farklı olarak 3 lü el sıkışmasının tamamlandığı tarama çeşitidir. Bunun avantajı 3 el sıkışması tamamlandığı için o port üzerinde çalışan servis?in öğrenilmesi daha olasıdır. Yani daha detaylı ve daha doğru bir şekilde servis bilgisi almamıza olanak sağlar. Örneğin 80 portunda default olarak http servisi çalışıyorken bu tarama ile eğer farklı bir servis çalıştırılıyor ise bunun bilgisini elde etmiş olacağız.Bu taramanın dezavantajı ise loglarda kayıt bırakmamız ve firewall ya da IPS gibi cihazlar tarafından engellenme ihtimalimiz çok yüksektir, sebebi ise sürekli olarak yetkisiz bir tcp el sıkışması yapılmasıdır.
$ nmap 10.0.2.5 -sU → Udp taraması yaparken kullandığımız parametredir. Udp taramaları diğer taramalara göre oldukça yavaştır. Bu durum avantaj olabilir, genelde udp taramaları için önlem alınmadığı anlamına gelebilir.
Kod:
$ nmap 10.0.2.5 -sU
$ nmap 10.0.2.5 -sA →Tcp ack taraması. Bu tarama çeşidi diğerlerinden farklı olarak portun açık olup olmadığıyla ilgilenmiyor.Sadece paketin karşı tarafa gönderilip geri dönmesine bakıyor.Aslında kontrol ettiğimiz şey karşımızdaki makine ile aramaızda bir firewall ips ya da paket engelleyici bir uygulama var mı bunu test etmemizi sağlıyor.
Kod:
$ nmap 10.0.2.5 -sA
Ek bilgi
Kod:
$ sort -r -k3 /usr/share/nmap/nmap-service
Yukarıda ki komut yardımı ile en çok kullanılan 1000 portu bu listeleyebiliriz.
$ nmap 10.0.2.5 --top-ports 100 → en çok kullanılan 100 portu bu komut yardımı ile tarayabiliriz.
Kod:
$ nmap 10.0.2.5 --top-ports 100
$ nmap 10.0.2.5 -p 1?100 → Burada belirtilen aralıktaki portları taramasını sağlayabiliriz.
Kod:
$ nmap 10.0.2.5 -p 1?100
$ nmap 10.0.2.5 -p 1?100 -exclude-ports 23,25 → Bu komutta 23. ve 25. portlar hariç 1?100 arasında sını sağlıyorumazyer alan portlarda tarama yap.
Kod:
$ nmap 10.0.2.5 -p 1?100 -exclude-ports 23,25
$ nmap 10.0.2.5 -p- → Bütün portları (65536) taramamızı sağlar.(0. port dahil)
Kod:
$ nmap 10.0.2.5 -p-
$ nmap 10.0.2.5 -p-
Nmap ile Servis ve İşletim Sistemi Taraması
Normal bir port taramasında nmap portların üzerinde çalışan servisleri varsayılan olarak yazar. Bu durum bize sağlıklı bir sonuca ulaştırmamış olur. Daha doğru bilgi için nmap ile servis taraması yapmalıyız.
Service
$ nmap 10.0.2.5 -sV→ Nmap de servis taraması ve version tespiti yapmamız sağlar. Burada belirtilen versionların ne tür zaafiyetleri olduğunu bularak ona göre tedbir almamıza olanak sağlar.
Kod:
$ nmap 10.0.2.5 -sV
İşletim Sistemi(OS)
$ nmap 10.0.2.5 -O → Nmap de işletim sistemi ve versionu taraması yapmamızı sağladı.
Son olarak kısa bir özet geçmem gerekir ise;
nmap 10.0.2.5 (Tek bir hedef için)
nmap example.com (Tek bir Host için)
nmap 10.0.2.0/24 (Bir Subnet?i taramak için)
nmap -F example.com (En çok kullanılan 100 Port?u taramak için)
nmap -p- example.com (65535 Portu taramak için)
nmap -sT example.com (Taramak için TCP kullanma)
nmap -A example.com (İşletim sistemi ve Servis bulmak için)
nmap -sV example.com (Standart servis tespiti için)
kullanabilirsiniz.
nmap example.com (Tek bir Host için)
nmap 10.0.2.0/24 (Bir Subnet?i taramak için)
nmap -F example.com (En çok kullanılan 100 Port?u taramak için)
nmap -p- example.com (65535 Portu taramak için)
nmap -sT example.com (Taramak için TCP kullanma)
nmap -A example.com (İşletim sistemi ve Servis bulmak için)
nmap -sV example.com (Standart servis tespiti için)
kullanabilirsiniz.
Yukarıda yazılanlar Nmap için yeterli değil. Nmap?da kullanılabilecek bir çok farklı ve faydalı sorgu var. Bunları zamanla kendinize göre geliştirebilirsiniz veya internette yapacağınız aramalarla da çok daha fazlasına erişebilirsiniz. Keşfettikçe farkediceksiniz ki gerçekten yararlı bir Tool ama şunu da unutmamak lazım NMAP her zaman %100 doğru bilgi de vermemektedir.
Saygılarımla... SessizBozKurt