# Nmap

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-21e0f3abd6488ecd21ea6b7adfb3eed270d9f3eb%2Fnmap10.png?alt=media" alt=""><figcaption></figcaption></figure>

## Nmap nedir?

Nmap (Network Mapper yani Ağ haritalayıcı), bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Taranan ağın haritasını çıkarabilir ve ağ makinalarında çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını gözlemleyebilir.

Nmap kullanarak ağa bağlı herhangi bir bilgisayarın işletim sistemi, çalışan fiziksel aygıt tipleri, çalışma süresi, yazılımların hangi servisleri kullandığı, yazılımların sürüm numaraları, bilgisayarın güvenlik duvarına sahip olup olmadığı, ağ kartının üreticisinin adı gibi bilgiler öğrenilebilmektedir.

## Nmap’in Kullanım Alanları Nelerdir?

**Ağ Keşfi:** Taranan ağ üzerindeki sistemler hakkında bilgi sahibi olunması (port, üzerinde koşan uygulama vb. bilgileri öğrenmek gibi). Ağ topolojisinin çıkarılması

**Port Tarama:** Hedef sistemlerdeki açık portları tespit. Hangi servislerin çalıştığını ve hangi portların açık olduğunu belirlemek amacıyla yapılır.

**Servis Tespiti:** Tespit edilen açık portların ardındaki servislerin belirlenmesi ve bu servislerin sürümlerinin tespiti.

**İşletim Sistemi Tanıma:** Hedef sistemlerin işletim sistemini belirlemek için IP paketlerinin yanıtlarının analizi. Sızma testlerinin gerçekleştirilmesi.

**Scripting:** Özelleştirilmiş taramalar ve testler yapmak için kullanıcıların yazdığı ya da indirdiği betikleri çalıştırma.

## Nmap grafiksel kullanıcı arabirimi - Zenmap ve NmapFE

**Zenmap**, Adriano Monteiro Marques tarafından UMIT grafiksel kullanıcı arabiriminden faydalanılarak geliştirilmiş şu anki resmi kullanıcı arabirimdir. NMap paketinin içinde gelmektedir.

**NmapFE**, Zach Smith tarafından geliştirilmiş Nmap'in ilk resmi grafiksel kullanıcı arabirimi olma niteliğindedir. Nmap'in 2.2 ve 4.2 sürümleri arasında kullanılmıştır.

## Nmap ile port tarama

Nmap herhangi bir istemci veya sunucuyu birçok farklı şekilde tarama yeteneğine sahiptir. Nmap'i güçlü kılan farklı tarama tekniklerine sahip olmasıdır. Protokol temelli (TCP, UDP, vb.) tarama yapılabileceği gibi, belirli aralıklardaki IP adresleri, alt ağlar (subnet) ve üzerlerinde çalışan port ve servisleri de taranabilir.

### Tarama sonuçları için olası durumlar

**Open (Açık):** Portun erişilebilir durumda olduğunu ve port üzerinde bir uygulamanın TCP bağlantılarını ya da UDP datagramlarını kabul ettiği anlamına gelmektedir.

**Closed (Kapalı):** Portun erişilebilir olduğunu (Paketleri almakta ve geri paket göndermekte) fakat üzerinde herhangi bir uygulamanın olmadığı anlamını taşımaktadır.

**Filtered (Filtreli):** Dönen tepkiler bir paket filtreleme mekanizması tarafından engellenir. Nmap portun açık olduğuna karar veremez.

**Unfiltered (Filtresiz):** Portlar erişilebilir ancak Nmap portların açık veya kapalı olduğuna karar veremez. (Sadece ACK scan için)

**Open|filtered (Açık|Filtreli**): Nmap portların açık veya filtrelenmiş olduğuna karar veremez. (UDP, IP Protocol, FIN, Null, Xmas Scan için)

**Closed|filtered (Kapalı|Filtreli):** Nmap portların kapalı ya da filtreli olduğuna karar veremez. (Sadece Idle Scan için)

## En popüler Portlar

· 20 File Transfer Protocol (FTP) Veri İletimi

· 21 File Transfer Protocol (FTP) Komut Kontrolü

· 22 Secure Shell (SSH) Güvenli Giriş

· 23 Telnet uzaktan oturum açma hizmeti, şifrelenmemiş metin mesajları

· 25 Simple Mail Transfer Protocol (SMTP) e-posta gönderimi

· 53 Domain Name System (DNS) servisi

· 67, 68 Dynamic Host Configuration Protocol (DHCP)

· 80 Hypertext Transfer Protocol (HTTP) World Wide Web'de kullanılır

· 110 Post Office Protocol (POP3)

· 119 Network News Transfer Protocol (NNTP)

· 123 Network Time Protocol (NTP)

· 143 Internet Message Access Protocol (IMAP) Dijital posta yönetimi

· 161 Simple Network Management Protocol (SNMP)

· 194 Internet Relay Chat (IRC)

· 443 HTTP Secure (HTTPS) HTTP over TLS/SSL

· 546, 547 DHCPv6 IPv6 version of DHCP

## TCP VE UDP Nedir?

### TCP

TCP (Transmission Control Protocol), TCP/IP protokol takımının taşıma katmanı protokollerinden birisidir. Son güncellemesi Ağustos 2022 tarihi itibarıyla RFC 9293 içerisinde tanımlanmıştır.

Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi sağlayabilmek için TCP protokolü yazılmıştır. HTTP, HTTPS, POP3, SSH, SMTP, Telnet ve FTP gibi internetin kullanıcı açısından en popüler protokollerinin veri iletimi TCP vasıtasıyla yapılır.

#### TCP bağlantısı nasıl kurulur?

A bilgisayarı B bilgisayarına TCP yoluyla bağlanmak istediğinde şu yol izlenir:

1\. A bilgisayarı B bilgisayarına TCP SYNchronize mesajı yollar

2\. B bilgisayarı A bilgisayarının isteğini aldığına dair bir TCP SYN+ACKnowledgement mesajı yollar

3\. A bilgisayarı B bilgisayarına TCP ACK mesajı yollar

4\. B bilgisayarı bir ACK "TCP connection is ESTABLISHED" mesajı alır

5\. Üç zamanlı el sıkışma adı verilen bu yöntem sonucunda TCP bağlantısı açılmış olur.

#### Veri iletimi nasıl gerçekleşir?

TCP'de veri iletimi çift yönlüdür. Yani her iki taraf da birbirlerine aynı bağlantı içerisinde veri gönderebilmektedir. Bağlantı oluşturulduktan sonra, B bilgisayarı A bilgisayarından paketler almaya başlar. B, her aldığı paketten sonra bir süre bekledikten sonra en son düzgün olarak aldığı paket grubunu A'ya bildirir. Gelen bildirimlere göre A, daha sonra hangi paketleri yollaması gerektiğine karar verir ve yollar.

TCP bağlantısının sona erdirilmesi

Veri iletişimi bitince bilgisayarlardan herhangi biri diğerine TCP kapatma mesajı yollar. Diğer bilgisayar, kapatmayı teyit etme paketi ve kapatma isteği yollar. Son olarak, diğer bilgisayar da kapatma teyidini yollar ve bağlantı kapatılmış olur.

Bu işlemin adımları tam olarak şöyledir:

1\. A bilgisayarı B bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.

2\. B bilgisayarı A bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.

3\. B bilgisayarı A bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.

4\. A bilgisayarı B bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.

5\. Bu işlemlerin sonunda TCP bağlantısı sonlandırılmış olur. Buna 4 zamanlı el sıkışma denir.

Görüldüğü üzere, bağlantının kurulmasından farklı olarak bağlantı her cihaz için ayrıca kapatılmaktadır. Bunun nedeni, istenildiğinde bağlantının tek yönlü olarak açık tutulabilmesini sağlamaktır. Bunun için tek tarafın bağlantı kapama adımlarını gerçekleştirmesi gerekir.

### UDP

UDP (User Datagram Protocol - Kullanıcı Veri bloğu İletişim Kuralları), TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir. Verileri bağlantı kurmadan yollar.

Gelişmiş bilgisayar ağlarında paket anahtarlı bilgisayar iletişiminde bir datagram modu oluşturabilmek için UDP protokolü yazılmıştır. Bu protokol minimum protokol mekanizmasıyla bir uygulama programından diğerine mesaj göndermek için bir prosedür içerir. Bu protokol 'transaction' yönlendirmelidir. Paketin teslim garantisini isteyen uygulamalar TCP protokolünü kullanır.

* Geniş alan ağlarında (WAN) ses ve görüntü aktarımı gibi gerçek zamanlı veri aktarımlarında UDP kullanılır.
* UDP bağlantı kurulum işlemlerini, akış kontrolü ve tekrar iletim işlemlerini yapmayarak veri iletim süresini en aza indirir.
* UDP ve TCP aynı iletişim yolunu kullandıklarında UDP ile yapılan gerçek zamanlı veri transferinin servis kalitesi TCP'nin oluşturduğu yüksek veri trafiği nedeniyle azalır.

UDP'yi kullanan protokollerden bazıları DNS, TFTP ve SNMP protokolleridir. Uygulama programcıları birçok zaman UDP'yi TCP'ye tercih eder, zira UDP ağ üzerinde fazla bant genişliği kaplamaz.

UDP güvenilir olmayan bir aktarım protokolüdür. Ağ üzerinden paketi gönderir ama gidip gitmediğini takip etmez ve paketin yerine ulaşıp ulaşmayacağına onay verme yetkisi yoktur. UDP üzerinden güvenilir şekilde veri göndermek isteyen bir uygulama bunu kendi yöntemleriyle yapmak zorundadır.

UDP, Ulaşım katmanı'nda faaliyet gösteren bir protokoldür. Verilerin doğru ya da yanlış şekilde iletilip iletilmediğini garanti etmez (connectionless).

## UDP ve TCP arasındaki farklar

* TCP, bağlantı tabanlı (connection oriented) bir protokoldür, UDP bağlantı tabanlı değildir (connectionless).
* TCP'de akış kontrolü vardır, UDP'de akış kontrolü yoktur.
* TCP başlığı (header) 20 bayttır, UDP başlığı 8 bayttır.
* TCP, UDP'den daha yavaştır, çünkü verinin karşı tarafa ulaşıp ulaşmadığını kontrol eder.
* UDP, ses ve video gönderiminde kullanılır. TCP'ye göre daha hızlıdır fakat güvenilir (reliable) değildir. Veri ismine datagram denilir.
* Datagramın segmentten farkı ise içerisinde sıra numarasının bulunmamasıdır.

**NOT:** Ulaşım katmanı TCP, UDP, SCTP, DCCP’ iletişim kurallarından oluşur.

## Örneklendirme:

Aşağıda yer alan siberyavuzlar.com ve scanme.nmap.org sitelerinin nmap tarama sonuçları ve [whireshark](wireshark) ile paket analizleri yer almaktadır.

### OPEN

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-87ed66bd746356cc48329225991de49074bef42c%2Fnmap9.png?alt=media" alt=""><figcaption></figcaption></figure>

Bu örnek scanme.nmap.org için yapılan Nmap taramasının sonucunda 22,25,80,9929 ve 31337 portlarının açık olduğunu göstermektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-aa0804559eac2406121a3ca877a392d511a39a5f%2Fnmap8.png?alt=media" alt=""><figcaption></figcaption></figure>

22 numaralı portu taradığımız sorguda State’in open çıkmasındaki sebebi anlamak için Nmap taraması yapmadan önce whireshark ile scanme.nmap.org adresinin ip adresini < ip.addr == 45.33.32.156 > filtreleyerek gelen ve giden paketleri dinlemeye başlıyoruz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-8e85fe63363c9728a6f15ce6ef57ffcfa2e8a114%2Fnmap7.png?alt=media" alt=""><figcaption></figcaption></figure>

Sorguda Durumun Open çıkmasının sebebinin ana bilgisayarın ip adresinden hedef ip adresine TCP (Transmission Control Protocol) üzerinden gönderilen SYNchronize paketine karşılık olarak SYN+ACKnowledgement paketlerinin gelmesi sonucu oluştuğunu görmekteyiz.

### CLOSED

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-87ed66bd746356cc48329225991de49074bef42c%2Fnmap6.png?alt=media" alt=""><figcaption></figcaption></figure>

Bu örnek scanme.nmap.org için yapılan Nmap taramasının sonucunda 22,25,80,9929 ve 31337 portlarının açık olduğunu göstermektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-152f2a798ff0e562cc9157d5a6d5677a22f59b5c%2Fnmap5.png?alt=media" alt=""><figcaption></figcaption></figure>

67 numaralı portu taradığımız sorguda State’in closed çıkmasındaki sebebi anlamak için Nmap taraması yapmadan önce whireshark ile scanme.nmap.org adresinin ip adresini < ip.addr == 45.33.32.156 > filtreleyerek gelen ve giden paketleri dinlemeye başlıyoruz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-c9f57bfffa74f6a3051ffc58839ea9a6bb3dfa62%2Fnmap4.png?alt=media" alt=""><figcaption></figcaption></figure>

Sorgu sonucunun Closed çıkmasındaki sebebi Scname.nmap.org’un 67 numaralı portuna gönderilen SYNchronize paketine karşılık olarak gelen RST,ACK paketlerinin olduğunu görüyoruz.

### FİLTERED

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-a3091777d3ccc5d6eab7abc4e66c59d23b1eb63f%2Fnmap11.png?alt=media" alt=""><figcaption></figcaption></figure>

Bu örnek siberyavzular.com için yapılan Nmap taramasının sonucunda 80 ve 433 portlarının açık olduğunu göstermektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-0fe4f0ea92f1d921bad7d2963078a64b0ccfa884%2Fnmap2.png?alt=media" alt=""><figcaption></figcaption></figure>

22 numaralı portu taradığımız zaman filtreli olduğunu görüyoruz ve arka planın nasıl işlediğini, bilgisayarlar arasındaki haberleşmenin nasıl olduğunu anlamak adına wireshark aracı ile siberyavuzlar.com adresine gönderdiğimiz paketleri inceliyoruz.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-7309046282e36f2e0b8e6728eaab5f4ea69859e7%2Fnmap1.png?alt=media" alt=""><figcaption></figcaption></figure>

Sorguda state’in filtreli olarak görünmesindeki sebep ana bilgisayar ip adresinden hedef ip adresine TCP üserinden gönderilen SYNchronize paketine karşılık bir cevap alamamasından kaynaklandığını görebiliyoruz.

_-Pn: Ping taramasını atla anlamına gelir. nmap, normalde hedefin çevrimiçi olup olmadığını kontrol etmek için ping gönderir. -Pn seçeneği ile bu kontrol atlanır ve doğrudan port taraması yapılır. Bu, hedefin ping yanıtlarını engellediği durumlarda kullanışlıdır._

_-p 22: Taramanın sadece 22 numaralı port üzerinde yapılacağını belirtir. Bu port genellikle SSH (Secure Shell) hizmeti için kullanılır._

## TCP Syn (Yarı Açık) Taraması

TCP Syn taraması, kaynak cihazın hedef cihaza TCP SYN işaretli segment göndermesiyle başlar. Bu işlem, portların durumunu tespit etmek için kullanılan yarı açık veya prematüre bir tarama tekniğidir. Kapalı portlara karşı hedef cihaz RST + ACK işaretli bir segment ile yanıt verirken, açık portlara karşı SYN + ACK işaretli bir segment döner. Kaynak cihaz, bağlantıyı sonlandırmak için bir RST segmenti gönderir, böylece TCP üç yönlü el sıkışması tamamlanmamış olur. Bu yöntemin kullanımı için aşağıdaki komut önerilir:

nmap -sS -v \[Hedef\_IP]

-sS: TCP SYN (Yarı Açık) Taraması. TCP bağlantısının ilk aşamasını (SYN) kullanarak port durumunu kontrol eder. Bu yöntem tam bir TCP bağlantısı kurmadan portların açık olup olmadığını belirler.

## TCP Connect Taraması

TCP Connect taraması, kaynak cihazın hedef cihazla tam bir TCP bağlantısı kurma girişiminde bulunduğu bir yöntemdir. Kapalı portlara yapılan taramalarda hedef cihaz RST + ACK işaretli bir segment dönerken, açık portlar için üç yönlü el sıkışma tamamlanır. Bu tarama yöntemi için kullanılacak komut şu şekildedir:

nmap -sT -v \[Hedef\_IP]

-sT: TCP Connect Taraması. Kaynak cihazın hedef cihazla tam bir TCP bağlantısı kurmasını denediği tarama türüdür. Sistem çağrıları kullanılarak gerçekleştirilir ve tam bir el sıkışma işlemi yapılır.

## FIN (Gizli) Taraması

FIN taraması, hedef cihaza bir TCP bağlantı talebi olmaksızın FIN işaretli bir segment gönderilmesini içerir. Kapalı portlar, RST + ACK işaretli bir segment ile yanıt verirken, açık portlar herhangi bir yanıt vermez. Bu yöntem için kullanılması gereken komut aşağıdaki gibidir:

nmap -sF -v \[Hedef\_IP]

-sF: FIN (Gizli) Taraması. Hedefe bir TCP FIN paketi gönderilir. Açık portlar genellikle herhangi bir yanıt göndermezken, kapalı portlar bir RST paketi gönderir.

## Xmas Taraması

Xmas taraması, TCP segmentine URG, PSH ve FIN bayraklarının ayarlandığı bir tarama türüdür. Kapalı portlar, RST + ACK işaretli bir segment ile yanıt verirken, açık portlardan herhangi bir yanıt gelmez. Bu tarama için önerilen komut şöyledir:

nmap -sX -v \[Hedef\_IP]

-sX: Xmas Taraması. URG, PSH ve FIN bayrakları birlikte ayarlanmış TCP paketleri gönderilir. Bu da kapalı portların RST ile yanıt vermesine, açık portların ise genellikle sessiz kalmasına neden olur.

## Null Taraması

Null taraması, herhangi bir bayrağın bulunmadığı bir tarama yöntemidir. Kapalı portlar RST + ACK işaretli bir segment ile yanıt verirken, açık portlardan yanıt gelmez. Bu tarama tekniğini uygulamak için aşağıdaki komut kullanılmalıdır:

nmap -sN -v \[Hedef\_IP]

-sN: Null Taraması. TCP bayrakları ayarlanmamış paketler gönderilir. Kapalı portlar RST ile yanıt verirken, açık portlar genellikle yanıt vermez.

## Ping Taraması

Ping taraması, kaynak cihazın hedef cihaza bir ICMP Echo istek paketi göndermesi ve hedef cihazın bu isteğe bir Echo cevabı döndürmesi prensibine dayanır. Erişilebilir ve ICMP filtrelemesi olmayan cihazlar cevap döner. Bu tarama için kullanılacak komut şudur:

nmap -sP -v \[Hedef\_IP]

-sP: Ping Taraması. Hedefin canlı olup olmadığını kontrol etmek için ICMP Echo istekleri veya diğer yöntemler (TCP/UDP paketleri) kullanılır.

## UDP Taraması

UDP taraması, kaynak cihazın hedef cihaza UDP datagramları gönderdiği ve hedef cihazın bu datagramlara nasıl tepki verdiğine bağlı olarak port durumunu belirlediği bir yöntemdir. Bu tarama için önerilen komut aşağıda verilmiştir:

nmap -sU -v \[Hedef\_IP]

-sU: UDP Taraması. UDP datagramları gönderilerek hedefin UDP portlarının durumu kontrol edilir. Açık/kapalı/yarı açık portlar farklı yanıtlar verebilir.

## IP Protokol Taraması

IP Protokol taraması, hedef cihazlar üzerinde çalışan IP tabanlı protokollerin tespit edilmesini amaçlar. Aktif protokoller herhangi bir yanıt döndürmezken, pasif protokoller RST bayraklı bir segment ile yanıt verir. Bu tarama yöntemi için kullanılması gereken komut şu şekildedir:

nmap -sO -v \[Hedef\_IP]

-sO: IP Protokol Taraması. Hedefte desteklenen IP protokollerini saptamak için kullanılır. Farklı IP protokol numaralarına sahip paketler gönderilir.

## ACK Taraması

ACK taraması, kaynak cihazın hedef cihaza TCP ACK işaretli bir segment göndermesi ve hedef cihazın bu isteğe nasıl tepki gösterdiğine bağlı olarak port durumunu belirleme yöntemidir. Bu tarama için önerilen komut şöyledir:

nmap -sA -v \[Hedef\_IP]

-sA: ACK Taraması. Bu tarama yöntemi, ağdaki filtreleme kurallarını belirlemek için kullanılır. Gönderilen ACK paketleriyle hangi portların durum filtreli olduğunu anlamaya çalışır.

## Window Taraması

Window taraması, ACK taramasına benzer ancak TCP pencereleme mekanizması üzerinden portların açık olup olmadığını belirleyebilir. Bu tarama yöntemi için kullanılacak komut aşağıdaki gibidir:

nmap -sW -v \[Hedef\_IP]

-sW: Window Taraması. ACK taramasına benzer şekilde çalışır ancak TCP pencere boyutu bilgisini kullanarak portların durumunu belirlemeye çalışır.

## IdleScan

IdleScan, kaynak cihazın tarama sürecinde aktif rol almadığı, başka cihazlar üzerinden hedef cihazı tarayarak bilgi toplama yöntemidir. Bu tarama için kullanılması gereken komut şudur:

nmap -sI -v \[Zombie\_IP] \[Hedef\_IP]

-sI: IdleScan. "Zombie" bilgisayarın IP adresi kullanılarak, taramanın kaynağının gizlenmesini sağlayan gelişmiş bir tarama yöntemidir. Tarama sonuçlarını öğrenmek için hedefe doğrudan paket göndermek yerine, ara bilgisayar (zombie) kullanılır.

**-v :** seçeneği Nmap'te "verbose" modunu etkinleştirir. Bu mod, tarama sırasında daha fazla çıktı ve bilgi sağlar, böylece kullanıcı taramanın ilerleyişi hakkında daha detaylı geri bildirim alır. Özellikle, karmaşık tarama senaryolarında veya hata ayıklama sırasında ne olup bittiğini anlamak için yararlıdır. -v seçeneğini kullanarak, açılan portlar, tarama süresi, hedef hostların durumu ve daha fazlası gibi tarama işlemine dair ek bilgiler elde edilebilir.

## Tüm Komutlar ve Bayraklar

### Hedef Belirtimi

| ANAHTAR  | ÖRNEK                        | TARİF                                   |
| -------- | ---------------------------- | --------------------------------------- |
|          | nmap 192.168.1.1             | Tek bir IP'yi tarayın                   |
|          | nmap 192.168.1.1 192.168.2.1 | Belirli IP'leri tarayın                 |
|          | nmap 192.168.1.1-254         | Bir aralığı tarayın                     |
|          | nmap scanme.nmap.org         | Etki alanını tarayın                    |
|          | nmap 192.168.1.0/24          | CIDR gösterimini kullanarak tarama      |
| -ıl      | nmap -iL targets.txt         | Dosyaları bir dosyadan tarama           |
| -ır      | nmap -iR 100                 | 100 rastgele ana bilgisayarı tarayın    |
| -exclude | nmap -exclude 192.168.1.1    | Listelenen ana bilgisayarları hariç tut |

### Nmap Tarama Teknikleri

| ANAHTAR | ÖRNEK                | TARİF                                                             |
| ------- | -------------------- | ----------------------------------------------------------------- |
| -sS     | nmap 192.168.1.1 -sS | TCP SYN bağlantı noktası taraması (Varsayılan)                    |
| -sT     | nmap 192.168.1.1 -sT | TCP bağlantı noktası taraması (Kök ayrıcalığı olmadan varsayılan) |
| -sU     | nmap 192.168.1.1 -sU | UDP bağlantı noktası taraması                                     |
| -Sa     | nmap 192.168.1.1 -sA | TCP ACK bağlantı noktası taraması                                 |
| -Sw     | nmap 192.168.1.1 -sW | TCP Penceresi bağlantı noktası taraması                           |
| -Sm     | nmap 192.168.1.1 -sM | TCP Maimon bağlantı noktası taraması                              |

### Ana Bilgisayar Keşfi

| ANAHTAR | ÖRNEK                          | TARİF                                                                          |
| ------- | ------------------------------ | ------------------------------------------------------------------------------ |
| -Sl     | nmap 192.168.1.1-3 -sL         | Tarama yok. Yalnızca hedefleri listeleyin                                      |
| -sn     | nmap 192.168.1.1/24 -sn        | Bağlantı noktası taramasını devre dışı bırakın. Yalnızca ana bilgisayar keşfi. |
| -Pn     | nmap 192.168.1.1-5 -pn         | Ana bilgisayar bulmayı devre dışı bırakın. Yalnızca bağlantı noktası taraması. |
| -PS     | nmap 192.168.1.1-5 -PS22-25,80 | <p>Varsayılan olarak x.Port<br>80 bağlantı noktasında TCP SYN keşfi</p>        |
| -PA     | nmap 192.168.1.1-5 -PA22-25,80 | <p>Varsayılan olarak x.Port<br>80 bağlantı noktasında TCP ACK keşfi</p>        |
| -PU     | nmap 192.168.1.1-5 -PU53       | <p>Varsayılan olarak x.Port<br>40125 bağlantı noktasında UDP keşfi</p>         |
| -PR     | nmap 192.168.1.1-1/24 -PR      | Yerel ağda ARP keşfi                                                           |
| -n      | nmap 192.168.1.1 -n            | Hiçbir zaman DNS çözümlemesi yapmayın                                          |

### Bağlantı Noktası Özellikleri

| ANAHTAR                 | ÖRNEK                               | TARİF                                                                                                           |
| ----------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| -p                      | nmap 192.168.1.1 -p 21              | x bağlantı noktası için bağlantı noktası taraması                                                               |
| -p                      | nmap 192.168.1.1 -p 21-100          | Bağlantı noktası aralığı                                                                                        |
| -p                      | nmap 192.168.1.1 -p U:53,T:21-25,80 | Bağlantı noktası taraması: birden çok TCP ve UDP bağlantı noktası                                               |
| -p                      | nmap 192.168.1.1 -p-                | Bağlantı noktası taraması tüm bağlantı noktaları                                                                |
| -p                      | nmap 192.168.1.1 -p http,https      | Hizmet adından bağlantı noktası taraması                                                                        |
| -F                      | nmap 192.168.1.1 -F                 | Hızlı bağlantı noktası taraması (100 bağlantı noktası)                                                          |
| -üst-bağlantı noktaları | nmap 192.168.1.1 -top-ports 2000    | Bağlantı noktası taraması: üst x bağlantı noktası                                                               |
| -p-65535                | nmap 192.168.1.1 -p-65535           | İlk bağlantı noktasını aralık içinde bırakmak, taramanın 1 numaralı bağlantı noktasından başlamasını sağlar     |
| -p0-                    | nmap 192.168.1.1 -p0-               | <p>Uç bağlantı noktasını aralıkta<br>bırakmak, taramanın 65535 numaralı bağlantı noktasına geçmesini sağlar</p> |

### Hizmet ve Sürüm Algılama

| ANAHTAR                | ÖRNEK                                     | TARİF                                                                                 |
| ---------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- |
| -Sv                    | nmap 192.168.1.1 -sV                      | Bağlantı noktasında çalışan hizmetin sürümünü belirlemeye çalışır                     |
| -sV -version-intensity | 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             |
| -sV -version-light     | nmap 192.168.1.1 -sV -version-light       | Işık modunu etkinleştirin. Daha düşük doğruluk olasılığı. Hızlı                       |
| -sV -version-all       | nmap 192.168.1.1 -sV -version-all         | Yoğunluk düzeyi 9'u etkinleştirin. Daha yüksek doğruluk olasılığı. Yavaş              |
| -Bir                   | nmap 192.168.1.1 -A                       | İşletim sistemi algılama, sürüm algılama, komut dosyası taraması ve traceroute sağlar |

### **İşletim Sistemi Algılama**

| ANAHTAR          | **ÖRNEK**                           | **TARİF**                                                                                                               |
| ---------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| -O               | nmap 192.168.1.1 -O                 | TCP/IP yığını parmak izi kullanarak uzak işletim sistemi algılama                                                       |
| -O -osscan-limit | 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ılamayı denemez |
| -O -osscan-guess | nmap 192.168.1.1 -O -osscan-guess   | Nmap'in daha agresif bir şekilde tahmin etmesini sağlar                                                                 |
| -O -max-os-tries | nmap 192.168.1.1 -O -max-os-tries 1 | Bir hedefe karşı en fazla x işletim sistemi algılama denemesi sayısını ayarlayın                                        |
| -Bir             | nmap 192.168.1.1 -A                 | İşletim sistemi algılama, sürüm algılama, komut dosyası taraması ve traceroute sağlar                                   |

### **Zamanlama ve Performans**

| ANAHTAR | **ÖRNEK**            | **TARİF**                                                                                                     |
| ------- | -------------------- | ------------------------------------------------------------------------------------------------------------- |
| -T0     | nmap 192.168.1.1 -T0 | Paranoyak (0) İzinsiz Giriş Tespit Sisteminden kaçınma                                                        |
| -T1     | nmap 192.168.1.1 -T1 | Sinsi (1) İzinsiz Giriş Tespit Sistemi kaçınma                                                                |
| -T2     | nmap 192.168.1.1 -T2 | Kibar (2) daha az bant genişliği kullanmak ve daha az hedef makine kaynağı kullanmak için taramayı yavaşlatır |
| -T3     | nmap 192.168.1.1 -T3 | Varsayılan hız olan Normal (3)                                                                                |
| -T4     | nmap 192.168.1.1 -T4 | Agresif (4) taramaları hızlandırır; Oldukça hızlı ve güvenilir bir ağda olduğunuzu varsayar                   |
| -T5     | nmap 192.168.1.1 -T5 | Çılgın (5) taramayı hızlandırır; olağanüstü hızlı bir ağda olduğunuzu varsayar.                               |

### **Zamanlama ve Performans Anahtarları**

| ANAHTAR                                                      | **ÖRNEK GİRİŞ** | **TARİF**                                                                      |
| ------------------------------------------------------------ | --------------- | ------------------------------------------------------------------------------ |
| -host-timeout \<time>                                        | 1s; 4m; 2h      | Bu kadar uzun süre sonra hedeften vazgeçin                                     |
| -min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout \<time> | 1s; 4m; 2h      | Yoklama gidiş dönüş süresini belirtir                                          |
| -min-hostgroup/max-hostgroup \<size\<size>                   | 50; 1024        | Paralel ana bilgisayar tarama grubu boyutları                                  |
| -min-parallelism/max-parallelism \<numprobes>                | 10; 1           | Prob paralelleştirmesi                                                         |
| -max-retries \<tries>                                        | 3               | Bağlantı noktası tarama probu yeniden iletimlerinin maksimum sayısını belirtin |
| -min-rate \<sayı>                                            | 100             | Saniyede \<sayı>'dan daha yavaş olmayan paketler gönderin                      |
| -max-rate \<sayı>                                            | 100             | Saniyede \<sayı>'dan daha hızlı olmayan paketler gönderin                      |

### **NSE Komut Dosyaları**

| ANAHTAR         | **ÖRNEK**                                                               | **TARİF**                                                                                    |
| --------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| -Sc             | nmap 192.168.1.1 -sC                                                    | Varsayılan NSE komut dosyalarıyla tarayın. Keşif için yararlı ve güvenli olarak kabul edilir |
| -script default | nmap 192.168.1.1 -script default                                        | Varsayılan NSE komut dosyalarıyla tarayın. Keşif için yararlı ve güvenli olarak kabul edilir |
| -script         | nmap 192.168.1.1 -script=banner                                         | Tek bir komut dosyası ile tarayın. Örnek banner                                              |
| -script         | nmap 192.168.1.1 -script=http\*                                         | Joker karakterle tarayın. Örnek http                                                         |
| -script         | nmap 192.168.1.1 -script=http,banner                                    | İki komut dosyasıyla tarayın. Örnek http ve banner                                           |
| -script         | nmap 192.168.1.1 -script "not intrusive"                                | Varsayılanı tara, ancak araya giren komut dosyalarını kaldır                                 |
| -script-args    | nmap -script snmp-sysdescr -script-args snmpcommunity=admin 192.168.1.1 | Bağımsız değişkenler içeren NSE komut dosyası                                                |

### **Faydalı NSE Komut Dosyası Örnekleri**

| **KOMUT**                                                                                                               | **TARİF**                                                                 |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| nmap -Pn -script=http-sitemap-generator scanme.nmap.org                                                                 | HTTP Site Haritası Oluşturucu                                             |
| nmap -n -Pn -p 80 -open -sV -vvv -script banner,http-title -iR 1000                                                     | Rastgele web sunucuları için hızlı arama                                  |
| nmap -Pn -script=dns-brute domain.com                                                                                   | Brute, DNS ana bilgisayar adlarını alt alan adlarını tahmin etmeye zorlar |
| nmap -n -Pn -vv -O -sV -script smb-enum\*,smb-ls,smb-mbenum,smb-os-discovery,smb-s\*,smb-vuln\*,smbv2\* -vv 192.168.1.1 | Çalıştırılacak güvenli SMB betikleri                                      |
| nmap -script whois\* domain.com                                                                                         | Whois sorgulama                                                           |
| nmap -p80 -script http-unsafe-output-escaping scanme.nmap.org                                                           | Siteler arası komut dosyası çalıştırma güvenlik açıklarını algılama       |
| nmap -p80 -script http-sql-injection scanme.nmap.org                                                                    | SQL enjeksiyonlarını kontrol edin                                         |

### **Güvenlik Duvarı / IDS'den Kaçınma ve Sahtekarlık**

| ANAHTAR      | **ÖRNEK**                                                                  | **TARİF**                                                                                                      |
| ------------ | -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| -f           | nmap 192.168.1.1 -f                                                        | İstenen tarama (ping taramaları dahil) küçük parçalanmış IP paketleri kullanır. Paket filtreleri için daha zor |
| -Mtu         | nmap 192.168.1.1 -mtu 32                                                   | Kendi ofset boyutunuzu ayarlayın                                                                               |
| -D           | nmap -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1 | Sahte IP'lerden taramalar gönderme                                                                             |
| -D           | nmap -D decoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip | Yukarıdaki örnek açıklanmıştır                                                                                 |
| -S           | nmap -S www.microsoft.com www.facebook.com                                 | Facebook'u Microsoft'tan tarayın (-e eth0 -Pn gerekebilir)                                                     |
| -g           | nmap -g 53 192.168.1.1                                                     | Verilen kaynak bağlantı noktası numarasını kullan                                                              |
| -proxies     | nmap -proxies http://192.168.1.1:8080, http://192.168.1.2:8080 192.168.1.1 | HTTP/SOCKS4 proxy'leri aracılığıyla geçiş bağlantıları                                                         |
| -data-length | nmap -data-length 200 192.168.1.1                                          | Gönderilen paketlere rastgele veriler ekler                                                                    |

### **Çıktı**

| ANAHTAR        | **ÖRNEK**                                     | **TARİF**                                                                                         |
| -------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| -oN            | nmap 192.168.1.1 -oN normal.file              | normal.file dosyasına normal çıktı                                                                |
| -oX            | nmap 192.168.1.1 -oX xml.file                 | xml.file dosyasına XML çıktısı                                                                    |
| -oG            | nmap 192.168.1.1 -oG grep.file                | grep.file dosyasına grepable çıktı                                                                |
| -Oa            | nmap 192.168.1.1 -oA results                  | Aynı anda üç ana formatta çıktı alın                                                              |
| -oG -          | nmap 192.168.1.1 -oG -                        | Ekrana yönlendirilebilir çıkış. -oN -, -oX - ayrıca kullanılabilir                                |
| -append-output | nmap 192.168.1.1 -oN file.file -append-output | Önceki bir tarama dosyasına tarama ekleme                                                         |
| -v             | nmap 192.168.1.1 -v                           | Ayrıntı düzeyini artırın (daha fazla etki için -vv veya daha fazlasını kullanın)                  |
| -d             | nmap 192.168.1.1 -d                           | Hata ayıklama düzeyini artırın (daha fazla etki için -dd veya daha fazlasını kullanın)            |
| -reason        | 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üleyin |
| -open          | nmap 192.168.1.1 -open                        | Yalnızca açık (veya muhtemelen açık) bağlantı noktalarını göster                                  |
| -packet-trace  | nmap 192.168.1.1 -T4 -packet-trace            | Gönderilen ve alınan tüm paketleri göster                                                         |
| -iflist        | nmap -iflist                                  | Ana bilgisayar arayüzlerini ve rotalarını gösterir                                                |
| -resume        | nmap -resume results.file                     | Taramayı sürdürme                                                                                 |

### **Yararlı Nmap Çıktı örnekleri**

| **KOMUT**                                                                              | **TARİF**                                                                                        |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| nmap -p80 -sV -oG - -open 192.168.1.1/24 \| grep open                                  | Hangi IP'lerin web sunucularını çalıştırdığını göstermek için web sunucularını ve grep'i tarayın |
| nmap -iR 10 -n -oX out.xml \| grep "Nmap" \| cut -d " " -f5 > live-hosts.txt           | Canlı ana bilgisayarların IP'lerinin bir listesini oluşturun                                     |
| nmap -iR 10 -n -oX out2.xml \| grep "Nmap" \| cut -d " " -f5 >> live-hosts.txt         | IP'yi canlı toplantı sahipleri listesine ekleyin                                                 |
| ndiff scanl.xml scan2.xml                                                              | ndif kullanarak nmap'ten çıktıyı karşılaştırın                                                   |
| xsltproc nmap.xml -o nmap.html                                                         | Nmap xml dosyalarını html dosyalarına dönüştürün                                                 |
| grep " open " results.nmap \| sed -r ‘s/ +/ /g’ \| sort \| uniq -c \| sort -rn \| less | Bağlantı noktalarının ne sıklıkta açıldığını gösteren ters sıralanmış liste                      |

### **Çeşitli Nmap Bayrakları**

| ANAHTAR | **ÖRNEK**                    | **TARİF**                   |
| ------- | ---------------------------- | --------------------------- |
| -6      | nmap -6 2607:f0d0:1002:51::4 | IPv6 taramasını etkinleştir |
| -h      | nmap -h                      | nmap yardım ekranı          |

###

### **Diğer Faydalı Nmap Komutları**

| **KOMUT**                                       | **TARİF**                                                                                     |
| ----------------------------------------------- | --------------------------------------------------------------------------------------------- |
| nmap -iR 10 -PS22-25,80,113,1050,35000 -v -sn   | Yalnızca x bağlantı noktalarında keşif, bağlantı noktası taraması yok                         |
| nmap 192.168.1.1-1/24 -PR -sn -vv               | Arp keşfi yalnızca yerel ağda, bağlantı noktası taraması yok                                  |
| nmap -iR 10 -sn -traceroute                     | Rastgele hedeflere traceroute, port taraması yok                                              |
| nmap 192.168.1.1-50 -sL -dns-server 192.168.1.1 | Ana bilgisayarlar için İç DNS'yi sorgulayın, yalnızca hedefleri listeleyin                    |
| nmap 192.168.1.1 --packet-trace                 | Tarama sırasında gönderilen ve alınan paketlerin ayrıntılarını gösterin ve trafiği yakalayın. |

{% embed url="https://github.com/ozgur-karakus" fullWidth="false" %}
Bu yazı Özgür Karakuş tarafından hazırlanmıştır.
{% endembed %}
