İlayda Hörgüşlüoğlu
9 min readMar 14, 2022

NMAP

İlayda Hörgüşlüoğlu

Bu yazımda NMAP nedir, nerelerde kullanılır, kimler kullanır, nasıl kullanılır bu sorulara cevap vermeye ve NMAP ile alakalı terimlerin açıklamasını yapmaya çalışacağım. Öncelikle NMAP’in tanımından başlayalım.

NMAP NEDİR?

Kelime olarak ‘Ağ Eşleştiricisi’ (Network Mapper) anlamına gelmektedir. Bilgisayar ağları uzmanı Gordon Lyon (Fyodor) tarafından geliştirilmiş bir güvenlik tarayıcısıdır. Ücretsiz ve açık kaynak oluşu; kullanımı, ulaşılabilirliği ve güvenilirliği arttırdığı için birçok kullanıcı tarafından tercih edilme sebebi olmuştur. NMAP’in çok farklı ve kapsamlı özellikleri de bulunuyor. İhtiyaca göre komut satırından parametrik olarak çağırılabilen bu araç güvenlik duvarının olup olmadığının testi, versiyon testi, zafiyetlerin taranması, içerisinde bulunan

NSE Scriptleri sayesinde daha bir çok özelliği toplu bir paket içerisinde barındırıyor. Grafik arayüz için Zenmap paketi içerir.

Ağ tarama ve zafiyet testi için kullanıldığından ağ keşfi ve güvenlik denetimi için yardımcı bir programdır.

Örneğin Tarama yapmak istediğiniz ağın size haritasını oluşturabilir ve ağ makinelerinde çalışan servislerin durumlarını, işletim sistemlerini, portların durumlarını gözlemleyebilir.

NMAP ile herhangi bir ağa bağlı olan bir cihazın temel bilgilerine erişebilirsiniz; açık portları, güvenlik açıklarını bulabilirsiniz. Tekli ana bilgisayarları izlemek için kullanılabileceği gibi NMAP size yüz binlerce cihazı ve çok sayıda alt ağı kapsayan geniş ağları da inceleyip gözlem yapmanıza olanak sağlar. Bu yönü NMAP’in popülaritesini yükseltmiştir.

Her ne kadar NMAP yıllar içinde geliştiyse de aslında sistem portlarına ham paketleri göndererek bilgi toplayan port tarama aracıdır. Yanıtları dinler ve bağlantı noktalarının örneğin bir güvenlik duvarı tarafından açık, kapalı veya filtrelenmiş olup olmadığını belirler. Makinelerin açık olup olmadığını, açık olan portların üzerinde hangi servislerin çalıştığını, makine üzerinde hangi işletim sisteminin olduğunu öğrenmemize yarar. Port taraması için kullanılan diğer terimler port keşfi veya numaralandırmayı içerir.

Yukarıda bahsettiğim bazı temel kavramları tanımlandırmaya çalışacağım. Öncelikle port kavramıyla başlayalım.

-PORT NEDİR?

Birçok bilgisayar kullanıcısının günlük kullanımda dahi duymuş olabileceği bu kavram özellikle işi bilgisayarla alakalı olan meslek gruplarında daha çok duyulmakta ve daha çok ele alınmaktadır. Kelime anlamı “liman” olmasına karşın bilgisayar ağlarında “köprü” olarak bilinir. Giriş, soket veya bağlantı noktası anlamına da gelmektedir. Ağ üzerinde çalışan cihazın belirlenmiş bir uç noktasıdır. Temelde fiziksel ve sanal olmak üzere ikiye ayrılırlar.

Fiziksel portlar; cihazların üzerinde gerçek olarak bulunan ve çeşitli uçlar yardımıyla bağlantı kablolarını cihazın direkt olarak üzerine bağlayabildiğimiz giriş/çıkış noktalarıdır. Diğer bir değişle bilgisayar bileşenlerinde bulunan ve fiziksel bağlantıda kullanılan bir donanım yuvasıdır. Bu tür portlar üzerinden bağlanmış herhangi bir makineye veri gönderilebilir ve bu makinenin işleyişi kontrol edilebilir. Örneğin AT Port, Firewire Port (IEEE-1394), Serial port, USB port, LAN veya Ağ Portu (RJ-45) vb.

Sanal portlar “mantıksal” olarak isimlendirilen, bilgisayar kullanırken ağ ve internet üzerinde veya bir yazılım vasıtasıyla yönlendirilen, gerçekte var olmayan fakat yazılımlar aracılığıyla ile üretilen sanal bağlantı noktalarıdır.

Bütün bilgisayarların birbirleri ile iletişim kurabilmesi için IP adresleri bulunmaktadır. Yani ağ ortamındaki iletişimin ve veri alışverişinin sağlanması için sunucu programları tarafından bilgisayarlara IP adresleri verilir. Bu IP adresleri, portlara bölünerek sanal veri yolu oluşturmaktadırlar. Portlar sayesinde her işlem için farklı bir IP adresine ya da cihaza gerek duymadan, tek bir cihaz üzerinde birçok hizmet çalıştırılabilir. Yukarıda belirttiğimiz gibi port köprü anlamına gelmektedir ve sonuç olarak port iki cihazın birbiri arasında haberleşmesi için kullanılır.

Bilgisayarımızdaki herhangi bir IP adresinin hangi portu kullanarak bağlantı sağladığını görmek için komut istemine (Başlat — Çalıştır — cmd ) “netstat -an” komutu yazılırak bağlantılar gözlemlenir.

1 Protocol: Kullanılan protokol

2 Local Address: Bize ait IP adresi ve yanında bulunan numara bağlantı için kullanılan port numrasını gösterir.

3 Foreign Address: Bağlanılan IP adresi ve port numrası gösterilir.

4 State: Durum bilgisini gösterir. “Listining” dinleme , “Established” aktif durumda olduğunu belirtir.

NMAP ile bir port taraması yaptığınızda portların durumları open, closed, filtred, unfiltered, open/filtered, closed/filtered olarak tanımlanır.

Open: Hedef sistemdeki portun aktif olarak bağlantıları dinlediğini gösterir.

Closed: Port olduğunu ve dinleyen bir uygulamanın olmadığını gösterir.

Filtered: Bir firewall tarafından bağlantı noktasına erişimin engellendiğini gösterir.

Unfiltered: Port’un NMAP isteklerine cevap verdiğini ancak durumunun belirlenemediğini gösterir.

Open/Filtered: Port’un açık ama bir firewall tarafından engellendiğini gösterir.

Closed/Filtered: Port’un kapalı ama bir firewall tarafından engellendiğini gösterir.

Port veri alışveriş sistemlerini numaralar üzerinden gerçekleştirir. Bunun yanı sıra aynı anda pek çok işlemi yapabilmek için 0’dan başlayarak 65535’e kadar değerlere bölünmektedir.

Ağ üzerinde iki cihaz birbirleri arasında haberleşirken bazı yöntemler kullanıyor. Bu yöntemlere göre portların ismi TCP ya da UDP olarak belirlemiş olur. Burada TCP ve UDP’nin ne olduğunu açıklamaya çalışalım.

— TCP Nedir? (Transmission Control Protocol)

Amerikan Savunma Bakanlığı tarafından geliştirilmiş durumda olan bir protokol olma özelliği taşımaktadır. Bilgisayarlar arasında varlık gösteren temel iletişimin sorunsuz bir biçimde gerçekleşmesinde görev alır. İki cihaz arasında giden veri paketinin başında, veriye dair bilgi bulunur. Paketi alan cihaz, öncelikle bu bilgi katmanını işler ve ona göre paket alışverişini tamamlar. Doğrulama olduğu için akış sağlıklı fakat UDP servislerine göre yavaş olacaktır. Bazı özel durumlar haricinde genellikle TCP portlar kullanılır. Bilgisayarlar arasındaki temel iletişimin sorunsuz bir şekilde gerçekleşmesinde görev alan TCP, veri alışverişinde veri bütünlüğünü sağlamanın yanı sıra kimlik doğrulaması da yapabilmektedir. TCP’nin oluşturulma sebebi de bilgisayarlar arası iletişimdeki kayıpları önlemektir. Günümüzde HTTP, HTTPS, POP3, SSH, SMTP, TELNET ve FTP gibi protokollerin veri alışverişini TCP yapmaktadır.

— UDP Nedir? (User Datagram Protocol)

Aslında TCP’nin bir alternatifi olarak kullanılmaktadır. Ses ve video göndermeye yarar. İki cihaz arasında geçen paketlerde bir doğrulama sistemi bulunmamaktadır. TCP’den daha hızlı olmasının en önemli nedeni ise TCP’nin veri bütünlüğünden ve kimlik doğrulamasından sorumlu olmasıdır.

UDP, TCP’nin aksine veri bütünlüğünden ve güvenliğinden sorumlu değildir. Bu da UDP’nin TCP’den daha az güvenilir olması anlamına gelmektedir. TCP, veri paketlerini sırayla gönderirken UDP’nin paket gönderim yöntemi akış sistemiyle göndermektir.

NMAP’in Kullanım Alanları Nerelerdir?

Sızma testlerinin gerçekleştirilmesi

Taranan ağ üzerindeki sistemler hakkında bilgi sahibi olunması

Ağ envanteri tutulması, haritalaması, bakımında ve yönetimi

Ağ topolojisinin çıkarılması gibi şeyler Nmap’in kullanım alanlarındandır.

Ağ kurulumu yapılıp hazırlık işlemleri sırasında gerekli ayarların test edilmesi.

Bilinmeyen yeni sunucuları tanımlayarak, güvenlik denetimlerinin yapılmasında kullanabiliriz.

NMAP’in Kurulumu Nasıldır?

Nmap genellikle Linux sistemlerde kullanılsa da Windows ve Mac için de geliştirilen versiyonları vardır. Nmap’in Linux kullanımı ile Windows kullanımı arasında neredeyse fark yoktur. Komutlar tamamen aynı, sadece işleyişler açısından bazı farklılıklar bulunmaktadır. Bu durum son kullanıcıyı etkilememektedir.

Eğer bilgisayarınızda Kali Linux, Parrot, Blackarch, Pento veya Blackbox gibi pentest uygulamaları için geliştirilmiş bir OS yüklü ise, Nmap adlı uygulama otomatik olarak yüklü bir şekilde gelmektedir. Farklı bir işletim sistemi kullanıyor iseniz, uygulamayı kurmanız gerekmektedir. Öncelikle Linux işletim sistemlerinde nasıl yükleneceğine bakacak olursak aşağıda belirtilen kod kullanıldığında Nmap’in varlığı test edilip yüklenir;

Linux (Debian/Ubuntu) Ortamı

(Ayrıca nmap,sitesinden .rpm veya .deb uzantılı setup dosyaları indirilerek kurulabilir.)

Nmap kullanımında tüm komutları ve işlevlerini öğrenmek için komut satırına “nmap -help” ve “nmap -h” komutunu yazabilirsiniz.

Windows ortamı

Windowsta kurulum için öncelikle Nmap sitesinden Windows sürümünü indirmeniz gerekli. Klasik bir Windows programı gibi yani Next, Next,Next,Install, End şeklinde kurulumu gerçekleştiriyoruz. (kurulum sırasında bütün bileşenlerin seçili olmasına dikkat edin.)

Daha sonrasında komut satırını açıp nmap yazarak kullanmaya başlayabiliriz.

NMAP’in Kullanımı, Tarama Türleri ve Komutları Nelerdir?

Yerel ağımızda bulunan bir cihazda tarama yapacağız.

Nmap hiçbir parametre kullanılmadığında default olarak en çok kullanılan 1000 port u taramaktadır.

Yerel ağda tarama yaptığımız için nmap MAC adresi bilgisinide bize vermiş olucak.

Nmap varsayılan olarak tcp taraması yapmaktadır. Udp taraması yapmak için belirtmemiz gerekir.

( Nmap komutunun arkada ne iş yaptığını görmek için komutu çalıştırdıktan sonra “v” harfi ile o anda hangi sunucuya hangi paketi attığını görebiliriz.)

Eğer bulunduğunuz ağda hangi makinelerin açık olduğunu biliyorsanız ip adreslerini nmap e liste olarak verebilirsiniz. Ip adresileri bir text dosyasına kaydetip aşağıdaki belirtilen komut ile nmap’e liste olarak verebiliriz. IP adreslerini text dosyasına yazıp tarama.txt adı ile kaydediyoruz. Sonrasında aşağıda belirttiğimiz komut ile nmap’e IP leri liste olarak vermiş oluyoruz.

Bu tarama ilgili makinelerin açık olup olmadığını belirleyecek ve bu makineler üzerinde syn taraması yapıcak.

Komutlar

TCP Syn (half open) Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sS -v [Hedef_IP]

TCP Connect Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sP -v [Hedef_IP]

UDP Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -Sn -v [Hedef_IP]

Ping Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sT -v [Hedef_IP]

FIN (stealth) Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sF -v [Hedef_IP]

Xmas Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sX -v [Hedef_IP]

Null Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sU -v [Hedef_IP]

IP Protocol Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sO -v [Hedef_IP]

ACK Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sA -v [Hedef_IP]

Window Scan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sW -v [Hedef_IP]

IdleScan: Bu taramayı gerçekleştirmek için aşağıdaki komut kullanılmalıdır:

nmap -sI -v [Zombie_IP] [Hedef_IP]

Komutların Çalışma Prensipleri Nelerdir?

-sS Parametresi (TCP Syn Scan)

Bu parametre TCP ve UDP port taramalarına göre bir hayli hızlıdır. Nmap, hedef cihazın portlarına SYN paketi yollar, eğer serverdan SYN+ACK paketi gelirse o portun açık olduğu değerlendirilir ve hedef porta RST paketi yollanarak bağlantı sonlandırılır.

-sP veya -sn Parametreleri (TCP Null Scan)

Bu parametreler, bir ağda bulunan bilgisayarların tespiti için kullanılmaktadır. Bu parametrenin çalışma mantığına bakacak olursak, -sP parametresi yerel ağda tarama yaparken ağdaki tüm IP adreslerine broadcast olarak ARP paketleri yollar. Bu yolladığı ARP paketlerine dönen cevaplara bakarak, ağdaki aktif cihazları tespit eder. Bu durumu Wireshark adlı uygulama ile görebiliriz. Öncelikle bu testi yapabilmek için içinde bulunulan ağdaki IP adresi veya default gateway adresinin bilinmesi gerekmektedir. Bunun için terminalden ifconfig yazılıp, kullanılan interface kısmındaki inet bölümünden IP adresi öğrenilebilir. Default gateway adresini ise, terminalden “route -nee “ komutunu yazarak öğrenilebilir. Ping Scan tarama mantığı hedef makineye ICP Echo paketi gönderilir. Eğer hedef makine erişilebilir değilse veya paket filtreleyicisi ICMP paketini filtreliyor ise cevap dönmez. Örnek olarak ağdaki private IP adresi 192.168.100.40, default gateway adresi ise 192.168.100.1 olarak verilsin. Bu bilgiler doğrultusunda ağda bulunan tüm cihazlar aşağıdaki komut ile bulunabilir:

nmap -sP 192.168.100.0/24

-sP parametresinden sonra girilmiş olunan IP adresi, bulunulan ağa özeldir. Kullanıcı ifconfig ve route -nee komutlarını kullanarak kendi ağındaki default gateway adresine göre tarama yapabilir. Aksi taktirde hatalı sonuçlar elde edilebilmektedir.

-sT Parametresi (TCP Connect Scan)

. Hedefe SYN Paketi gönderilir, port kapalıysa RST+ACK Paketleri döner, açık ise SYN+ACK paketleri döner.Son olarak ACK Paketi gönderilerek üçlü el sıkışma tamamlanmaz. Bu taramanın kötü özelliği açılan tüm oturumların hedef sistem, Firewall tarafından loglanmasıdır.

-sF Parametresi (FIN Scan)

Şayet bit güvenlik sistemi varsa sistemden cevap almak için ters köşe yapmaktır diyebiliriz. FIN paketi gönderildiğinde karşı makinenin o portu kapalıysa RST-ACK paketi dönerken, port açıksa paket dönmez.

-SX Parametresi (XMAS SCAN)

Bazı güvenlik duvarlarından sonuç almanızı sağlar. TCP paketinin içine URG, PSH ve FIN bayrakları ekler. Hedef makineden dönen cevap FIN ile aynıdır.

-sU Parametresi (UDP Scan)

UDP paketleri ile tarama yapar.

-sO Parametresi (IP Protokol Scan)

Hedef sistemde desteklenen IP protokollerini gösterir.

-sA Parametresi (TCP ACK Scan)

Hedef sistemin güvenlik duvarının bulunup bulunmadığını kontrol etmek için kullanılır. Tek vazifesi filtreli ve filtresiz paketleri ayırt etmektir.

Özetle;

  • nmap 10.0.2.5 (Tek bir hedef için)
  • nmap example.com (Tek bir Host için)
  • nmap 10.0.2.0/24 (Bir Subnet’i taramak için)
  • nmap -F example.com (En çok kullanılan 100 Port’u taramak için)
  • nmap -p- example.com (65535 Portu taramak için)
  • nmap -sT example.com (Taramak için TCP kullanma)
  • nmap -A example.com (İşletim sistemi ve Servis bulmak için)
  • nmap -sV example.com (Standart servis tespiti için)

kullanılabilir.

KAYNAKÇA

https://nmap.org/

https://tr.wikipedia.org/wiki/Nmap

www.priviasecurity.com

www.siberguvenlik.web.tr

https://caglar-celik.com/siber-guvenlik/detayli-nmap-kullanimi/

https://www.beyaz.net/tr/guvenlik/makaleler/nmap_nedir_ve_nasil_kullanilir.html

https://securitytrails.com/blog/top-15-nmap-commands-to-scan-remote-hosts

https://www.slideshare.net/cnrkrglu/nmap101-eitim-sunumu-nmap-kullanm-klavuzu