28 Şubat 2025

1. Giriş

Siber güvenlik dünyasında en önemli araçlardan biri olan Nmap (Network Mapper), ağ keşfi ve güvenlik denetimleri için kullanılan açık kaynaklı bir araçtır. Bu yazımızda, Nmap’in ne olduğu, nasıl kullanıldığı ve sızma testlerindeki (pentest) kritik rolünü ayrıntılı şekilde ele alacağız.

Günümüzde ağ güvenliği, dijital sistemlerin korunması için hayati bir önem taşımaktadır. Siber saldırılar giderek daha sofistike hale gelirken, sistem yöneticileri ve siber güvenlik uzmanları ağlarını düzenli olarak denetlemeli ve güvenlik açıklarını tespit etmelidir. İşte bu noktada Nmap, profesyonellerin en çok tercih ettiği araçlardan biri haline gelmektedir.

Bu yazımızda Nmap’in tarihçesinden, kullanım alanlarından, komutlarından ve pentest süreçlerindeki öneminden detaylı bir şekilde bahsedeceğiz. Ayrıca Nmap ile yapılabilecek gelişmiş taramalar, güvenlik açıkları tespiti ve gerçek hayatta kullanım senaryolarına da değineceğiz.

2. Nmap Nedir?

Nmap, 1997 yılında Gordon Lyon (Fyodor) tarafından geliştirilen ve açık kaynak olarak sunulan bir ağ tarama aracıdır. Ağ keşfi, güvenlik açıklarını belirleme ve port taraması gibi işlemleri gerçekleştirebilir. Nmap, ağ yöneticileri ve siber güvenlik uzmanları için vazgeçilmez bir araçtır.

2.1. Nmap’in Temel Özellikleri

  • Ağ tarama: Bir ağdaki aktif cihazları belirler.
  • Port tarama: Hedef sistemde açık olan portları tespit eder.
  • Servis keşfi: Çalışan servisleri ve sürümlerini tespit eder.
  • İşletim sistemi keşfi: Hedef cihazın işletim sistemini belirler.
  • Güvenlik açığı analizi: Zafiyet taraması yaparak güvenlik açıklarını raporlar.
  • Komut satırından çalıştırılabilme: Linux, Windows ve macOS’ta kullanılabilir.
  • Saldırı senaryolarını belirleme: IDS (Intrusion Detection System) ve güvenlik duvarlarının atlatılması için kullanılabilir.
  • Topoloji haritalama: Ağın genel yapısını çıkarmak için kullanılır.
  • Ağ segmentasyonu analizi: Farklı ağ segmentleri arasındaki bağlantıları belirler.
  • Karmaşık ağ yapılarında analiz yapabilme: Büyük ölçekli kurumsal ağlarda derinlemesine analiz sunar.

Nmap sadece bireysel güvenlik araştırmacıları tarafından değil, aynı zamanda şirketler, devlet kurumları ve akademisyenler tarafından da yaygın olarak kullanılmaktadır. Bu aracın başarısının ardındaki en büyük sebeplerden biri açık kaynak olması ve düzenli olarak güncellenmesidir.

3. Nmap Nasıl Kurulur?

3.1. Windows İçin Kurulum

Windows’ta Nmap’i kullanmak için aşağıdaki adımları takip edebilirsiniz:

  1. Resmi web sitesinden (https://nmap.org) en son sürümü indirin.
  2. Kurulum sihirbazını çalıştırın ve yönergeleri takip edin.
  3. Kurulum tamamlandıktan sonra cmd veya PowerShell üzerinden kullanabilirsiniz.

3.2. Linux İçin Kurulum

Linux sistemlerinde Nmap kurulumu oldukça basittir:

sudo apt update
sudo apt install nmap

Ya da RPM tabanlı dağıtımlar için:

sudo yum install nmap

3.3. macOS İçin Kurulum

Homebrew kullanarak macOS için Nmap kurulumu yapılabilir:

brew install nmap

4. Nmap’in Temel Kullanımı

Nmap’in en temel kullanımı şu şekildedir:

nmap [hedef_IP]

Bu komut hedef IP adresini tarar ve temel bilgileri döndürür. Nmap’in temel işlevlerinden biri de, bir ağ içindeki makineleri analiz ederek açık portları ve çalışan servisleri tespit etmektir.

4.1. Port Taraması

Bir IP adresindeki açık portları taramak için şu komut kullanılır:

nmap -p 1-65535 [hedef_IP]

Bu komut 1’den 65535’e kadar olan tüm portları tarar. Port taramaları, ağ güvenliği açısından kritik öneme sahiptir. Açık portlar, saldırganlar tarafından kullanılabilir ve sistem zafiyetleri ortaya çıkarılabilir.

Daha hızlı bir tarama yapmak için aşağıdaki komut kullanılabilir:

nmap -p 1-65535 --min-rate=1000 [hedef_IP]

Bu komut, saniyede en az 1000 paket göndererek tarama süresini kısaltır.

4.2. Servis ve Sürüm Keşfi

Hedef üzerindeki servisleri ve sürümlerini belirlemek için aşağıdaki komutu kullanabilirsiniz:

nmap -sV [hedef_IP]

Bu komut, hangi servislerin çalıştığını ve sürümlerini tespit eder. Örneğin, hedef sistemde çalışan bir Apache sunucusunun versiyon numarasını öğrenmek için kullanılabilir.

Güvenlik açıklarını taramak için sürüm keşfi ile birlikte tarama yapmak mümkündür:

nmap -sV --script=vuln [hedef_IP]

Bu komut, hedefte çalışan servislerde bilinen zafiyetlerin olup olmadığını kontrol eder.

4.3. İşletim Sistemi Tespiti

Hedef cihazın işletim sistemini belirlemek için şu komut kullanılır:

nmap -O [hedef_IP]

Bu komut, hedef sistemin işletim sistemini tahmin eder. Daha ayrıntılı sonuçlar almak için aşağıdaki komut kullanılabilir:

nmap -A [hedef_IP]

Bu komut, işletim sistemi tespitiyle birlikte sürüm keşfi de gerçekleştirir.

4.4. Ağdaki Tüm Cihazları Tespit Etme

Bir ağ üzerindeki tüm cihazları belirlemek için aşağıdaki komutu çalıştırabilirsiniz:

nmap -sn [ağ_IP_aralığı]

Örneğin, 192.168.1.0/24 ağı taramak için:

nmap -sn 192.168.1.0/24

Bu komut, sadece ağ üzerindeki aktif cihazları listeler. Daha fazla detay almak için şu komut kullanılabilir:

nmap -sP [ağ_IP_aralığı]

Bu komut, sadece aktif IP adreslerini listeler, ancak bağlantı noktalarını taramaz.

4.5. Güvenlik Duvarını Atlatma

Bazı güvenlik duvarları, varsayılan Nmap taramalarını tespit edip engelleyebilir. Ancak daha gizli bir tarama yapmak için aşağıdaki komutlar kullanılabilir:

nmap -sS -Pn -T4 [hedef_IP]

Bu komut, yarı açık tarama (Stealth SYN scan) yaparak hedefin güvenlik duvarına yakalanma ihtimalini azaltır. Ayrıca şu ek teknikler de kullanılabilir:

  • Fragmanlanmış paket taraması için:
nmap -f [hedef_IP]

Bu komut, paketleri küçük parçalara bölerek güvenlik duvarlarını atlatmaya çalışır.

  • IP sahtekarlığı yaparak tarama yapmak için:
nmap -D RND:10 [hedef_IP]

Bu komut, sahte IP adresleri kullanarak tarama yapar, böylece gerçek tarayıcı gizlenmiş olur.

  • Ağ trafiğini şifreleyerek tarama yapmak için:
nmap --proxies [proxy_IP] [hedef_IP]

Bu teknikler sayesinde, taramalarınızı daha anonim hale getirebilir ve tespit edilme olasılığınızı azaltabilirsiniz.

  • Zamanlama ve rastgele tarama teknikleri ile güvenlik duvarlarını atlatmak için:
nmap -sS -T2 --randomize-hosts [hedef_IP]

Bu komut, tarama süresini uzatarak ve rastgele IP adresleri seçerek güvenlik sistemlerinden kaçınmayı amaçlar.

Güvenlik duvarları tarafından engellenen ping taleplerini atlamak için aşağıdaki komut kullanılabilir:

nmap -Pn [hedef_IP]

Bu komut, hedefin çevrimiçi olup olmadığını belirlemek için ping atmadan tarama yapar.

Son olarak, daha karmaşık ağlarda, IDS (Saldırı Tespit Sistemleri) tarafından engellenmeden güvenlik duvarlarını aşmak için tünelleme yöntemleri kullanılabilir:

nmap -sT -sU --script=http-tunnel,http-proxy [hedef_IP]

Bu komut, HTTP tünelleme tekniklerini kullanarak taramanın normal web trafiği gibi görünmesini sağlar. şu şekildedir:

nmap [hedef_IP]

Bu komut hedef IP adresini tarar ve temel bilgileri döndürür.

4.1. Port Taraması

Bir IP adresindeki açık portları taramak için şu komut kullanılır:

nmap -p 1-65535 [hedef_IP]

Bu komut 1’den 65535’e kadar olan tüm portları tarar.

4.2. Servis ve Sürüm Keşfi

Hedef üzerindeki servisleri ve sürümlerini belirlemek için aşağıdaki komutu kullanabilirsiniz:

nmap -sV [hedef_IP]

4.3. İşletim Sistemi Tespiti

Hedef cihazın işletim sistemini belirlemek için şu komut kullanılır:

nmap -O [hedef_IP]

4.4. Ağdaki Tüm Cihazları Tespit Etme

Bir ağ üzerindeki tüm cihazları belirlemek için aşağıdaki komutu çalıştırabilirsiniz:

nmap -sn [ağ_IP_aralığı]

Örneğin, 192.168.1.0/24 ağı taramak için:

nmap -sn 192.168.1.0/24

4.5. Güvenlik Duvarını Atlatma

Bazı güvenlik duvarları, varsayılan Nmap taramalarını tespit edip engelleyebilir. Ancak daha gizli bir tarama yapmak için aşağıdaki komutlar kullanılabilir:

nmap -sS -Pn -T4 [hedef_IP]

Bu komut, yarı açık tarama (Stealth SYN scan) yaparak hedefin güvenlik duvarına yakalanma ihtimalini azaltır. Ayrıca şu ek teknikler de kullanılabilir:

  • Fragmanlanmış paket taraması için:
nmap -f [hedef_IP]
  • IP sahtekarlığı yaparak tarama yapmak için:
nmap -D RND:10 [hedef_IP]
  • Ağ trafiğini şifreleyerek tarama yapmak için:
nmap --proxies [proxy_IP] [hedef_IP]

Bu teknikler sayesinde, taramalarınızı daha anonim hale getirebilir ve tespit edilme olasılığınızı azaltabilirsiniz.

5. Pentest’te Nmap Kullanımı

Pentest, sistemlerdeki güvenlik açıklarını belirlemek ve siber saldırılara karşı önlem almak için yapılan testlerdir. Nmap, pentest aşamalarında oldukça kritik bir rol oynar. Nmap kullanılarak sistem ve ağ altyapısı hakkında detaylı bilgiler elde edilebilir ve güvenlik açıklarının analizi gerçekleştirilebilir.

Pentest sürecinde saldırı yüzeyinin genişliği, ağ yapısı, aktif cihazlar ve servisler gibi temel bilgilerin toplanması, ilerleyen test aşamaları için hayati öneme sahiptir. Nmap, bu bilgileri toplamak için en sık kullanılan araçlardan biridir.

5.1. Bilgi Toplama Aşaması

Bilgi toplama aşaması, sistemlerin nasıl yapılandırıldığını anlamak için yapılan ilk adımdır. Nmap kullanarak hedef sistem hakkında geniş çaplı bilgiler elde edilebilir. Özellikle aşağıdaki komutlar yaygın olarak kullanılır:

nmap -A [hedef_IP]

Bu komut, hedefin açık portlarını, servislerini, çalışan yazılım sürümlerini ve işletim sistemini belirler. Açık portlar ve çalışan servisler, saldırganların kullanabileceği güvenlik açıklarının belirlenmesine yardımcı olur.

Alternatif olarak, sadece hedefte hangi portların açık olduğunu öğrenmek için aşağıdaki komut kullanılabilir:

nmap -p- [hedef_IP]

Bu komut, hedef IP üzerindeki tüm TCP portlarını tarar. Varsayılan olarak Nmap sadece belirli portları tarar, ancak -p- parametresi ile 1-65535 aralığındaki tüm portlar analiz edilir.

Daha ayrıntılı bilgi toplamak için, Nmap’in agresif tarama modları kullanılabilir:

nmap -sS -sV -O -T4 [hedef_IP]

Bu komut, yarı açık SYN taraması gerçekleştirerek hedefin servis bilgilerini, işletim sistemini ve açık portlarını hızlı bir şekilde belirler.

5.2. Zafiyet Taraması

Nmap, hedef sistemdeki güvenlik açıklarını belirlemek için NSE (Nmap Scripting Engine) modülünü kullanır. NSE, farklı güvenlik testlerini otomatik olarak gerçekleştiren script’ler içerir. En yaygın kullanılan güvenlik açığı tarama komutu aşağıdaki gibidir:

nmap --script=vuln [hedef_IP]

Bu komut, hedef sistemde bulunan güvenlik açıklarını tarar ve olası zafiyetleri raporlar. Örneğin, açık bir FTP servisi veya zayıf SSH konfigürasyonu gibi güvenlik riskleri bu yöntemle tespit edilebilir.

Özellikle belirli bir hizmet veya uygulamaya yönelik güvenlik açığı taraması yapmak için ilgili script kullanılabilir:

nmap --script=http-vuln-cve2017-5638 [hedef_IP]

Bu komut, hedef sistemde Apache Struts 2 zafiyeti (CVE-2017-5638) olup olmadığını kontrol eder.

Daha ayrıntılı bir zafiyet analizi yapmak için, hedef sistemde çalışan belirli servislerin daha detaylı incelenmesi gerekebilir. Aşağıdaki komut, hedefte çalışan web servisleri için güvenlik açıklarını kontrol eder:

nmap --script=http-enum,http-vuln-cve2017-9805 [hedef_IP]

Bu tarama, HTTP protokolü ile ilgili açıkları analiz ederek web sunucusunun güvenlik seviyesini değerlendirir.

Ek olarak:

  • Exploit ve zafiyet istismar testleri için Metasploit ile entegrasyon sağlanabilir.
  • Detaylı sonuçları dosya formatında almak için -oN, -oX, -oG parametreleri kullanılabilir.

Pentest aşamalarında Nmap kullanarak toplanan bilgiler, saldırganların sistemlere erişmek için kullanabileceği açıklıkları belirlemek açısından kritik öneme sahiptir. Bilgi toplama ve zafiyet analizi süreçlerini başarılı bir şekilde tamamlamak, ağın güvenlik seviyesini ölçmek ve potansiyel tehditleri önceden tespit etmek için gereklidir.

 

6. Referanslar ve Kaynaklar

  1. Gordon Lyon (Fyodor), “Nmap Network Scanning,” Nmap.org, https://nmap.org.
  2. Nmap Kılavuzu ve Belgeleri, https://nmap.org/book/man.html.
  3. Offensive Security, “Pentesting with Nmap,” https://www.offensive-security.com.
  4. Kali Linux Nmap Araçları, https://tools.kali.org/information-gathering/nmap.
  5. Cybersecurity & Infrastructure Security Agency (CISA), “Network Scanning Best Practices,” https://www.cisa.gov.

SZUTEST Teknoloji

Hizmet Başvurusu ve Detaylı Bilgi İçin
Bize Ulaşın