ㅤㅤㅤㅤㅤ NMAP
ㅤㅤㅤㅤㅤ ㅤㅤㅤ Nmap Detaylı Anlatım
ㅤㅤㅤㅤㅤ NMAP
ㅤㅤㅤㅤㅤ ㅤㅤㅤ Nmap Detaylı Anlatım
Nmap nedir:
Nmap (Network Mapper), bir ağdaki bilgisayar sistemlerini ve ağ cihazlarını keşfetmek, analiz etmek ve güvenlik taraması yapmak için kullanılan ücretsiz ve açık kaynaklı bir ağ tarayıcıdır. Nmap, birçok farklı işlevi gerçekleştirebilen güçlü bir araçtır.

Nmap’in temel özellikleri şunlardır:
- Ağ Keşfi: Nmap, bir ağdaki aktif cihazları tespit etmek için kullanılabilir. Bu, ağda bulunan IP adresleri, açık portlar ve çalışan servisler gibi bilgileri içerir.
- Port Taraması: Nmap, belirli bir cihazdaki açık portları belirlemek için kullanılabilir. Açık portlar, saldırganlar için potansiyel hedefler olabilir ve bu nedenle bir ağın güvenliği açısından önemlidir.
- Servis Sürüm Tespiti: Nmap, çalışan servislerin sürümlerini tespit edebilir. Bu, güvenlik açıkları veya zayıflıklar konusunda bilgi sağlayabilir.
- OS Algılama: Nmap, hedef sistemde çalışan işletim sistemini tespit etme yeteneğine sahiptir. Bu bilgi, güvenlik analizi için önemlidir.
- Skript Desteği: Nmap’in bir dizi önceden yazılmış skripti bulunmaktadır. Bu skriptler, özel tarama ve analiz görevleri için kullanılabilir.
- Güvenlik Taraması: Nmap, açık portlar, servis sürümleri ve diğer ağ bilgilerini analiz ederek potansiyel güvenlik açıklarını tespit edebilir.

EN ÇOK KULLANILAN BAZI PORTLAR YUKARIDA GÖSTERİLMİŞTİR.
PORT NEDİR:
Bir bilgisayar ağında, iletişim kurmak üzere ayrılmış bir kapı veya giriş noktası olan “port,” bilgisayarların birbirleriyle ve ağdaki diğer cihazlarla bağlantı kurmalarını sağlar. Bir port, bir bilgisayarın dış dünya ile iletişimde bulunmasına ve belirli görevleri gerçekleştirmesine olanak tanır.
Bilgisayar ağları, belirli görevleri yerine getirmek üzere farklı portlara ihtiyaç duyar. Her port, belirli bir hizmet veya uygulama tarafından kullanılır. Genellikle, belirli bir port numarası ile tanımlanan bir servis veya uygulama bulunur. Örneğin, web trafiği genellikle 80. portu kullanır.
Portlar, iletişim kurulacak uygulama veya servisin belirlenmesine yardımcı olur ve bu nedenle ağ trafiğinin yönlendirilmesi ve organize edilmesi için önemlidir. Port numaraları, TCP (Transmission Control Protocol) ve UDP (User Datagram Protocol) gibi iletişim protokollerinde kullanılır. Bu protokoller, bilgisayarların birbirleriyle güvenli ve düzenli bir şekilde iletişim kurmalarını sağlar.
Örneğin, bir web tarayıcısı bir web sitesine bağlandığında, bilgisayar tarayıcının kullandığı port genellikle 80 veya 443'dür. Eğer bir e-posta istemcisi e-posta sunucusuna bağlanıyorsa, genellikle TCP port 25 veya 587 kullanılır.
Port taraması, bir bilgisayarın veya ağın güvenlik açıklarını bulmak amacıyla kullanılabilir. Bu tarama, bir bilgisayarın hangi portlarının açık olduğunu belirlemek için yapılır ve bu bilgi, potansiyel güvenlik risklerini değerlendirmek için kullanılabilir.
ㅤㅤㅤㅤㅤㅤㅤㅤㅤTCP VE UDP NEDİR:

TCP(Transmission Control Protocol):
Bağlantı temelli olan TCP’de kullanıcı verisi taşınmadan önce bağlantı kurulur. Bu protokol OSI nin transport katmanında güvenilir bir iletim hedeflemektedir. İletimin güvenliği, kaybolan paketlerin geri gönderilmesidir.
OSI ve katmanları hakkında bilgi edinmek isterseniz OSI Referans Modeli hakkındaki yazımı okuyabilirsiniz.ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ↑ ↑ ↑
UDP(User Datagram Protocol):
UDP uygulamaların veri aktarımında kullandığı protokellerden biridir. Yaratılan UDP paketleri IP tarafından kapsüllenir ve IP ortamında taşınır. UDP paketlerinin taşınması için önceden bir bağlantıya ihtiyaç duyulmaz.
TCP BAYRAKLARI (Paketleri):
SYN ㅤ> ㅤSynchronzation ㅤ ㅤ> ㅤSenkranizasyon
ACK ㅤ> ㅤAcknowledgement ㅤ>ㅤBilgilendirme
FIN ㅤ > ㅤFinish ㅤ ㅤ ㅤㅤㅤㅤ >ㅤBağlantıyı sonlandırma
RSTㅤ > ㅤ Reset ㅤㅤㅤㅤㅤㅤㅤ>ㅤKopma, İptal etme
URGㅤ> ㅤUrgent ㅤㅤㅤㅤㅤ ㅤ >ㅤAcil
ㅤㅤㅤㅤㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤThree Way Handshake

TCP üçlü el sıkışma adından da anlaşılacağı üzere, 3 adımdan oluşur. Hem son adım, hem de ilk adım hizmeti almak isteyen istemci tarafından gerçekleştirilir. Bu 3 adım gerçekleştikten sonra, sunucu taraf, hizmet vermeye başlar. TCP üçlü el sıkışmayı betimleyen bir şekil aşağıdaki gibidir.
Bu şekilde client tarafı server’e SYN paketi göndererek server’e bağlanmak istediğini söylemektedir.
Ardından sunucu SYN/ACK paketlerini client tarafına göndererek sunucunun bağlanılabilir olduğunu belirtmektedir ve karşı tarafın ACK paketini göndererek server’e bağlanmasını beklemektedir.
Son işlemde ise client server’e ACK paketini gönderir ve iletişim sağlanmış olur.
(Three way handshake’nin anlatılma sebebi ileride sunucuların açık portlarını tararken anlatacağımız SYN scan’in paket iletiminin nasıl sağlandığını ve Nmap’in bu paketleri nasıl manipüle ettiğini daha iyi anlamaktır.)

PORT DURUMLARI(PORT STATE):
Nmap portalar üzerinde ayrıntılı tarama yapabilmektedir. Nmap’te 6 çeşit port durumu vardır. Port durumları bizlere hedef sistem hakkında bilgi verir. Bazen farklı tarama yöntemi kullanmamız konusunda bazen de sistemde kullanılan versiyonlar hakkında bilgiler verir.
6 port durumu şu şekildedir:
- OPEN (AÇIK)
- CLOSED (KAPALI)
- FILTERED (FİLTRELİ)
- UNFİLTERED (FİLTRESİZ)
- OPEN-FILTERED (AÇIK-FİLTRELİ)
- CLOSED-FILTERED (KAPALI-FİLTRELİ)
1- Açık Port Durumu (Open Port):
Açık portlar, bir bilgisayarın veya ağ cihazının dış dünya ile iletişim kurmaya hazır olduğu, belirli bir servis veya uygulamanın dinlemeye hazır olduğu ağ bağlantı noktalarını temsil eder. Bu portlar, belirli bir servisin veya uygulamanın kullanılabilir olduğu ve veri trafiğinin bu noktadan geçebileceği anlamına gelir. Açık portlar, bir sistemde çalışan servislerin veya uygulamaların tespit edilmesi, ağ güvenliği taramaları ve ağ yönetimi gibi birçok durumda önemlidir.
2- KAPALI PORT DURUMU (Closed Port):
Kapalı portlar, bir bilgisayarın ağ üzerinde belirli bir servisi dinlemediği veya bağlantıya izin vermediği portlardır. Her bir port, bir bilgisayar üzerinde belirli bir hizmeti veya uygulamayı temsil eder. Kapalı portlar, genellikle güvenlik amacıyla, belirli bir servisin veya uygulamanın kullanılmadığı durumları ifade eder.
3- FİLTRELİ PORT DURUMU (Filtered Port):
Güvenlik araçları Nmap’in porta ulaşmasını engellediği için portun açık yada kapalı olduğunu tespit edemez. Saldırganlar için olumlu olmayan bir sonuçtur çünkü istedikleri bilgileri elde edemezler. Bazen “destination unreachable” (ICMP error type 3) şeklinde bir ICMP mesajı verebilmektedir. Hatta çoğunlukla mesaj bile gönderilmeyebilir. Nmap bu durumda tekrar taramalar yapar ve tarama süresi uzayabilir.
4- FİLTRESİZ PORT DURUMU (Unfiltered Port):
Port erişilebilir ancak Nmap portun açık veya kapalı olduğunu tespit edemez. Genellikle ACK taramasında “unfiltered” sonucu dönmektedir. Bu durum tarama yönteminin değiştirilmesiyle aşılabilmektedir. Bu durumu aşmak için Window Scan, SYN Scan, FIN Scan gibi taramalar yapılarak bu durum aşılabilir ve port durumu tespit edilebilir.
5- AÇIK-FİLTRELİ PORT DURUMU(Open-Filtered Port):
Nmap bu durumda portun açık mı yoksa filtreli mi olduğuna karar veremediği durumlarda döndürür. Bu durum açık bağlantı noktalarının yanıt vermediği tarama türleri için oluşur. UDP, IP Protocol, FIN, NULL ve XMAS taramaları bu sonucu döndürebilmektedir.
6- KAPALI-FİLTRELİ PORT DURUMU(Closed-Filtered Port):
Nmap bu durumda portun kapalı mı yoksa filtreli mi olduğuna karar veremez. Tarama türünü değiştirmek durumu çözebilir. Yaygın gözüken bir port durumu değildir.
— — — — — — — — — — — — — — — — — — — — — — — —
ㅤㅤㅤㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤSCANİNG TÜRLERİ
TPC SYN (STEALTH) Scan (-sS):
Syn Nmap’te varsayılan olarak kullanılan ve en popüler olan tarama çeşididir. TCP tam olarak gerçekleşemediği için nispeten gizli bir taramadır. Ayrıca open, closed, filtered port durumlarını bulma konusunda güçlüdür. Bu taramayı gerçekleştirmek için Root olmak gerekir.
Port Açıksa:

Nmap SYN paketine karşılık 2. el sıkışmada SYN/ACK paketini aldığında portun açık olduğunu anlar.
- aşamada sunucuya bağlanmak yerine RST paketi gönderir ve bağlantıyı koparır. Bu aşamada RST paketi gönderilmezse sunucu SYN/ACK paketi göndermeye devam eder.
Port Kapalıysa:

Bu işlem çok daha basittir. İlk adımda yine SYN gönderilir. Port kapalı olduğu için karşı bilgisayardan RST paketi gelir. RST paketi portun kapalı olduğunu belirtir ve iletişim sonlanır.
Port Filtreliyse:

Yine ilk adımda SYN paketi gönderilir, ancak hiçbir yanıt gelmez. Yanıt yavaş olabilir bu yüzden nmap biraz bekler. Ardından tekrardan SYN paketi gönderir ve tekrar cevap bekler. Eğer tekrar cevap gelmezse portun filtreli olduğu kanaatine varır ve devam eder. (Aynı zamanda eğer karşı hedef “destination unreachable” uyarısı verirse tekrar SYN göndermeden iletişimi kapatır ve port filitreli der)
SYN Scan’in kullanımı:
SYN Scan’i Nmap üzerinde belirtmek için -sS parametresi kullanılır.
Örnek Kullanım: nmap -sS scanme.nmap.org

Yukarıdaki şekilde görüldüğü üzere scanme.nmap.org adresine yaptığımız SYN taramasında 4 açık ve 1 tane filtreli port bulundu ve geriye kalan 995 portun kapalı olduğunu söyledi.
— — — — — — — — — — — WIRESHARK ANALİZİ — — — — — — — — — —
Şimdi de sadece 22. portu tarayarak wireshark ta paket gönderimlerini inceleyelim.
(Komudu yazmadan önce Wireshark’ta bir dinleme başlattım ve sonucunu aşağıda göstereceğim.)
(Wireshark ağ trafiğini dinlememizi ve kayıtta tutmamızı sağlayan bir araçtır.)
nmap -sS -p 22 -Pn scanme.nmap.org
(-p parametresi kaç numaralı portun taranacağını söylemektedir. -Pn dahil ileride daha detaylı anlatılacaktır şimdilik bilmeseniz de olur.)

Yukarıda 22. portun açık olduğunu ve üzerinde ssh çalıştığını gördük. Bir de Wireshark a bakalım.

Wireshark’ta üsteki yeşil kısma “ip.addr == 45.33.32.156" yazarak scanme.nmap.org un ip adresini giriyoruz ve sadece o ip ile bağlantılı olan paketleri dinliyoruz.
Şekilde görüldüğü üzere 192.168.1.22 ip sinden (bizim ip’miz) 45.33.32.156 ip sine ilk SYN gönderilmiş ve ardından SYN/ACK paketi alınmış. Nmap burda 22. portun açık olduğunu anlayım 3 way handshake’yi gerçekleştirmeden RST paketini gönderip iletişimi koparmıştır.
Şimdi ise filtreli olan 25. port üzerine bir tarama gerçekleştirelim.
nmap -sS -p 25 -Pn scanme.nmap.org

Yukarıda gördüğümüz üzere 25. portun filtreli olduğunu ve üzerinde smtp çalıştığını söylemektedir. Birde önceden dinlemesini başlattığımız Wireshark analizine bakalım.

Tekrardan yeşil kısımda ip adresi tanımlamasını yaptıktan sonra paketlere bakıyoruz. Görüldüğü üzere scanme.nmap.org’un adresine bizim ip’mizden bir SYN paketi gönderildi ve Nmap in adresinden bizim cihazımıza “ICMP Destination Unreachable” mesajı geldi. Bu mesajdan sonra Nmap taramayı durdurup portun filtreli olduğunu söyledi.
Fakat her zaman işler bu kadar tıkırında yürümeyebiliyor. Bu örnekte iletişimin kesilme sebebi karşı cihazın Nmap e “destination unreachable” paketi göndermesi sebebiyleydi. Ancak her zaman karşı cihazdan size geri ping gelmeyebilir. Bu durumda Nmap’in tepkisi şöyledir.

Yukarıda görüldüğü üzere SYN paketine yanıt alamayan Nmap tekrardan SYN paketi göndererek karşı cihazı yoklar ve tekrar cevap alamazsa portun filtreli olduğunu düşünür.
Bu durumu Wiresharkta inceleyelim.
nmap -sS -p 23 -Pn bbc.com
Yukarıdaki komutta 23. portuna istek atıldığında hiçbir paket göndermediğini bildiğimiz bbc.com a bir istek yolluyoruz ve Wireshark’tan bu paketleri takip ediyoruz.

Yukarıda gördüğümüz üzere 23. portun filtreli olduğunu ve üzerinde telnet çalıştırdığını söylemektedir. Wireshark’taki paketlerimizi inceleyelim.

Wiresharkta görüldüğü üzere karşı hedefe bir SYN paketi gönderilmiştir. Karşılık alamayınca biraz bekleyip tekrardan SYN paketi gönderilmiştir. Bu pakete de cevap gelmeyince Nmap bu portun filtreli olduğunu düşünmüş ve bize öyle bildirmiştir.
Şimdi ise kapalı olan 65. port üzerine bir tarama gerçekleştirelim.
nmap -sS -p 65 -Pn scanme.nmap.org

Yukarıda görüldüğü üzere 65. portun kapalı olduğunu ve üzerinde tacacs-ds servisi çalıştığını söylemektedir.
Komutu yazmadan önce başlattığımız Wireshark kaydını inceleyelim.

Kayıtta görüldüğü üzere Nmap hedef cihaza bir SYN paketi yollamıştır ve hedef cihazdan bize RST, ACK paketleri dönmüştür. RST paketini okuyan Nmap bu portun kapalı olduğuna karar getirmiştir.
— — — — — — — — — — — — — — — — — — — — — — — —
TCP CONNECT SCAN (-sT):
Eğer SYN Scan gerçekleştrebiliyorsanız SYN Scan gerçekleştirmeniz çok daha makul olacaktır çünkü Nmap’in paketler üstünde kontrolü daha azdır bu yüzden daha az verimli çalışmaktadır. Çalışmak için root yetkisi istemez.
Sistem bu taramada yarı açık bağlantı yapmak yerine tam bağlantı yapar. Bu da hedef makina üzerinde “log” tutulmasına sebep olur. Bu durumu iyi bir IDS (Intrusion Detection System — Saldırı Tespit Sistemi) bu taramayı yakalayacaktır ancak çoğu sistemde böyle bir güvenlik sistemi yoktur.
Port Açıksa:

İlk aşamada Nmap SYN paketi gönderir ve bağlantı ister. Bağlantı isteğine karşılık olarak SYN/ACK paketini alınca ACK paketi göndererek karşı sisteme bağlanır ve ardından RST pakati göndererek bağantıyı keser.
TCP bağlantıları genellikle FIN ile bitirilirken bu iletişimde RST paketi ile bağlantı hemen sonlandırılır.
Bu taramada SYN taramasının neredeyse 2 katı kadar paket gönderilir ve TCP taraması ile SYN taramasının sonuçları hemen hemen aynıdır.
Port Kapalıysa:

SYN Scan’deki paket iletiminin aynısı tekrarlanır. RST paketini alan Nmap bu portun kapalı olduğu sonucuna varır.
Filtreli port ta SYN paketiyle aynı mantıkta olduğu için TCP’nin filtreli portunu göstermeyeceğim. Değişen bir paket yoktur.
TCP Connect Scan’in kullanımı:
TCP Connect Scan -sT parametresiyle kullanılır.
örnek kullanım: nmap -sT scanme.nmap.org

Yukarıda görüldüğü üzere scanme.nmap.org adresi üzerine TCP Connect Scan yapıldı ve SYN Scan ile neredeyse aynı sonuçlar elde edildi.
— — — — — — — — — — — WIRESHARK ANALİZİ — — — — — — — — — —
Şimdi de sadece açık olan 22. portu tarayarak Wireshark’ta paket gönderimlerini inceleyelim.
nmap -sT -p 22 -Pn scanme.nmap.org

Yukarıda gördüğümüz üzere 22. porta TCP Connect Scan taraması yaptık ve 22. portun açık olduğunu gördük. Bir de Wireshark tarafında neler dönmüş, hangi paketler toplanmış onlara bakalım.

Wireshark’ın topladığı paketlerde görülmek üzere bizim adresimizden hedef adrese bir SYN isteği gönderildi.
Bunun karşılığında hedef cihazımız bize SYN/ACK paketi göndererek bizim ona bağlanmamızı istedi.
Ve bizim cihazımız ACK paketi gönderek bağlantıyı tamamladı ve hedef cihaza bağlandı.
Ardından tekrar bizim cihazımız RST paketi göndererek bu bağlantıyı sonlandırdı ve portun açık olduğunu öğrendi.
// Filtreli veya Kapalı portta SYN Scan ile aynı sonuçlar çıkacağından incelemesini burda atlıyorum. Filtreli ve Kapalı portların paket alıp verimleri SYN Scan ile tamamen aynıdır. //
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
UDP SCAN (-sU):
TCP en çok kullanılan protokol iken birçok ağ hizmeti hala UDP’yi kullanmaktadır. (DNS-53 DHCP-161/162 SNMP-67/68 gibi)
Bir hedef taranırken host ağın hem TCP hem de UDP hizmetlerini kontrol etmek testler sırasında çizilecek yolu daha iyi hale getirecektir.
UDP NASIL ÇALIŞIR:
UDP’de TCP’nin sahip olduğu gibi bayraklar yoktur. UDP taraması bütün hedef portlara UDP paketleri göndererek çalışır. Çoğu bağlantı noktası için boş paketler gönderir ancak daha yaygın bağlantı noktaları için protokole özgü dolu paketler gönderir.
Port Açıksa:

UDP taramasında gönderilen UDP paketine karşı herhangi bir UDP paketi gönderilirse port açık kabul edilir.
Port Kapalıysa:

UDP taramasıyla gönderilen UDP paketine karşılık hedef cihazdan ICMP (Type 3, Code 3) Destination Unreachable — Port Unreachable cevapları dönerse bu portun kapalı olduğu anlaşılır.
Port Açık-Fitreliyse:
UDP taramasında gönderilen UDP paketine karşılık herhangi bir cevap dönmezse Nmap yeniden bir UDP paketi gönderir. Gönderilen bu pakete tekrar cevap gelmezse bu port Açık-Filtreli (Open-Filtered) olarak gösterilir.
Port Filtreliyse:
Gönderilen UDP paketlerine karşılık belli başlı hata kodları geliyorsa o hata kodu tanınır ve portun filtreli olduğu söylenir.

Bu tabloda port durumlarının neye göre belirlendiği yazılmıştır. alınan diğer ICMP unreachable errors (type 3, code 1, 2, 9, 10, or 13) türleri hatalar bu portun filtreli olduğunu belirtir.
UDP Scan’in Kullanımı:
UDP Scan’i Nmap üzerinde belirtmek için -sU parametresi kullanılır.
örnek kullanım: nmap -sU scanme.nmap.org
Aşağıdaki fotoğrafta tüm portlara UDP taraması atması çok zor olacağından dolayı sadece 53. porta atıp sonucunu çıkarttım:

— — — — — — — — — — — WIRESHARK ANALİZİ — — — — — — — — — —
Şimdi kapalı olan 53 portunun incelemesini yapalım:
nmap -sU -Pn -p 53 scanme.namp.org

Yukarıda gördüğümüz üzere Nmap 53. portun kapalı olduğunu ve üzerinde domain çalıştığını söyemekte.
Wireshark ise paketleri şu şekilde toplamıştır:

Analizde görüldüğü üzere bizim cihazımızdan hedef cihaza bir DNS sorgusu yapılmış fakat karşı cihaz bize “Destination Unreachable” hatasını vermiştir. Bu yüzden port kapalı olarak kabul edilmiştir.
Şimdi ise açık olan 123. portu inceleyelim:
nmap -sU -p 123 -Pn scanme.nmap.org

Yukarıdaki şekilde gördüğümüz üzere 123 portu açıktır ve üzerinde ntp servisi çalışmaktadır.
Birde açık olan 123 portunun Wireshark ile tutulmuş paket analizlerini inceleyelim:

Bizim ip adresinden hedef ip adresine bir istekte bulunulmuş ve bunun karşısında hedef makine de bize bir paket göndermiş ve hedefin açık olduğu anlaşılmış.
Son kısımda hedef port bizim porta bağlanırken “Destination Unreachable” mesajı almış fakat biz zaten cevabımızı çoktan aldığımız için burası önemli değil.
Şimdi ise Open-Filtered (Açık-Filtreli) olarak geçen 68. portu inceleyelim:
nmap -sU -p 68 -Pn scanme.nmap.org

Yukarda görüldüğü üzere 68. port incelenmiş ve bu portun open|filtered olduğuna ve üzerinde dhcpc çalıştığına karar verilmiştir.
Bu taramanın Wireshark üzerindeki paket kayıplarını inceleyelim:

Wiresharkta da görüldüğü üzere bizim cihazımızdan karşı cihaza istekte bulunulmuş fakat herhangi bir cevap gelmemiş. Nmap bir süre bekledikten sonra tekrardan istekte bulunmuş fakat o isteğe de cevap alamadığı için portun durumunu open|filtered olarak belirlemektedir.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
(Aşağıdaki tarama türleri yaygın türler olmadığından kısaca anlatılıp geçilmiştir)
FIN Scan(-sF):

FIN Taraması yapılırken kaşı cihaza bir FIN paketi gönderilir. Eğer bu pakete karşı cihaz RST/ACK paketi gönderirse karşı cihazın kapalı olduğunu anlarız.
Fakat karşı cihaz gönderilen bu FIN paketine hiç cevap vermezse biz karşıdaki cihazın açık olduğunu anlarız.
FIN Scan’in Kullanımı:
nmap -sF scanme.nmap.org
NULL Scan(-sN):

Null Scan’de cihazımız hedef cihaza 0 değerinde bir NULL bayrağı gönderir. Bu bayrağa hedef cihazdan bir yanıt gelmezse portun açık olduğu kabul edilir.
Eğer gönderdiğimiz NULL bayrağına hedef cihazdan bir RST/ACK paketi gelirse bu cihazın kapalı olduğunu düşünürüz.
Genel yorumlanmasıyla FIN Scan ile neredeyse aynıdır.
NULL Scan’in Kullanımı:
nmap -sN scanme.nmap.org
Xmas Scan(-sX):

Xmas Scan’de hedef cihaza aynı anda FIN/PSH/URG paketleri gönderilir. Eğer hedef cihaz bu paketlere yanıt vermezse hedef cihazın taranan portunun açık olduğu söylenir.
Ancak hedef cihaz bizim cihazımıza bir RST paketi gönderirse hedef cihaz üzerindeki taranan portun kapalı olduğu sonucuna ulaşırız.
Xmas Scan örnek kullanım:
nmap -sX scanme.nmap.org
— — — — — — — — — — — — — — — — — — — — — — — —
ㅤㅤㅤNmap Parametreleri ve Özellikleri
Nmap’te ip taratması:
Nmap üzerinde örneğin 192.168.1.16 ip adresini taratmak isterseniz
“ㅤnmap 192.168.1.16ㅤ" yazmanız yeterli olacaktır.
Fakat az daha detaylı bir taratma yapmak için yukarıda yazdığımız scan türlerini kullanabilirsiniz örneğin:
nmap -sS 192.168.1.16ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ (SYN Scan çalıştırır.)
Nmap üzerinde local ağınızdaki tüm cihazları da tarayabilirsiniz. Bunu yapmak için:
nmap 192.168.1.0/24
Komutunu girmeniz yeterli olucaktır. Bu komutu çalıştırdığımızda bağlı olduğumuz ağa bağlı olan tüm cihazlar taranacaktır.
Eğer bir ip taraması yaparken belirli aralıktaki ip leri tarama dışı bırakmak istiyorsanız ㅤ— exclude ㅤkomutunu kullanabilirsiniz.
Örneğin bağlı olduğum 192.168.1.0 ağında tüm cihazları taratmak istiyorum ama 100 ve 250 ip’leri arasındaki ipleri taramamak istiyorum.
nmap 192.168.1.0/24 — exclude 192.168.1.100–250
komutunu kullanarak bu 100 ve 250 numaralı ip ler arasındaki ip leri tarama dışı bırakabilirim.
Aynı zamanda belirli bir txt dosyasının içinde taranmaması gereken ip adresleri varsa bu ip adreslerini ㅤ— excludefileㅤ/dosyanın/dizin/yolu komutuyla tarama dışı bırakabiliriz. Örneğin:
nmap 192.168.1.0/24 — excludefile /home/kali/Documents/Tarama.txt,
Bu komut çalıştırıldığında ağımızdaki tüm cihazlar taranır fakat Tarama.txt nin içinde bulunan ip’lere sahip cihazlar taranmaz.
-iL parametresi:
Nmap’te aynı şekilde bir txt ye kaydedilmiş ip listesi de taratabilirsiniz. Bu taramayı yapmak için -iL parametresini kullanmalısınız. -iL parametresini kullandıktan sonra içinde ip’leri barındıran txt’nin dizin yolunu belirtirseniz o txt içindeli ip leri sırasıyla tarayacaktır.
“ nmap -iL /home/kali/Documents/ipler.txt “ㅤ(ipler.txt içindeki ip leri tarar)
Nmap’te port taraması:
-p parametresi:
-p parametresi Nmap üzerinde taranacak portları belirtmektedir.
Örneğin bir ip üzerindeki 22. portu taramak isterseniz:
*ㅤ-p 22 ㅤ*yazarak sadece 22. portu tarayabilirsiniz.
Aynı zamanda hem 22 hem 23 hem de 80. portu taramak isterseniz bu işlemi portlar arasına “ , ” işareti koyarak ta yapabilirsiniz.
-p 22,23,80 ㅤparametresi hedef ip üzerinde 22 23 ve 80. portu tarayacaktır.
Yada belli aralık verip o aralıktaki portları taratmak isterseniz “ — “ işareti koyarak bir aralık belirtebilir ve o aralığı tarayabilirsiniz. Örneğin 22 ve 80 port aralıklarını taratmak için:
-p 22–80ㅤ yazarsanız 22. ve 80. port arası 22 ve 80 dahil tüm portları tarayacaktır.
Eğer yapacağınız port taramasında belli aralıklardaki portları taramak istemiyorsanız bunu — exclude-ports komutuyla yapabilirsiniz.
Mesela scanme.nmap.org adresinde bir port taraması gerçekleştireceksiniz ve 100 ile 200 numaralı portların arasındaki portlar dahil olmak üzere taranmamasını istiyorsunuz. Bunu:
nmapㅤ — exclude-ports 100–200 ㅤ scanme.nmap.org
Komutunu çalıştırarak gerçekleştirebilirsiniz.
Bir sistem üzerinde 65.536 tane port bulunmaktadır. Ancak Nmap aracı tarama yaparken en popüler 1000 portu tarar. Tüm portları taramak istersek ” -p- “ parametresini kullanabiliriz.
Örneğin scanme.nmap.org üzerindeki 65.356 portu da taramak istersek:
nmap ㅤ -p- ㅤscanme.nmap.org
komutunu çalıştırabiliriz. Bu parametreyle tüm portlar taranacaktır.
Eğer portlar üzerinde çalışan servisleri taramak istersek (örneğin http servislerini taraycağız) -p parametresinden sonra taramak istediğimiz servisi yazarak tarayabiliriz. Örnek kullanım:
nmapㅤ -p http ㅤscanme.nmap.org

Yukarıda gödüğümüz şekilde açık yada kapalı farketmeksizin scanme.nmap.org üzerindeki http servisi çalıştıran portları taradı ve gösterdi.
Adının bir kısmını hatırladığınız bir servis varsa bu servisi adın bir ksımını yazdıktan sonra “ ***** ” işareti koyarak Nmap aracına tamamlatabilirsiniz.
Örneğin ismi remote ile başlayan bir servisin adını unuttunuz:
*nmap -p remote scanme.nmap.org**

Yukarıda gördüğümüz üzere remote ile başlatan tüm servisleri nmap bizim için taradı ve listeledi.
Yapacağınız taramada port sonuçlarını göstermek istemezsek -sn parametresini kullanabiliriz. Bu şekilde port taraması yapmada bize daha hızlı bir sonuç verir. İleride versiyon taramaları yaparken bu parametre bizi daha da hızlandırıcaktır fakat genel olarak çok önemli bir parametre değildir.
örneğin:
namp -sn scanme.nmap.org
komutunu çalıştırırsak bize sadece host’un açık olup olmadığı hakkında bilgiler verir portları taramaz ve göstermez.
Nmap’te Servis ve Versiyon Tespiti
-sV parametresi:
Nmap aracında -sV parametresini kullanarak portları tarayabilir ve bu portların versiyonları hakkında bilgiler edinebiliriz.
Örneğin scanme.nmap.org adresine bir -sV taraması yaptığımızda:

Görülüdüğü üzere scanme.nmap.org adresindeki portların servisleri ve versiyonları hakkında bilgi edinmiş olduk.
Nmap bu versiyonları tahmin ederek önümüze getirir. %100 doğruluk oranı yoktur.
Nmap’te İşletim Sistemi Tespiti
-O parametresi:
Nmap ile -O parametresini kullanarak operating system yani işletim sistemi taraması yapılabilmektedir.
Örneğin scanme.nmap.org sitesi üzerinde çalışan işletim sistemini bulmak istediğimizde:
namp -o scanme.nmap.org
komutunu çalıştırmalıyız. Bu komutun sonucunda:

Çıktısını alırız. Agrassive OS guesses kısmında görüldüğü üzere çalıştığını tahmin ettiği işletim sistemlerini bize sırasıyla bildirdi. (Sağ tarafa doğru tahminler devam ediyordu fakat yazılar küçülüp okunamaz hale gelmesin diye resmin dışında bırakmam gerekti)
Operating System Taraması’nın çalışması için hedef sistemde en az 1 açık 1 tane de kapalı port bulunmalıdır. Aksi halde bir sonuç alamayız.
Eğer bir taramada OS Scan kullanıyorsak ve bu sistemde 1 açık 1 tane de kapalı port yoksa OS Scan bizim taramamızı çok yavaşlatır.
Bu durumdan kaçınmak için ㅤ— — osscan-limit ㅤparametresini kullanabiliriz.
Bu parametre bir açık bir kapalı port bulamazsa OS Scan taramasını atlamak için kullanılır. Örn:
nmap -O — —osscan-limit scanme.nmap.org
Nmap’te Timing Parametresi:
T5: InsaneㅤT4: Agrassive ㅤ T3: Normal ㅤ
T2: Polite ㅤ T1: Sneaky ㅤㅤ T0: Paranoid
T5 parametresinden başlayarak T0 parametresine kadar tarama hızı yavaşlayan bir sistem vardır. Taramanın en hızlısı T5 tir. Hızlı tarama hedef üzerinde daha fazla dikkat çekebilir ve hedef cihaz sizin taramanızı fark edip sizi yasaklayabilir.
T0 parametresi de aşırı yavaş bir tarama sistemidir. Bu tarama hedef sistem üzerinde daha az dikkat çekmemizi sağlar. Böylece yakalanmadan karşı sistem hakkında bilgi toplayabiliriz.
Eğer T5 gibi hızlı bir tarama çalıştırıcaksak sistemimizin ve ağımızın bu hızı kaldırabileceğinden emin olmamız gerekir, yoksa karşı sistem üzeinde paketler doğru iletilemez ve yanlış sonuçlarla karşılaşırız.
Nmap Scriptleri:
Scriptler Nmap in içerisinde hali hazırda bulunmaktadır. 600 e yakın bu script tarama yaparken bize daha fazla bilgi sağlayan belli özel yazılımlardır.
Nmap bu scriptleri /usr/share/nmap/scripts/scripts.db klasöründe saklamaktadır:

Bu scriptlere siz de kali linux üzerinden bakabilirsiniz.
Belli Başlı Script Kategorileri:
SAFEㅤ ㅤㅤㅤ= Hedef Kaynakları Etlilemez.
INTRUSIVEㅤ = Hedef Kaynakları Etkileyebilir.
VULN ㅤ ㅤ ㅤ= Güvenlik Açıklarını Tespit Eder.
EXPLOİT ㅤㅤ = Güvenlik Açıklarını Sömürür.
AUTH ㅤ ㅤ ㅤ= Kimlik Bilgilerini Bypass etmek için kullanılır.
BRUTEㅤㅤㅤ = Kimlik Bilgilerini Tahmin Etmek İçin Brute Force Saldırısı ㅤㅤㅤㅤㅤㅤㅤ Yapar.
DISCOVERYㅤ= Ağ Hakkında Keşif Yapmak İçin Kullanılır.
DEFAULTㅤㅤ = Hedef Sistem Üzerinde Varsayılan Olarak Belirlenmiş ㅤㅤㅤㅤㅤㅤㅤㅤㅤ(nmap tarafından) Script’leri Çalıştırır.
Bu kategoriler Nmap’in içerisindeki scriptl’erin yazılma amacına göre kategorize edilmesiyle oluşmuştur.
Sizin belirlediğiniz komutlarla hedef sisteme script taramaları atıp daha fazla bilgi elde edilebilir.
Aynı zamanda örneğin üzerinde http servisi çalışan porta http scriptlerini teker teker deneyerek daha fazla bilgi bulunabilir hatta bir expolit bile uygulanabilir.
Örneğin http scriptlerini görmek için şu komutu kullanabiliriz:
grep “http” /usr/share/nmap/scripts/script.db

Bu şekilde http script’lerini görmüş olduk. Sağ tarafta da gördüğümüz üzere bu script’ler default, exploit, intrusive olarak kategorize edilmiştir.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Örneğin Default bir script taramasını Nmap üzerinde şu şekilde yapabiliriz:
nmap ㅤ— — script-default ㅤscanme.nmap.org
Yazabiliriz yada default tarama özelinde -sC komutu da aynı işi yapmaktadır.
nmapㅤ -sC ㅤscanme.nmap.org
Bu komut da yukarıdaki komutla aynı işi yapmaktadır.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Yada Sadece Vuln kategorisindeki scriptlerini kullanmak istersek:
nmap ㅤ— — script ㅤvulnㅤscanme.nmap.org
şeklinde kullanabiliriz. Bu sayede Vuln kategorisine dahil tüm scriptleri nmap tek tek hedef sisteme deneyecektir.
Aynı komut satırı içerisinde 2 çeşit script taratmak istersek şu şekilde yapabiliriz:
nmap ㅤ— — script “vuln , exploit” ㅤscanme.nmap.org
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Scritptler hakkında detaylı bilgi öğrenmek istersek scriptin ismini
— — script-help komutunu kullanarak bilgi alabiliriz.
örneğin ftp-anon scripti hakkında bilgi almak istersek:
nmap ㅤ— — script-helpㅤ ftp-anonㅤscanme.nmap.org
komutunu kullanabiliriz.
ㅤㅤㅤㅤㅤㅤㅤFIREWALL ATLATMA

Firewall ne iş yapar:
Firewall (güvenlik duvarı), bilgisayar ağındaki trafiği kontrol eden ve izin verilen veya engellenen bağlantıları belirleyen bir güvenlik önlemdir.
Bir ip’den sürekli ve hızlı hızlı gelen paketler Firewall un savunma mekanizmasını tetikleyebilir ve sistem sizden gelen paketlere kendini kapatabilir. Artık o sistem üzerinde tarama yapamaz hale gelirsiniz.
Nmap gibi ağ tarama araçları, bu tür güvenlik önlemlerini atlatmak veya algılanmamak için çeşitli teknikler kullanabilir.
Örneğin google.com a ping attığımızda bizim karşımıza gönderilen ping paketleriyle ilgili bir sonuç çıkar.

Fakat biz Tubitak’a ping atarsak aşşağıdaki gibi bir sonuç alırız:

Görüldüğü üzere paketlerin hepsini kaybettik.
Bunun sebebi Tübitak üzerinde çalışan Fırewall’ın ping scan i kabul etmeyip devre dışı bırakmasıdır.
(ping scan kabul etmeyen web sitelerinde -Pn komutunu kullanmak genellikle işe yarayabilmektedir.)
(-Pn komudu ping atmadan karşı sistemi taramamıza olanak sağlar)
Firewall atlatma teknikleri:
-f parametresi:
Firewall yüksek boyuttaki paketleri yakalayıp şüphelenmemesi için -f parametresini kullanarak bu paketleri fregment’lere çevirip yollayabiliriz.
Boyutu küçültülmüş fregmentler olarak karşıya yollanan paket daha az dikkat çeker.
-f parametresinin örnek kullanımı şu şekildedir:
nmapㅤ -sS ㅤ-Pnㅤ -f ㅤscanme.nmap.org

Yukardaki Wireshark analizinde görüldüğü üzere -f ile yolladığımız paketler fregmentlere bölünmüş ve karşıya “Fregmented IP Protocol” olarak iletilmiştir.
-D parametresi:
Hedef sistem üzerinde taramalar yaparken karşı sistem üzerinde çok fazla log bırakabiliyoruz.
Bunu engellemek için de paketlerimizi -D parametresini kullanarak daha önceden belirttiğimiz ip adresleriyle istek yollayabiliriz.
örneğin:
nmapㅤ -sSㅤ -Pnㅤ -D 192.168.1.1,192.168.1.16,192.168.1.24 google.com
Yukarıdaki komutta “ , ” sembolü ile ayrıştırılmış ekstra 3 ip adresi girdik. Artık karşı sisteme gönderilen paketler tek ip den gidip daha fazla dikkat çekmek yerine 3 e bölünüp çektiği dikkat azalacaktır.
Her seferinde Ip adresini kendimiz yazmak zorunda değiliz. -D parametresinin yanına konulan RND: ㅤseçeneği ile Nmap bizim istediğimiz sayıda ip adresini rastgele seçip o ip lere bölerek tarama atabilmektedir.
örnek kullanım:
nmapㅤ -sS ㅤ-Pn ㅤ-D ㅤRND:5 ㅤscanme.nmap.org
komutu ile 6 farklı ip adresinden karşı sisteme tarama atabiliriz. Bu sayının 6 olmasının sebebi RND:5 komutuyla 5 tane decoy ip istememiz ve 1 tane de kendi orjinal ip mizin bulunmasıdır.
Artık karşı sisteme 5 tane ip üzerinden istek atılacaktır ve çekilen şüphe azalıcaktır.

Yukarıdaki Wireshark analizinde görüldüğü üzere Source kısmındaki ip miz 6 farklı ip şeklini almıştır.
ㅤㅤㅤㅤㅤㅤㅤㅤÇIKTI ALMA
-oN parametresi
Nmapte yaptığımız taramalar bazen saatler bazen de günler sürebiliyor ve biz bu yaptığımız taramaların sonuçlarını kaybetmek istemiyoruz.
Bu sebeple yaptığımız taramaları bir txt ye kaydetmek isteyebiliriz ve bu çıktıyı alırken -oN parametresini kullanabiliriz.
örnek kullanım:
nmap -sS -Pn scanme.nmap.org -oN /home/kali/Documents/nmapcıktı.txt
yukarıdaki şekilde uygulandığı üzere alınan çıktı Documents klasörü içinde nmapcıktı.txt dosyası içerisine kaydedilicektir.
Eğer çıktıyı almak için bir dizin yolu vermezsek ve -oN nmapcıktı.txt şeklinde yazarsak, taramayı içinde bulunduğumuz dizine nmapcıktı.txt adıyla kayıt eder.
Daha farklı kayıt çeşitleri de vardır fakat bizim işimize yarayacak ve en fazla kullanılan çıktı şekli budur.
Bu yazıda detaylı olarak Nmap tool’u inceledik. Umarım bişeyler öğrenmiş ve beğenmişsinizdir. İyi çalışmalar..
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤEren GEZEN
메타데이터
- post_id
- ed216dcbf91c
- slug
- ㅤㅤㅤㅤㅤ-nmap-ed216dcbf91c
- url
- https://medium.com/@erengezen/%E3%85%A4%E3%85%A4%E3%85%A4%E3%85%A4%E3%85%A4-nmap-ed216dcbf91c
- canonical_url
- https://medium.com/@erengezen/%E3%85%A4%E3%85%A4%E3%85%A4%E3%85%A4%E3%85%A4-nmap-ed216dcbf91c
- author_url
- https://medium.com/@erengezen
- status
- ok
- fetched_at
- 2026-07-24 16:59:40