Ana sayfa » Detaylı Bir Şekilde Nmap Kullanımı
Çeşitli Network Konuları

Detaylı Bir Şekilde Nmap Kullanımı

nmap-kullanimi

Nmap Nedir, Ne İşe Yarar?

Öncelikle konumuza başlamadan önce nmap adlı uygulamamızın tanımını yapmak ve nerelerde hangi amaçlar için kullanıldığından bahsetmek yerinde olacaktır. Bu bağlamda Nmap, herhangi bir ağda bulunan cihaza veya cihazlara çeşitli paketler yollayıp bu paketlere verilen cevapları inceleyerek, ağ ve hedef cihaz ile ilgili bilgiler toplayan gelişmiş bir ağ tarama uygulamasıdır. Gordon Lyon adlı bir network uzmanı tarafından yazılmıştır.

Günümüzde ağ topolojisinin çıkarılmasında, sızma testlerinde, ağ envanterinin yönetiminde, ağ haritasının çıkarılmasında gibi birçok amaç için aktif bir şekilde kullanılmaktadır. Bu yazımızda nmap adlı aracımızı, bir pentester gözü ile yani sızma testlerindeki kullanım amacı ile inceleyeceğiz. Lafı daha fazla uzatmadan direkt olarak aksiyona geçelim.

Nmap Kurulumu

Eğer bilgisayarınızda Kali Linux, Parrot veya Blackbox gibi pentest uygulamaları için geliştirilmiş bir OS yüklü ise, nmap adlı uygulamamız otomatik olarak yüklü bir şekilde gelmektedir. Eğer farklı bir işletim sistemi kullanıyor iseniz, uygulamamızı kurmanız gerekmektedir. Öncelikle linux işletim sistemlerinde nasıl yükleneceğine bakacak olursak, büyük ihtimalle kullandığınız linux işletim sisteminin depolarında nmap bulunuyordur. Çünkü bir hayli popüler bir uygulama, bu uygulamayı da depolarına almamışlar ise yazıklar olsun! diyerek aşağıdaki komutu denemenizi öneriyorum.

sudo apt-get install nmap

Eğer Red Hat, Fedora, Mandrake gibi YUM paket yöneticisini kullanan bir linux işletim sistemi kullanıyor iseniz, aşağıdaki komutu uygulayın.

yum install nmap

Bunlar olmadıysa veya ben Windows & Mac OSX kullanıyorum diyorsanız. Nmap adlı uygulamamızın download page kısmını bir zahmet ziyaret ediverin.

Nmap Kullanımı

Kurulumu başarılı bir şekilde geçtiğinizi varsayarak, izninizle uygulamamızın kullanımını anlatmaya başlamak istiyorum. Öncelikle nmap’in linux kullanımı ile windows kullanımı arasında neredeyse fark yok gibi. Bilhassa komutlar tamamen aynı, sadece işleyişler açısından bazı farklılıklar olabilir ki, bu durum zaten son kullanıcıyı alakadar etmemektedir. Buna ek olarak uygulamamızı zenmap adındaki bir GUI ile de rahat bir şekilde kullanabilirsiniz. Bu kısa bilgilere de değindikten sonra isterseniz konumuza nmap’i temel parametreleri ile birlikte inceleyerek devam edelim.

-sP veya -sn Parametreleri

İlk olarak inceleyeceğimiz parametrelerimiz -sP ve -sn parametreleridir. Kısaca bu iki parametre aynı işlemi yapmaktadır. Biz bu parametreleri, bir ağda bulunan bilgisayarların tespiti için kullanacağız. Öncelikle bu testi yapabilmek için içinde bulunduğumuz ağdaki IP adresimizi veya default gateway adresini bilmemiz gerekmektedir. Bunun için terminalden ifconfig yazıp, kullandığınız interface kısmındaki inet bölümünden ip adresinizi öğrenebilirsiniz. Default gateway adresini ise, yine terminalden route -nee komutunu yazarak öğrenebilirsiniz. Benim uygulamaları yapacağım ağdaki private ip adresim 192.168.100.40 şeklinde, default gateway adresi ise 192.168.100.1 şeklindedir. Bu bilgiler ışığında ağımda bulunan tüm cihazları aşağıdaki komut vasıtası ile bulabilirim.

nmap -sP 192.168.100.0/24

Tekrar belirtiyorum, -sP parametresinden sonra girmiş olduğum IP adresi, benim bulunduğum ağa özeldir. Siz bahsetmiş olduğum ifconfig ve route -nee komutlarını kullanarak kendi ağınızdaki default gateway adresine göre tarama yapmalısınız. Aksi taktirde hatalı sonuçlar elde edebilirsiniz. Evet konumuza dönecek olursak komutumuzu yazdıktan sonra aşağıdakine benzer bir çıktı alacağız.

nmap kullanımı

Gördüğünüz üzere, ağdaki ip adreslerini ve bu ip adreslerine ait cihazların mac adreslerini -sP parametresi sayesinde elde etmiş olduk. Bu parametrenin çalışma mantığına bakacak olursak, -sP parametresi yerel ağda tarama yaparken ağdaki tüm ip adreslerine broadcast olarak arp paketleri yollar. Bu yolladığı arp paketlerine dönen cevaplara bakarak, ağdaki aktif cihazları tespit eder. Bu durumu Wireshark adlı uygulama ile çok rahat bir şekilde görebiliriz.

nmap-kullanimi-wireshark
-sP parametresinin wiresharktaki görüntüsü

Şimdi ise bir diğer parametremiz olan -sT ile TCP taramasından bahsedelim.

-sT Parametresi

Bulunduğumuz ağdaki IP adresleri bulduktan sonra yapılacak iş, bu ip adreslerine ait cihazların hangi portlarının açık olduğu ve bu portların arkasında çalışan processlerin neler olduğunu tespit etmek. Bu tespit etme işlemini ise TCP veya UDP port taraması yaparak gerçekleştireceğiz. Bu başlık altında TCP port tarama parametresi olan -sT anlatacılacaktır. Tabi -sT parametresi ile yapılan port taramasının nasıl çalıştığını anlayabilmek için öncelikle TCP protokolünün nasıl çalıştığını, three-way handshake kavramının ne olduğunu ve TCP segmentinin yapısını iyi bilmek gerekmektedir. Bu sebepten dolayı yüzeysel bir şekilde bu kavramlara değinmekte fayda olduğunu düşünüyorum.

TCP Nedir?

TCP, transport layer katmanında çalışan bir iletim protokolüdür. TCP/IP modelinin en gözde protokolüdür bana göre. Bu protokol vasıtası ile client ve server tarafında çalışan processler birbirleri ile iletişim kurabilirler. Güvenli, veri kaybı olmayan, sağlıklı bir iletişim hep TCP protokolünün sağlamış olduğu servisler vasıtası ile gerçekleşmektedir. Bu servislerin nasıl işletildiğini anlayabilmek için biraz daha detaya inmek gerekiyor. Hatta bu konu için küçük bir kitapçık yazılsa bile yeridir. Fakat konumuzun uzamaması açısından kısaca anlatmak istiyorum.

Uygulama katmanında veriler, socketler vasıtası ile bir alt katman olan taşıma katmanına gönderilir. Taşıma katmanında veriler küçük parçalara bölünür ve her bir parçanın başına, o processin kullandığı socketin cinsine bağlı olarak TCP veya UDP headerları eklenir. Mesela bir internet uygulaması olan web, HTTP protokolünü kullanır ve HTTP protokolüde taşıma katmanı protokolü olarak TCP protokolünü kullanır. Buradan çıkacak sonuç: HTTP protokolü kullanan client veya server verilerini TCP socketini kullanarak bir alt katmana gönderir. Bu verilere de TCP başlıkları eklenerek bir alt katmana iletilir. Hatta bu TCP başlığı eklenmiş verilere de segment adı verilmektedir. Eğer veriye TCP başlığı eklenmiş ise TCP segment, UDP başlığı eklenmiş ise UDP segment adı verilmektedir. İşte bizim TCP port taraması yaparken en çok dikkat etmemiz gereken bu TCP başlık kısmıdır. Aşağıdaki resimde de bir TCP başlığının yapısı görülmektedir.

TCP basligi

Bu TCP başlığındaki 9 bitlik control flags olarak belirtilen kısım, three-way handshake olarak adlandırılan işlemi ve nmap’in yaptığı taramanın temelini oluşturuyor. İşte şimdi biraz daha kafanızda oturduğunu tahmin ediyorum. Bu control flaglarının gerçek hayatta nasıl kullanıldığını three-way handshake işlemi üzerinden anlatmaya çalışalım;

  • Öncelikle client, iletişime geçmek istediği bir serverın tcp portuna, control flaglarından SYN bitini 1 olacak şekilde işaretleyerek bir paket yollar. Bu pakete de SYN paket adı verilmektedir. Artık yazının ilerleyen kısımlarında da Flag bitlerine göre paketler adlandırılacaktır.
  • SYN paketi servera gider, eğer herhangi bir filtreleme işlemi olmadıysa server bu paketi alır ve cliente SYN+ACK bitleri 1 olan bir geri bildirim paketi yollar.
  • SYN+ACK paketini alan client, servera ACK biti 1 olarak işaretli olan bir ACK paketi yollar. Bu pakette servera ulaştıktan sonra three-way handshake tamamlanmış olur. Artık client ve server arasında iletişim başlayabilir ve bu iletişimi de TCP protokolü kontrol eder.

Peki şimdi asıl konumuz olan Nmap ile TCP port taramasına dönecek olursak, nmap hedef cihazın tüm portlarına sırası ile SYN paketleri yollayarak bir three-way handshake yakalamaya çalışır. Eğer SYN paketi yolladığı port ile three-way handshake yakalar ise o portun açık olduğuna karar verir. İşte nmap adlı uygulamanın -sT parametresi bu şekilde çalışmaktadır. Three-way handshake yakalamaya çalıştığı için diğer port taramalarına nazaran yavaştır. Bunu da belirtmekte fayda var. Uygulamasına geçecek olursak, nmap üzerinde TCP port taraması yapmak için aşağıdaki komutumuzu yazalım.

nmap -sT 192.168.100.1

Ben bu uygulamada 192.168.100.1 adlı IP adresindeki cihaza TCP port taraması yaptım ve aşağıdaki sonuçları elde ettim.

nmap-tcp-taramasi

Bu çıktıdan ve yukarıdaki anlattıklarımdan yola çıkarak, nmap’in 21,23,53,80,443,2000,8291 numaralı portlara SYN paketleri yolladığını ve bu paketlere SYN+ACK cevapları alıp ACK paketi yollamak suretiyle three-way handshake yakaladığını rahatlıkla söylebiliriz. Bu işlemler sonucu da bu portların açık olduğuna kanaat getirip, ekrana bu çıktıyı basmıştır. Şimdi göreceğimiz parametremiz ise -sS parametresidir.

-sS Parametresi

Bu parametre TCP ve UDP port taramalarına göre bir hayli hızlıdır. Bu hız ise -sS parametresinin çalışma mantığından kaynaklanmatadır. İsterseniz direk bu çalışma mantığına geçelim. Hatırlarsanız Nmap TCP taraması yaparken, bir handshake yakalayıp, o şekilde değerlendirme yapıyordu. Fakat -sS ile SYN taraması yaparken handshake yakalamaya gerek yoktur. Yani Nmap, hedef cihazın portlarına SYN paketi yollar, eğer serverdan SYN+ACK paketi gelirse o portun açık olduğu değerlendirilir ve hedef porta RST paketi yollanarak bağlantı sonlandırılır. Eğer SYN+ACK paketi yerine serverdan RST+ACK paketi dönerse o portun kapalı olduğu değerlendirilir. Bunlardan farklı olarak ICMP PORT UNREACHABLE paketi dönerse, portun firewall tarafından SYN paketlerini almasını engellenmiş olması kuvvetle muhtemeldir.

SYN taraması

Uygulama olarak aşağıdaki komutu terminalimize kendi IP adresimiz ile değiştirerek yazalım.

nmap -sS 192.168.100.1

nmap-kullanimi-syn-scan

Ayrıca bu taramaları yaparken bir taraftanda Wireshark adlı uygulama ile interfacenizdeki hareketleri inceleyebilirsiniz. Bu inceleme işlemi ile arkaplanda işlerin nasıl döndüğünü daha rahat anlayabilirsiniz.

Nmap -p Parametresi

Nmap taramaları yaparken default olarak en çok kullanılan ilk 1000 portu tarar, tabii siz aksini belirtmediğiniz sürece. İşte aksini belirtme işlemi -p parametresi ile gerçekleşmektedir. Nmap’in bu parametresini kullanarak belirli portları tarayabilirsiniz. Mesela nmap -sS -p 21 192.168.100.1 komutu ile sadece 21 portunu taratabilirsiniz. nmap -sS -p 21,53,80,443,161 192.168.100.1 komutu ile de örnekte de görüldüğü üzere birden fazla portu taratabilirsiniz.

–top-ports Parametresi

Bu parametrenin yanına bir rakam belirterek nmap bünyesinde tanımlı olan en çok kullanılan port numaralarına göre tarama yapabilirsiniz. Mesela nmap -sS –top-ports 10 192.168.100.1 komutu ile en çok 192.168.100.1 numaralı IP adresine sahip cihazda en çok kullanılan 10 portun taramasını yapabilirsiniz. Hazır laf en çok kullanılan portlardan açılmışken, -F parametresi ile de en çok kullanılan 100 portu taratabilirsiniz. Bunuda bu başlık altında belirttikten sonra, diğer konu başlığımız olan -sU parametresini inceleyelim.

-sU Parametresi

Nmap adlı uygulamamızın -sU parametresi ile UDP paketleri yollanarak bir port taraması yapılabilir. Eğer gönderilen UDP paketlerine UDP ile cevap veriliyorsa portun açık olduğu değerlendirilir. Yok UDP ile cevap vermiyor, ICMP PORT UNREACHABLE paketi ile cevap veriyorsa port kapalı veya firewall tarafından engellenmiş olarak değerlendirilir. Bunlardan farklı olarak hiç cevap vermiyorsa, port ya kapalıdır ya firewall tarafından filtrelenmiştir yada açıktır. Uygulama için aşağıdaki komutu kendi ip adresiniz ile değiştirerek yazınız.

nmap -sU -F 192.168.100.1

Bu komuttan sonra ben aşağıdaki gibi bir çıktı aldım.

nmap-udp-port-scanner

-sV Parametresi ile Version Tarama

İşte geldik, nmap’in en can alıcı parametresine. Bu parametre ile hedef cihazın portlarının arkasında çalışan processler ile ilgili detaylı bilgiler edinebiliriz. Mesela hedef cihazın 80 port numaralı socketinin arkasında çalışan processin versiyonu ile ilgili detaylı bilgiler edinebiliriz. Örnek verecek olursak, bu process APACHE adlı server uygulamasının 7.0 numaralı versiyonu olabilir. Başka bir örnek ise; hedef cihazın 21 numaralı portunda backdoor bulunan vsftpd adlı 2.3.4 versiyon numaralı bir uygulamaya ait process çalışıyor olabilir. İşte bu tarz hassas bilgileri Nmap’in -sV parametresi ile öğreniyoruz. Bu bilgiler ile de hedef cihazda çalışan processler exploit edilebilmektedir. İşte yazının başında da belirttiğim üzere Nmap’in siber güvenlik uygulamalarında kullanımına en büyük örnek bu olsa gerek. Uygulama olarak görmek için aşağıdaki komutumuzu yazalım ve inceleyelim.

nmap -sS -sV 192.168.100.1

Benim aldığım çıktı ise şu şekilde.

nmap-versiyon-taramasi

Sıradaki parametremiz -O parametresi.

-O Parametresi

Nmap’ta hedef cihazın işletim sistemini belirlemek için -O parametresi kullanılmaktadır. Aşağıdaki komut ile hemen bir deneme yapalım.

nmap -sS -O 192.168.100.1

Çıktıyı inceleyelim

-T Parametresi İle Hız Ayarlama

Uygulamamızın -T parametresi ile tarama hızı ayarlanabilir. Uygulamanın bu özelliği sayesinde, belli bir sürede belli bir sayıdan fazla paket geldiği zaman, o paketin geldiği IP adresini blocklayan güvenlik cihazları aşılabilir. Bu -T parametresi de kendi bünyesinde 6 adet numara alır. Bu numaralar anlamları itibariyle aşağıdaki gibidir;

  • 0 Paranoid = Gönderdiği paketler arasında 5 dakika kadar bekler. Harbiden paranayok bir hareket
  • 1 Sneaky = Gönderdiği paketler arasında 15 saniye kadar bekleyerek tarama yapar.
  • 2 Polite = Gönderdiği paketler arasında 0.4 saniye kadar bekleyerek tarama yapar.
  • 3 Normal = Varsayılan olarak bu tarama tipi kullanılır.
  • 4 Aggressive = Bu tarama tipinde, cevapların dönmesi için sadece 1.25 saniye beklenir.
  • 5 Insane = Cevabın dönmesi için 0.3 saniye beklenerek paralel bir tarama gerçekleştirilir.

Nmap ile İlgili Diğer Komutlar

  • –traceroute = Bu parametre ile hedef cihaz ile port taraması yapan cihaz arasındaki network haritası çıkartılabilir.
  • –open-ports = Çıktı sonucunda sadece açık portlar gösterilir.
  • -A = Agrassive scan olarakta adlandırılır. -sC + -sO + -sV + –traceroute işlemlerinin hepsini bu komut vasıtası ile yapabilirsiniz.
  • –host-timeout = Hedef IP adresinin taramak için ayrılacak maksimum zamanı belirler.

Evet arkadaşlar Nmap kullanımı ile ilgili olarak anlatacaklarım bu kadar. Tabii anlatılabilecek elbette bu kadar değil. Daha detaylı bilgi edinmek için Nmap’in kendi sitesini ziyaret edip oradan tutorialları inceleyebilirsiniz. Bir sonraki yazımda görüşmek üzere.

Yazar Hakkında

Hakan İlbiz

Siber güvenlik, linux, programlama ve network gibi bilgisayar bilimlerini kapsayan alanlarda yaptığı çalışmalardan edindiği tecrübeleri, kurucusu olduğu kodputer.com adlı web sitesinde okurlarına sunan ve bundan büyük bir haz duyan Sakarya Üniversitesi Bilgisayar Mühendisliği öğrencisi.

Yorum Ekle

Yorum Yazmak İçin Tıkla