Bugünkü yazımda Hacker’ların ve sızma testleri gerçekleştirenlerin efsane aracı olan Nmap ve kullanımından bahsedeceğim. İlk olarak Nmap’in ne olduğuna bakalım. Nmap, ağdaki makinelerin portlarına farklı paketler gönderip ve karşıdan gelen cevaplara bakarak makinelerin açık olup olmadığını, açık olan portlar üzerinde hangi servislerin çalıştığını, makine üzerinde hangi işletim sisteminin olduğunu öğrenmemize olanak sağlayan açık kaynak kodlu kullanışlı bir araçtır. Nmap’in çok farklı ve kapsamlı özellikleri de bulunuyor, ihtiyacınıza göre komut satırından paremetrik olarak çağırarak kullanabilirsiniz. Güvenlik duvarı olup olmadığının tespit edilmesi, versiyon tespiti, zafiyetlerin taranması ve içerisinde hazır bulunan NSE Scriptleri sayesinde daha bir çok özelliği toplu bir paket içerisinde barındırıyor.
Eğer kaynak kodlarını merak eden arkadaşlar varsa bu adresten programın kaynak kodlarına ulaşabilirsiniz. Debian, Kali Linux üzerinde Nmap yüklü olarak gelmektedir, eğer bu işletim sistemlerinden birini kullanıyorsanız yükleme yapmanıza gerek yoktur. Farklı bir Linux sürümü kullanıyorsanız aşağıdaki kodları kullanarak Linux işletim sisteminize Nmap’ı kurabilirsiniz.
Apt-get:
#apt-get install nmap
Yum:
#yum install nmap
Pacman:
#pacman -S nmap
Ben Kali Linux üzerinde gelen Nmap’i kullanıyorum, ama sizin işletim sisteminiz windows ise Nmap’in yükleme sayfasından yükleme talimatlarına göre windows işletim sisteminize kurabilirsiniz.

Nmap Aracının Kullanımı

Sizlere Nmap aracının en çok kullanılan özelliklerini ve hangi parametrelerin ne işe yaradığını sistematik olarak anlatmaya çalışacağım. Hadi hemen başlayalım.
Komut Kullanım şekli: nmap [tarama türü] [opsiyonlar] [hedef tanımlama]
Aşağıdaki konu başlıklarının sağ köşesinde bulunan “+” işaretine tıklayarak içerikleri görüntüleyebilirsiniz.

1) Farklı Hedef Tanımlama Şekilleri:
# nmap 192.168.0.1 –> Tek bir IP için tarama yapacaksak nmap’i bu şekilde kullanabilirsiniz.
# nmap 192.168.0.1-15 –> 1 ile 15 ipleri dahil olmak üzere 16 IP adresi için tarama yapacaksak nmap’i bu şekilde kullanabilirsiniz.
# nmap 192.168.0.1/24 –> 255.255.255.0 Subnet’i için tarama yapacaksak nmap’i bu şekilde kullanabilirsiniz.
# nmap ozdenercin.com –> Domain için tarama yapacaksak nmap’i bu şekilde kullanabilirsiniz.
# nmap -iL ip_listesi.txt –> ip_listesi.txt adlı dosya içerisinde var olan ip adresleri için tarama yapacaksak nmap’i bu şekilde kullanabilirsiniz.
2) Keşif Aşaması
# nmap –sP 192.168.0.1/24 –> Ping Sweep: Tüm sistemlere ping atarak, yanıt veren sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –PS 192.168.0.1/24 –> Ping SYN: TCP SYN Ping paketleri ile sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –PA 192.168.0.1/24 –> Ping ACK: TCP ACK Ping paketleri ile sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –PU 192.168.0.1/24 –> Ping UDP: UDP Ping paketleri ile sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –PE 192.168.0.1/24 —>Ping ICMP Echo: ICMP Echo Request paketleri kullanarak sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –PR 192.168.0.1/24 —> Ping ARP: ARP Ping paketleri kullanarak sistemlerin açık yada kapalı olduğunu tespit eder.
# nmap –traceroute 192.168.0.1/24 —> Traceroute: Traceroute özelliğini aktifleştirerek hedefe giden paketin yolunun analizi yapılır.
# nmap –R 192.168.0.1/24 —> Reverse DNS Keşif: IP adresinden hostname bilgisi elde edilmesi için aktifleştirilir.
# nmap –system-dns 192.168.0.1/24 —> DNS Keşif: İşletim sistemindeki DNS serverları kullanır.
3) Tarama Sırasındaki Port Durumları ve Anlamları
Open> Port açıktır ve açık bulunan portu dinleyen bir uygulama mevcuttur.
Closed> Port kapalıdır fakat erişilebilirdir. Portu dinleyen herhangi bir uygulama yoktur.
Filtered> Filtreleme işlemi dolayısıyla nmap portun açık olduğunu tespit edememiştir.
Unfiltered> ACK Scan için dönen bu durumda portlar erişilebilir fakat açık olduğu tespit edilememiştir.
Open | Filtered> UDP, IP Protocol, FIN, NULL ve XMAS Scan için dönen bu durumda portların açık veya filtrelenmiş olduğu tespit edilememiştir.
Closed | Filtered> IDLE Scan için dönen bu durumda portların kapalı yada filtrelenmiş olduğu tesbit edilememiştir.
4) Port Tarama Teknikleri
# nmap -sS 192.168.0.1> Tarama işlemi gönderilen SYN paketine gelen cevaba göre gerçekleşir. SYN paketine karşılık RST+ACK geliyorsa portun kapalı olduğu anlaşılır ve tarama bir sonraki port ile devam eder. Eğer SYN+ACK geliyorsa portun açık olduğu anlaşılır ve cevap olarak RST gönderilerek iletişim kurulmadan tarama işlemi tamamlanır.
# nmap –sT 192.168.0.1  —> Tarama işlemi yine gönderilen SYN paketine gelen cevaba göre gerçekleşir. SYN paketine karşılık RST+ACK geliyorsa portun kapalı olduğu anlaşılır ve tarama bir sonraki port ile devam eder. Eğer SYN+ACK geliyorsa portun açık olduğu anlaşılır ve cevap olarak ACK gönderilerek iletişim kurulur ve tarama tamamlanır.
# nmap –sU 192.168.0.1> Tarama işlemi gönderilen UDP paketlerine gelen cevaba göre gerçekleşir. Gelen cevap eğer ICMP Port “Unreachable” ise portun kapalı olduğu anlaşılmaktadır. Gelen cevap eğer UDP paketi ise portun açık olduğu anlaşılabilir.
# map –sN 192.168.0.1> NULL Scan’de gönderilen paket herhangi bir “Flag” ‘e sahip değildir.
# nmap –sF 192.168.0.1> FIN Scan’de gönderilen paket “FIN Flag” ‘ine sahiptir.
# nmap –sX 192.168.0.1> XMAS Scan’de gönderilen paket FIN gibi farklı flaglere sahip olabilir.
# nmap –sA 192.168.0.1 > ACK Flag li gönderilen paketlere gelen cevaplar ile portun durumu analiz edilir. Gelen paketlere eğer RST paketleri dönüyorsa portun “Unfiltered” olduğu anlaşılır. Herhangi bir cevap dönmezse yada “ICMP Unreachable” paketi dönerse portun Filtered olduğu anlaşılmaktadır.
# nmap –sW 192.168.0.1 > Window Scan ACK ile benzer özellikler taşımaktadır. ACK Scan’den farklı olarak açık ve kapalı portları gösterebilmektedir.

5) Port Belirleyerek Taratma
# nmap –sS -F 192.168.0.1> En yaygın 100 portu tarar.
#
nmap –sS –p80 192.168.0.1> Port 80 i tarar.
#
nmap –sS –p1-100 192.168.0.1> 1 ile 100 arasındaki portları tarar.
#
nmap –sS –p1,100,102 192.168.0.1> 1,100 ve 102. portları tarar.
#
nmap –sS –top-ports <n> 192.168.0.1> En sık kullanılan n portu tarar.
#
nmap –sS –p- 192.168.0.1> 65535 portun hepsini tarar.
# nmap –sS –p U:53,T:22 192.168.0.1> UDP 53 ve TCP 22. portu tarar.
6) Servis ve Versiyon Keşif Taraması
# nmap –sS -sV 192.168.0.1> Yapılan port taramasından elde edilen bilgiler bir çok zaman bize yetmeyecektir. O portta hangi servisin çalıştığı ve servisin hangi versiyonunun kullanıldığını bilmek, hedefi tanıma aşamasında bizi bilgilendirecektir. Bu şekilde kullanım bize daha fazla bilgi verecektir.
7) İşletim Sistemi Taraması
# nmap –sS -O 192.168.0.1> Yapılan port taramasından elde edilen bilgiler ve servis analizi yine bize yetmeyebilir. Nmap bizim için işletim sistemi analizi yapabilir. İşletim sistemi tespitinin yapılabilmesi için nmap tarama sırasında minimum bir açık bir kapalı port bulmalıdır.
# nmap –sS -A 192.168.0.1 –> OS Analizi ve Versiyon Keşif yapmak için bu komutu kullanabiliriz.
8) Nmap ile Script Taraması
# nmap –sC 192.168.0.1  > Tüm scriptler kullanılarak yapılabilecek test komutudur.
# nmap –script “http*” 192.168.0.1 –> Http ile başlayan scriptleri kullanarak tarama yapacaktır.
# nmap –script dns-zone-transfer.nse –script-args dns-zone-transfer.domain=ozdenercin.com –> Dns Zone Transfer açıklığının kontrolü için kullanılabilecek scripttir.
9) Firewall ve IDS Atlatma Teknikleri
# nmap –f 192.168.0.1 > Gönderilecek olan paketleri parçalama parametresidir.
# nmap –MTU (MTU Değeri) 192.168.0.1 –> Manuel olarak MTU değeri atamak için kullanılır. MTU Türkçe anlamı Maksimum İletim Birimi’dir. Veri aktarımında her bir paketin en en fazla olabilecek boyutu anlamına gelir. MTU değeri byte cinsinden yazılır. Ağ yapısına göre değişebilir.
# nmap –D (Spooflanan ip) 192.168.0.1 –> IP Spoofing için kullanılır. İstenilen IP adresinden TCP/IP paketleri (tcp, udp, ip, icmp, http, smtp, dns vb.) gönderebilme işlemine IP spoofing , ip sahteciliği denir. Sahte ip paketini alan taraf paketin gerçekten gönderilen ip adresinden gelip gelmediğini bilemez.
# nmap –spoof-mac ‘cisco’ 192.168.0.1 –> Gönderilecek olan paketleri parçalama parametresidir.
10) Nmap Sonuçlarını Dosyaya Yazdırma Parametreleri
# nmap –sS –oN dosya.txt 192.168.0.1 > Normal Nmap çıktısını dosya.txt içerisine yazar.
# nmap –sS –oX dosya.xml 192.168.0.1 –> XML formatında Nmap çıktısını dosya.xml içerisine yazar.
# nmap –sS –oG dosya.txt 192.168.2.1 –> Düzenlenebilir Nmap çıktısı verir.
# nmap –sS –oA dosyaismi 192.168.0.1 –> Tüm formatlarda Nmap çıktısını dosyaismi şeklinde kaydeder. eğer tarama sırasında ara verilmişse # nmap –resume dosyaismi komutuyla devam edebilirsiniz.
11) Diğer Nmap Parametreleri
–Pn Parametresi –> Ping atmak istenmediğinde kullanılır.
–h Parametresi –> Yardım almak için kullanılır.
–V Parametresi –> Nmap versiyon kontrolü için kullanılır.
–v Parametresi –> Çıktı ayrıntılarını görmek için kullanılır.
–open Parametresi –> Yanlızca açık portları göstermek amaçlı kullanılır.

–6 Parametresi —> IPv6 aktif edilmek istendiğinde kullanılır.
–A Parametresi –> Agresif tarama opsiyonunu aktifleştirir.
–Pn Parametresi —> Ping atılmak istenmediğinde kullanılır.
–e [interface] Parametresi => Network kartı tanımlamak amaçlı kullanılır.
–ttl Parametresi –> TTL değerinin ayarlanmasını sağlar.
–badsum Parametresi –> Hatalı checksum’a sahip paketler gönderir.
–data-length –> Paketlerin boyutunun ayarlanmasını sağlar.
Yukarıdaki parametrelerin işinize yarayacak şekilde kombine ederek kullanabilirsiniz. Umarım nmap kullanımı ile ilgili sizlerle paylaştıklarım faydalı olmuştur. Parametrelerin kullanımını sizde Kali Linux üzerinde komut satırında deneyip çıktıları yorumlayabilirsiniz. Bu size bu parametrelerin kullanımı hakkında tecrübe sahibi yapacaktır ve parametrelere aşina olmanızı sağlayacaktır. Unutmayın OSCP’ye hazırlanırken veya sızma testi yaparken en önemli araçlardan birisi olan nmap’i bilmeniz gerekmektedir. Şimdilik yazımı nmap’in kombine kullanımına bir örnek vererek tamamlıyorum.
# nmap –sS –sV –Pn –p- 192.168.0.1 –> Bu işlemde nmap SYN Scan tekniğini kullanacaktır ve aynı zamanda servis ve versiyon analizi yapacaktır. –Pn parametresi ping atmamasını sağlayacaktır. -p- parametresi 65535 portunda işleme dahil edildiğini belirtmektedir.