Nmap nedir, nasıl kullanılır?

Şervan Alkan
8 min readMar 8, 2023

--

Herkese merhabalar, bugün sizlere pentesterların ve network mühendislerinin göz bebeği olan Nmap (Network-Mapper) aracından bahsedeceğim.

Open-source toolların vazgeçilmezlerinden olan bu ağ tarama aracı çoğu şirket ve hackerlar tarafından ağdaki sorunları/açıkları belirlemek, çözmek/sömürmek için kullanılır.

Nmap-Siber Güvenlik Web TR

Bilginin güç olduğu bu dönemde hedefiniz hakkında ne kadar bilgi toplayabilirseniz, amacınıza ulaşma ihtimaliniz de o kadar artar. Nmap sayesinde hedefimizdeki sistemlerin işletim sistemlerinden açık portlarına, portlarda çalışan servislerden bu servislerin sürümlerine kadar ulaşabiliyoruz.

ZenMap adı altında bir grafiksel kullanıcı arayüzü (GUI) ile karşımıza çıkan Nmap aslında CLI tabanlı bir port tarama aracıdır.

TryHackme eğitimini referans alacağım yazımızın kaynağına bu linkten erişebilirsiniz. Şimdi gelelim Nmap aracının ayrıntılarına.

Bu komutların birçoğunu bulabileceğiniz ve isteğinize göre size nmap komutları oluşturabilecek bu siteye bir göz atabilirsiniz.

Nmap help (linux → nmap -h) sayfasının içerdiği başlıklar üzerinden aracımızı tanımaya başlayalım.

1) Target Specification (Hedef tanımlama)

Bu bölümde tarayacağımız hedef sistemleri nasıl tanımlayabileceğimizi görüyoruz.

Nmap-Target Specification

Fotoğrafta görüldüğü gibi Nmap komutunu yazdıktan sonra tarayacağımız sistemin IP adresini direkt olarak verebileceğimiz gibi, domain adını, ip aralığını veya birden fazla IP adresini de verebiliyoruz.

nmap facebook.com
nmap 192.168.0.1
nmap microsoft.com/24
nmap 192.168.0.1 192.168.0.2

-iL parametresi ile taranacak sistemlerin ip adreslerini yerel bir dosyadan sağlamak için kullanabiliriz.

-iR parametresi ile taranacak sistemlerin adreslerini random olarak seçebiliriz.

— exclude parametresi ile parametreyi takip eden adresleri bu taramanın dışında tutabiliriz.

nmap -iL hedefipler.txt
nmap -iR 100 #100 adet adres random olarak seçilecek
nmap --exclude 192.168.1.1 #Belirtilen adres tarama dışında tutulacak

2) Host Discovery (Ana bilgisayar keşfi)

Bu bölümdeki parametrelerle hedef sistemlerde hangi ana bilgisayarların açık olup olmadığını tarayabiliriz. Açık olan bilgisayarları keşfettikten sonra port tabanlı taramalar yapılabilir.

Nmap-Host Discovery

-sL parametresi, tarama yapmadan yalnızca hedefleri listeler.

-sn parametresi, port taraması yapmadan sadece host discovery yapar.

-Pn parametresi, host discovery yapmadan sadece port keşfi yapar.

-PS, -PA, -PU parametreleri, verilen portlarda TCP SYN/ACK, UDP veya SCTP keşfi yapar.

-PR parametresi, local networkte ARP keşfi yapar.

-n parametresi, tarama esnasında DNS çözümlemesi yapmaz.

nmap 192.168.1.1-3 -sL #Tarama Yok. Yalnızca hedefleri listeler
nmap 192.168.1.1/24 -sn #Bağlantı noktası taramayı devre dışı bırakır. Yalnızca ana bilgisayar keşfi.
nmap 192.168.1.1-5 -Pn #Ana bilgisayar keşfini devre dışı bırakır. Yalnızca bağlantı noktası taraması.
nmap 192.168.1.1-5 -PS22-25,80 #x bağlantı noktasında TCP SYN keşfi, Varsayılan olarak bağlantı noktası 80
nmap 192.168.1.1-5 -PA22-25,80 #x bağlantı noktasında TCP ACK keşfi, Varsayılan olarak bağlantı noktası 80
nmap 192.168.1.1-5 -PU53 #X bağlantı noktasında UDP keşfi, Varsayılan olarak bağlantı noktası 40125
nmap 192.168.1.1-1/24 -PR #Yerel ağda ARP keşfi
nmap 192.168.1.1 -n #DNS çözümlemesini asla yapma

3) Scan Techniques (Tarama teknikleri)

Bu başlık altında farklı port tarama tekniklerini tanımlayabileceğimiz parametreler bulunmaktadır. Bu teknikler sayesinde güvenlik sistemlerinin atlatılması gibi şeyler yapılabiliyor. Daha fazlası için bu yazıya göz atabilirsiniz.

Nmap-Scan Techniques

-sS parametresi SYN port taraması yapmamızı sağlar.

-sT parametresi TCP connect taraması yapar.

-sU parametresi UDP port taraması yapar.

-sA parametresi TCP ACK port taraması yapar.

-sW, -sM parametreleri Window ve Maimon taramaları yapar.

nmap 192.168.1.1 -sS #TCP SYN bağlantı noktası taraması (Varsayılan)
nmap 192.168.1.1 -sT #TCP bağlantı noktası taraması (root ayrıcalığı olmadan varsayılan)
nmap 192.168.1.1 -sU #UDP bağlantı noktası taraması
nmap 192.168.1.1 -sA #TCP ACK bağlantı noktası taraması
nmap 192.168.1.1 -sW #TCP Pencere bağlantı noktası taraması
nmap 192.168.1.1 -sM #TCP Maimon bağlantı noktası taraması

4) Port Specification (Port tanımlama)

Burada ise aracın hangi portları tarayacağını belirleyebileceğimiz parametreler yer alıyor. Portlar, bilgisayarlar arasındaki iletişimin bel kemiğidir. saldıracağımız veya tarayacağımız portu spesifik olarak belirterek Nmap tarama esnasında kaybedeceğimiz zamanı minimuma indirgeyebiliriz.

Aksi söylenmezse Nmap (-p- parametresiyle), bilgisayarda bulunan 65535 adet portu tarayacaktır ki bu da uzun bir süre demek oluyor. Şimdi portları nasıl belirteceğimize bakalım.

Nmap-Port Specification

-p parametresiyle tarayacağımız portu direkt olarak verebiliriz, üzerinde çalışan servisi yazabiliriz, port aralığını belirleyebiliriz ve tüm portları taratabiliriz.

-F parametresiyle hızlı tarama gerçekleştirebiliriz. (100 port)

— top-ports x parametresiyle ilk x portu tarayabiliriz.

nmap 192.168.1.1 -p x               #x portunu tarama
nmap 192.168.1.1 -p x- #x-y aralığındaki portları tarama
nmap 192.168.1.1 -p U:53,T:21-25,80 #Çoklu TCP ve UDP portları tarama
nmap 192.168.1.1 -p- #Tüm portları tarama
nmap 192.168.1.1 -p http,https #Servis isminden port tarama
nmap 192.168.1.1 -F #Hızlı port tarama (100 port)
nmap 192.168.1.1 --top-ports x #İlk x portu tarama
nmap 192.168.1.1 -p-65535 #İlk bağlantı noktasını aralıkta bırakmak, taramanın 1 numaralı bağlantı noktasından başlamasını sağlar
nmap 192.168.1.1 -p0- #Son bağlantı noktasını aralıkta bırakmak, taramanın 65535 numaralı bağlantı noktasından başlamasını sağlar

5) Service and Version Detection

(Hizmet ve sürüm tespiti)

Tarayacağımız port üzerinde hangi hizmetin ve sürümün çalıştığının taranmasını sağlayan bölümdür. Hedef sistemde yapılan tarama sonucu port üzerinde çalışan hizmetin zafiyetli bir sürümü keşfedilirse, içeri sızmak için ilk adım olabilir.

Nmap-Service/Version Detection

-A parametresi ile OS tespiti, versiyon tespiti, script tarama gibi özellikler aktif hale getirilir.

-sV parametresi ile port üzerinde çalışan hizmetin versiyonu bulunabilir.

nmap 192.168.1.1 -A                         #İşletim sistemi algılama, sürüm algılama, komut dosyası tarama ve traceroute'u etkinleştirir
nmap 192.168.1.1 -sV #Portta çalışan hizmetin sürümünü belirlemeye çalışır
nmap 192.168.1.1 -sV --version-intensity 8 #Yoğunluk seviyesi 0 ila 9. Daha yüksek sayı doğruluk olasılığını artırır
nmap 192.168.1.1 -sV --version-light #Light modu etkinleştirir. Daha düşük doğruluk olasılığı. Daha hızlı
nmap 192.168.1.1 -sV --version-all #Yoğunluk seviyesi 9'u etkinleştirir. Daha yüksek doğruluk olasılığı.Daha yavaş

6) Script Scan (Script Tarama)

Bu kısımda yer alan parametrelerle, Nmap üzerinde halihazırda bulunan scriptleri kullanabiliyoruz. Bu scriptler authentication ve exploiting aşamalarında bize kolaylık sağlıyor ayrıca kullanıcı giriş bilgilerini tahmin etmek için brute-force gibi saldırıları yapabiliyoruz.

-sC parametresiyle default scripti kullanacağımızı belirtiyoruz.

— script=<Lua scriptleri> parametresiyle, Lua diliyle yazılmış scriptleri kullanabiliyoruz.

— script-updatedb parametresiyle script veri tabanını güncelleyebiliyoruz.

nmap 192.168.1.1 -sC #Varsayılan NSE betikleriyle tarama. Keşif için yararlı ve güvenli olarak kabul edilir
nmap 192.168.1.1 –script default #Varsayılan NSE betikleriyle tarama. Keşif için yararlı ve güvenli olarak kabul edilir
nmap 192.168.1.1 –script=http* #Bir joker karakterler tarama, örneğin http
nmap 192.168.1.1 –script=http,banner #İki scriptle tarama
nmap –script snmp-sysdescr –script-args snmpcommunity=admin 192.168.1.1 #Argümanları verilmiş script

7) OS Detection (OS tespiti)

Bu parametrelerle hedefin işletim sistemi verilerine ulaşabiliriz.

-O parametresiyle OS tespiti yapılır.

— osscan-limit parametresiyle işletim sistemi tespitini gelecek vaat eden hedeflerle sınırlayabilirsiniz. (En az 1 açık ve 1 kapalı TCP bulunmazsa OS detection yapılmayacak)

— osscan-guess parametresiyle agresif bir şekilde OS tahmini yapar.

Nmap-OS Detection
nmap 192.168.1.1 -O #TCP/IP yığın parmak izi kullanarak uzak işletim sistemi algılama
nmap 192.168.1.1 -O –osscan-limit #En az bir açık ve bir kapalı TCP bağlantı noktası bulunamazsa, ana bilgisayara karşı işletim sistemi algılamasını denemeyecektir.
nmap 192.168.1.1 -O –osscan-guess #Nmap'in daha agresif bir şekilde tahmin etmesini sağlar
nmap 192.168.1.1 -O –max-os-tries 1 #Bir hedefe karşı işletim sistemi algılama denemelerinin maksimum x sayısını ayarlayın
nmap 192.168.1.1 -A #İşletim sistemi algılama, sürüm algılama, komut dosyası tarama ve traceroute'u etkinleştirir

8) Timing and Performance

(Zamanlama ve Performans)

Bu bölümde yer alan parametrelerle, taramanın ne kadar süreceği, hızı gibi değerler değiştirilebiliyor. Yoğun bir taramayla birlikte hedef sistemde gürültü yapılabileceği ve bu yüzden taramanın başarısız olma ihtimalinden kaynaklı olarak bu dengenin tutturulması gerekiyor.

Nmap-Timing and Performance
nmap 192.168.1.1 -T0 #Paranoid (0) IDS atlatma
nmap 192.168.1.1 -T1 #Sneaky (1) IDS atlatma
nmap 192.168.1.1 -T2 #Polite (2) Taramayı yavaşlatarak hedefin bandwidth ve kaynaklarının kullanımını azaltır
nmap 192.168.1.1 -T3 #Normal (3) Normal hızda tarama
nmap 192.168.1.1 -T4 #Aggressive (4) Taramaları hızlandırır; makul derecede hızlı ve güvenilir bir ağda olduğunuzu varsayar
nmap 192.168.1.1 -T5 #Insane (5) Taramayı hızlandırır; olağanüstü hızlı bir ağda olduğunuzu varsayar

9) Firewall / IDS Evasion and Spoofing

(Güvenlik Duvarı / IDS Kaçırma ve Spoofing)

Bu bölümde, ağ güvenlik cihazları olan Firewall ve IDS sistemlerinden kaçınabilmek ve taramayı sağlıklı bir şekilde yürütebilmek için yapılan parametreler bulunmaktadır.

-f parametresi, paketleri bölerek yakalanma riskini azaltır.

-D parametresiyle sahte ip adresleri üzerinden taramalar yapılır.

-S parametresi, kaynak ip adresini taklit eder/değiştirir. (spoofing)

-e parametresi, arayüz tanımlamak için kullanılır.

— proxies parametresi, taramayı proxy kullanarak gerçekleştirir.

Nmap-Firewall / IDS Evasion and Spoofing
nmap 192.168.1.1 -f #Küçük paketlerle tarama
nmap 192.168.1.1 –mtu 32 #Kendi ofset değerinizi belirleyerek tarayın
nmap -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1 #Sahte ip adreslerinden tarama yapın
nmap -D decoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip #Yukarda açıklandı
nmap -S www.microsoft.com www.facebook.com #Facebook'u Microsoft üzerinden tarayın. (Spoofing)(-e eth0 -Pn gerekebilir.)
nmap -g 53 192.168.1.1 #Verilen kaynak port numarasını kullanır
nmap –proxies http://192.168.1.1:8080, http://192.168.1.2:8080 192.168.1.1 #Bağlantılar proxy aracılığıyla aktarılır.
nmap –data-length 200 192.168.1.1 #Gönderilen paketlere rastgele veri ekler.

10) Output (Çıktı)

Bu bölümdeki parametrelerle taramanın çıktısının hangi formatta ve nasıl alınacağı tanımlanabilir ve bir taramanın çıktıları kaydedilerek daha sonra bu çıktı üzerinden taramaya devam edilebilir.

-oN, -oX, -oG parametreleriyle sırasıyla normal, xml formatında, grep’lenebilir çıktılar alınabilir.

-oA parametresiyle 3 ana formatta çıktı alınabilir. (normal, xml ve grep’lenebilir)

-v parametresi ayrıntı seviyesini arttırır. (-vv ile daha ayrıntılı çıktı alınabilir.)

-d parametresi hata ayıklama (debugging)seviyesini arttırır. (-dd ile daha ayrıntılı hata ayıklama çıktısı alınabilir.)

nmap 192.168.1.1 -oN normal.file #normal.file dosyasına normal çıktı verir
nmap 192.168.1.1 -oX xml.file #xml.file dosyasına XML çıktısı verir
nmap 192.168.1.1 -oG grep.file #grep.file dosyasına grep'lenebilir çıktı verir
nmap 192.168.1.1 -oA results #Üç ana çıktıyı aynı anda verir
nmap 192.168.1.1 -oG – #Ekrana grep'lenebilir çıktı verir. -oN -, -oX – da kullanılabilir
nmap 192.168.1.1 -oN file.file –append-output #Önceki tarama dosyasına bir tarama ekler
nmap 192.168.1.1 -v #Ayrıntıyı arttırır (-vv ile daha fazla ayrıntı)
nmap 192.168.1.1 -d #Hata ayıklamayı arttırır.(-dd ile daha derin fazla hata ayıklama)
nmap 192.168.1.1 –reason #Bir bağlantı noktasının belirli bir durumda olmasının nedenini, -vv ile aynı çıktıyı görüntüler
nmap 192.168.1.1 –open # Yalnızca açık (veya muhtemelen açık) bağlantı noktalarını gösterir
nmap 192.168.1.1 -T4 –packet-trace #Gönderilen ve alınan tüm paketleri gösterir
nmap –iflist #Ana bilgisayar arayüzlerini ve rotalarını gösterir
nmap –resume results. #Önceki bir taramaya devam eder

Nmap aracını ele aldığımız yazı buraya kadardı. Ancak unutmayın ki Nmap çok fazla özelliği olan bir araçtır ve hepsini bir arada açıklamak biraz zor olurdu. Bu yüzden aşağıya bıraktığım kaynaklardan daha fazla bilgi edinebilirsiniz. Sonraki yazımda görüşmek üzere…

--

--