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.
# 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.
# 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.
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.
# 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.
# 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.
# nmap –sS -A 192.168.0.1 –> OS Analizi ve Versiyon Keşif yapmak için bu komutu kullanabiliriz.
# 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.
# 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.
# 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.
–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.
# 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.