WHAT IS NMAP? EXAMINATION
theguler@Norden:~# nmap -V
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with:
Compiled without:
Available nsock engines:
Nmap, (Network Map) ağ keşfi için kullanılan tarayıcılarının tanrısıdır.
Bir sızma testinin ilk aşamalarında çoğu güvenlik araştırmacısının temel aralarından birisidir.
1990'ların sonlarına doğru Fyodor AKA Gordon Lyon tarafından yazılmış ve bakımı yapılmıştır.
Nmap, aralarında The Matrix Reloaded, Die Hard 4, Girl With the Dragon Tattoo ve The Bourne Ultimatum'un da bulunduğu on iki filmde adı geçmektedir.
Nmap ne yapar:
- Ana Makine Keşfi:
- Bağlantı Noktası Bulma/Numaralandırma:
- Servis Keşfi:
- İşletim Sistemi Sürümü Tespiti:
- Donanım (MAC) Adresi Tespiti:
- Servis Sürümü Tespiti:
- Nmap Komut Dosyaları (NSE) Kullanılarak Güvenlik Açığı/Kötüye Kullanım Tespiti:
- Nmap IDS / Port Tarama Tespiti ve Tarama Süresi Optimizasyonu:
Nmap'i indirin ve yükleyin:
Nmap genellikle Linux dağıtım paket yöneticiniz aracılığıyla yüklenir.
Debian / Ubuntu / Kali
APT paket yöneticisini kullanarak: apt install nmap
RHEL / Fedora, CentOS, Rocky Linux
DNF paket yöneticisini kullanarak: dnf install nmap
Windows
Windows için Nmap'i indirin ve yükleyin: https://nmap.org/download#windows
MacOS
Brew kullanarak: brew install nmap
Nmap Commands:
#Specific to scan general most common (1,000 ports in total):
nmap 10.5.41.36
#To specifically scan all ports (65535 ports and more):
nmap -p- 10.5.41.36
#Supported (grep) to specifically scan all ports (65535 ports and more):
nmap -p- 10.5.41.36 | grep 'open'
#Scan only certain ports:
nmap -p- 80,443 10.4.44.85
#Subdomain Dns scanning (grep) supported:
sudo nmap -sn 10.8.40.0/24 | grep "report for"
For #Sub Mac Address scanning:
sudo nmap -sn 10.5.50.0/24
sudo nmap -sP -n 10.5.50.2/24
#Specific public port scanning and service information:
nmap -sV 10.5.41.36
#Operating system and version check:
nmap -A 10.5.41.36
#Operating system and version information
nmap -A 10.5.41.36
#Detect whether the target is protected by firewall:
sudo nmap -sA 10.5.48.36
#To scan the system protected by firewall:
sudo nmap -PN 10.5.42.152
#Most frequently used (10) ports:
nmap -top-ports 10 10.5.25.36
#All incoming and outgoing packages:
nmap -packet-trace 10.5.48.125
#you can scan ip addresses from file:
nmap -iL iplist.txt
#Accessing operating system information:
sudo nmap -O 10.8.45.32
#To scan all tcp ports:
sudo nmap -sT 10.5.89.66
#To scan all udp ports:
sudo nmap -sU 10.5.63.45
#To print out #Nmap results:
nmap 10.9.25.25 > output.txt
Taramalarda Kullanılan Bazı Parametler:
- -T: Tarama hızını belirlemek için kullanılır. -T5 daha hızlı bir tarama yaparken, -T1 daha yavaş ve dikkatli bir tarama yapar.
- -n: DNS çözümlemesi yapma anlamına gelir.
- -v, -vv, -vvv: Ekrana gösterilecek detayları artırır.
- -F: Daha hızlı tarama yapar. Daha az sonuç bulur.
- --reason: Bulduğu bir sonucun sebebini gösterir.
- --open: Sadece açık portları gösterir.
- -p-: Bir IP üzerinde bulunması muhtemel 65535 portun hepsini tarar.
- -sV: Açık portta çalışan servisin ne olduğunu bulmaya çalışır. -sC ile birlikte kullanılırsa işe yarar.
- -sC: -sV ile versiyon tespiti yapılırken Nmap scriptlerini kullanır.
- -p: Sadece bu parametreden sonra belirtilen portları tarar.
- --top-ports: En çok kullanılan portları tarar.
- --Pn: Ping atmak istenmediğinde kullanılır.
- --h: Yardım almak için kullanılır.
- --V: Nmap versiyon kontrolü için kullanılır.
- --6: IPv6 aktif edilmek istendiğinde kullanılır.
- --A: Agresif tarama opsiyonunu aktifleştirir.
- --e [interface]: Network kartı tanımlamak amaçlı kullanılır.
- --ttl: TTL değerinin ayarlanmasını sağlar.
- --badsum: Hatalı checksuma sahip paketler gönderir.
- --data-length: Paketlerin boyutunun ayarlanmasını sağlar.
- -a: Tüm taramaları yap (TCP, UDP, SCTP, vs…)
- -p-: Tüm portları tara.
- -sT: TCP Connect taraması yap.
- -sU: UDP taraması yap.
- -sV: Servis sürümü tespiti yap.
- -A: İşletim sistemi ve sürüm tespiti yap.
- -O: İşletim sistemi tespiti yap.
- -v: Ayrıntılı çıktı ver.
- -vv: Daha fazla ayrıntılı çıktı ver.
- -oN: Çıktıyı normal dosyaya kaydet.
- -oX: XML çıktı dosyası oluştur.
- -oG: Grep-uyumlu çıktı dosyası oluştur.
- -iL: Dosyadan hedefleri al.
- --exclude: Belirli IP adreslerini hariç tut.
- --script: NSE betiklerini çalıştır.
- --open: Açık portları göster.
- --scanflags: Özel tarama bayrakları belirle.
- -T: Tarama hızını belirlemek için kullanılır. -T5 daha hızlı bir tarama yaparken, -T1 daha yavaş ve dikkatli bir tarama yapar.
- -sn: Port taraması yapma anlamına gelir. Sadece ping atarak online/offline olarak kontrol eder. Aynı zamanda subdomain DNS tarar.
- -n: DNS çözümlemesi yapma anlamına gelir. Yani, IP adreslerini çözümleme işlemini atlar ve doğrudan IP adreslerini kullanır.
- -v, -vv, -vvv: Ekrana gösterilecek detayları artırır. -v daha az detay gösterirken, -vvv daha fazla detay sağlar.
- -F: Daha hızlı tarama yapar, ancak daha az sonuç bulur. Yani, tarama hızını artırır.
- -sS: SYN taraması yapar. SYN/ACK yanıtı bekler.
- --reason: Bulduğu bir sonucun sebebini gösterir. Yani, neden bir portun açık veya kapalı olduğunu açıklar.
- --open: Sadece açık portları gösterir. Diğer tüm sonuçları görmezden gelir.
- -p-: Bir IP üzerinde bulunması muhtemel 65535 portun hepsini tarar.
- -sV: Açık portta çalışan servisin ne olduğunu bulmaya çalışır. -sC ile birlikte kullanılırsa işe yarar. Yani, hedefteki servislerin versiyonlarını saptamaya çalışır.
- -sC: -sV ile servis tespiti yapılırken Nmap scriptlerini (NSE) kullanır. Bu, daha fazla bilgi elde etmek için kullanılır.
- -p: Sadece bu parametreden sonra belirtilen portları tarar.
- --top-ports: En çok kullanılan portları tarar. Bu, yaygın olarak kullanılan servisleri hedeflemek için kullanışlıdır.
- --Pn: Ping atmak istenmediğinde kullanılır. Yani, hedeflere ping göndermeyi atlar.
Tarama Sonucu Port Durum Terimleri:
Open = Portun aktif olduğu ve bağlantıyı kabul ettiğini gösterir.
Closed = Portun erişilebilir olduğu ancak üzerine işlem yapılamadığını gösterir.
Filtered = Bir firewall tarafından engellendiğini gösterir.
Unfiltered = ACK taraması sonucunda portun isteklere yanıt verdiğini fakat durumunun tespit edilmediğini gösterir.
Open | Filtered = Portun açık fakat bir firewall tarafından engellendiğini gösterir.
Closed | Filtered = Portun kapalı veya firewall olup olmadığını gösterir.
Nmap ile kullanabileceğiniz bazı temel tarama tipleri:
TCP Taraması (TCP SYN Taraması): Bu, Nmap'in varsayılan tarama türüdür. Nmap, TCP bağlantıları kurmadan hedef sistemlerin belirli portlarını denemek için TCP SYN paketleri kullanır. Bu yöntem hedef sistemlerdeki açık portları tespit etmek için yaygın olarak kullanılır.
UDP Taraması: TCP taraması gibi, hedef sistemlerin UDP portlarını taramak için UDP paketlerini kullanır. UDP taraması, bazı servislerin ve uygulamaların gizli UDP portlarını tespit etmek için kullanılır.
TCP Bağlantı Taraması (TCP Connect Taraması): Bu yöntemde Nmap, hedef portlara tam bir TCP bağlantısı kurar. Bu, hedef portların gerçekten açık ve erişilebilir olup olmadığını belirlemek için kullanılır, ancak daha kolay tespit edilir.
ACK Taraması: ACK taraması, hedef sistemlerin güvenlik duvarları ve filtreleri tarafından nasıl işlendiğini belirlemek için kullanılır. Hedef sistem, ACK yanıtlarını nasıl ele aldığına bağlı olarak tespit edilebilir.
FIN Taraması: Bu tarama türü, hedef sistemlerin FIN paketlerine nasıl yanıt verdiğini test etmek için kullanılır. FIN taraması, sistemlerin belirli portlara sahip olup olmadığını belirlemek için kullanılır.
XMAS Taraması: XMAS taraması, hedef sistemlerin belirli portlara ilişkin davranışlarını analiz etmek için kullanılır. Bu tarama, belirli bayrakların (FIN, URG ve PSH) açık veya kapalı olup olmadığını kontrol eder.
SCTP INIT Taraması: Stream Control Transmission Protocol (SCTP) kullanılan sistemlerde SCTP INIT taraması yapar.
IDLE Taraması: Bu tarama türü, hedef sistemlerdeki filtreleri analiz etmek için kullanılır ve hedef sistemdeki portlar hakkında bilgi toplamak amacıyla tasarlanmıştır.
ICMP Taraması: ICMP (Internet Control Message Protocol) taraması, hedef sistemlerin ICMP yanıtlarına nasıl tepki verdiğini incelemek için kullanılır.
Custom Taramalar: Nmap, kullanıcının özel tarama tipleri oluşturmasına da izin verir. Kullanıcılar, belirli portları, protokolleri ve diğer tarama seçeneklerini özelleştirebilirler.
Nmap Scripting Engine (NSE) Nedir?
https://nmap.org/nsedoc/scripts/
Nmap Scripting Engine (NSE), popüler bir ağ keşif aracı olan Nmap'in (Network Mapper) bir bileşenidir. Nmap, ağdaki bilgisayarları, hizmetleri ve açık portları taramak, izlemek ve incelemek için kullanılan bir açık kaynaklı araçtır. NSE, Nmap'in yeteneklerini genişletmek ve özelleştirmek için kullanılan güçlü bir özelliktir. Ağ keşif işlemlerini otomatize etmek, belirli hizmetlerin ve güvenlik açıklarının tespiti için özelleştirilmiş taramaları çalıştırmak ve hatta özel ağ zafiyetlerini belirlemek gibi çeşitli görevler için NSE kullanılabilir.
NSE, önceden yazılmış ve kullanılabilir olan birçok betikle birlikte gelir ve kullanıcılar kendi özel betiklerini yazabilir. Bu betikler, ağdaki cihazlar ve hizmetler hakkında bilgi toplamak, güvenlik açıklarını tespit etmek veya özel tarama işlemleri gerçekleştirmek için kullanılabilir.
7 Nmap NSE Custom Scripts: https://hackertarget.com/7-nmap-nse-scripts-recon/
NSE'nin avantajları şunlardır:
- Hızlı ve özelleştirilebilir: NSE, hızlı ve özelleştirilebilir tarama işlemleri yapmanıza olanak tanır, böylece ağınızdaki özel gereksinimleri karşılayabilirsiniz.
- Bilgi toplama: Betikler, ağdaki cihazlar ve hizmetler hakkında daha fazla bilgi toplamak için kullanılabilir. Örneğin, bir cihazın çalıştırdığı hizmetler, hizmet sürümleri, işletim sistemi tespiti ve daha fazlası.
- Güvenlik açıklarının tespiti: NSE, potansiyel güvenlik açıklarını tespit etmek için kullanılabilir. Özel betikler, belirli zafiyetlerin varlığını kontrol etmek veya hedef sistemlerdeki güvenlik açıklarını değerlendirmek için kullanılabilir.
NSE, ağ yöneticileri, güvenlik uzmanları ve sızma testi uzmanları gibi profesyoneller için güçlü bir araçtır ve ağ güvenliği, performans izleme ve ağ sorunlarını tespit etme gibi çeşitli görevlerde kullanılabilir.
NSE Script Kategorileri:
- Auth (Kimlik Doğrulama):
- Bu kategori, hedef sistemlere kimlik doğrulama yapmak için kullanılan scriptleri içerir.
- Broadcast (Yayın):
- Bu kategori, yerel ağda keşif yapmak için yayın yapılan scriptleri içerir. Genellikle listelenmeyen hostları keşfetmek için kullanılır.
- Brute (Kaba Kuvvet):
- Kaba kuvvet saldırıları ile hedef sistemlerin kimlik doğrulama bilgilerini tahmin etmek için kullanılan scriptleri içerir.
- Default (Varsayılan):
- Bu kategori, varsayılan NSE scriptlerini içerir ve genellikle
-A
seçeneğiyle kullanılır. Hız, kullanışlılık, güvenilirlik gibi script özelliklerini içerebilir.
- Bu kategori, varsayılan NSE scriptlerini içerir ve genellikle
- Discovery (Keşif):
- Bu kategori, ağdaki cihazlar ve hizmetler hakkında bilgi toplamak için kullanılan scriptleri içerir.
- Dos (Hizmet Reddi):
- Bu kategori, hizmet reddi saldırılarını tespit etmek ve test etmek için kullanılan scriptleri içerir.
- Exploit (Sömürü):
- Bu kategori, hedef sistemlerde bulunan güvenlik açıklarını sömürmek için kullanılan scriptleri içerir.
- External (Harici):
- Bu kategori, üçüncü taraf veritabanlarına veya diğer harici kaynaklara veri göndermek veya almak için kullanılan scriptleri içerir.
- Fuzzer (Fuzzer):
- Bu kategori, rastgele verilerle istekler göndererek hedef sistemi test etmek için kullanılan scriptleri içerir.
- Intrusive (İzinsiz):
- Bu kategori, hedef sistemi izinsiz olarak etkileyen veya saldırı olarak algılanabilen scriptleri içerir.
- Malware (Kötü Amaçlı Yazılım):
- Bu kategori, hedef platformda kötü amaçlı yazılım veya arka kapı varlığını tespit etmek için kullanılan scriptleri içerir.
- Safe (Güvenli):
- Bu kategori, güvenlik açıklarından yararlanmayan ve hizmetleri etkilemeyen scriptleri içerir.
- Version (Sürüm):
- Bu kategori, hedef sistemlerin hizmet sürümlerini tespit etmek için kullanılan scriptleri içerir.
- Vuln (Zafiyet):
- Bu kategori, bilinen güvenlik açıklarını hedef sistemlerde tespit etmek için kullanılan scriptleri içerir.
NSE Commands:
#Temel NSE komutu: nmap -sC 10.8.45.78.0/24 #Sadece tek bir script çalıştırılmak istenirse: nmap –script=promiscuous.nse 10.8.45.78.0/24 #Belli bir dizinin altındaki scriptleri çalıştırmak için: nmap –script=/my-scripts 10.8.45.78.0/24 #NSE Tüm scriptlerin çalıştırılması için: nmap –script=all 10.8.45.78.0/24
***Sisteminizde Nmap Scripting Engine (NSE) Script dosyalarını belirle: locate *.nse locate nse | grep scripts | grep dns nmap --script-help all ***isteğe göre filtrele: locate nse | grep scripts | grep dns ***Nmap Scripting Engine (NSE) scriptlerin (konumu): /usr/share/nmap/scripts/ /usr/local/share/nmap/scripts/
***Örnek Kullanım:
Auth (Kimlik Doğrulama): Örnek: SSH kimlik doğrulaması yapmak için "ssh-brute" nmap --script ssh-brute -p 22 10.8.45.78 Broadcast (Yayın): Örnek: Yerel ağdaki cihazları bulmak için "broadcast-ping" nmap --script broadcast-ping 10.8.45.78 Brute (Kaba Kuvvet): Örnek: SSH şifrelerini kaba kuvvet saldırısıyla denemek için "ssh-brute" nmap --script ssh-brute -p 22 10.8.45.78 Default (Varsayılan): Bu kategori varsayılan NSE scriptlerini içerir, bu nedenle özel bir kullanım örneği sunulmaz. Discovery (Keşif): Örnek: Hedef sistemde çalışan hizmetleri tespit etmek için "all" nmap --script all 10.8.45.78 Dos (Hizmet Reddi): Örnek: Hizmet reddi saldırılarını tespit etmek için "syn-flood" nmap --script syn-flood -p 80 10.8.45.78 Exploit (Sömürü): Örnek: Hedef sistemde bulunan bir açığı sömürmek için "smb-vuln-ms17-010" (Etkilenen sistemleri taramak için dikkatli olun): nmap --script smb-vuln-ms17-010 -p 445 10.8.45.78 External (Harici): Örnek: Hedef sistem için WHOIS bilgilerini almak için whois-ip nmap --script whois-ip 10.8.45.78 Fuzzer (Fuzzer): Örnek: DNS sunucusunu hatalı DNS istekleriyle bombalamak için "dns-fuzz" nmap --script dns-fuzz -p 53 10.8.45.78 Intrusive (İzinsiz): Örnek: HTTP proxy'si olarak kullanmaya çalışmak için "http-open-proxy arduino" nmap --script http-open-proxy 10.8.45.78 Malware (Kötü Amaçlı Yazılım): Örnek: Hedef sistemde kötü amaçlı yazılım veya arka kapı tespit etmek için "smtp-strangeport" nmap --script smtp-strangeport 10.8.45.78 Safe (Güvenli): Örnek: SSH anahtarını tespit etmek için "ssh-hostkey" nmap --script ssh-hostkey -p 22 10.8.45.78 Version (Sürüm): Örnek: Hedef sistemde çalışan hizmetlerin sürümünü tespit etmek için "-sV" nmap -sV 10.8.45.78 Vuln (Zafiyet): Örnek: Belirli bir zafiyeti tespit etmek için "smb-vuln-ms17-010" (Etkilenen sistemleri taramak için dikkatli olun): nmap --script smb-vuln-ms17-010 -p 445 10.8.45.78
Nmap'ın Resmi yardım belgeleri ve daha fazlası için:
Nmap'ın Resmi yardım belgeleri ve daha fazlası için: nmap --help man nmap nmap -h nmap -V
Saygılarımla – Best Regards