Nmap Kullanımı

Hedef makinelerin üzerinde hangi servislerin erişilebilir olduğunu gösteren araçtır. Açık kaynak kodlu olarak geliştirilmiş bir yazılımdır. GPL (General Public Licence) lisanslı bir yazılımdır ve istendiği takdirde sitesinden kaynak kodu indirilebilmektedir.

Nmap kullanarak ağa bağlı herhangi bir bilgisayarda port taraması, versiyon ve işletim sistemi analizi, zaafiyet testleri, yazılımların hangi servisleri kullandığı, yazılımların sürüm numaraları gibi birçok bilgi elde edilebilmektedir.

$ nmap [hedef_makine_adı] diyerek bir tarama yaptığımızda bize hangi portların erişilebilir olduğunu söyler. Port bilgisi, portların durumları ve hangi servislerin kullanıldığını gösterir.

PORT    STATE  SERVICE
21/tcp      open           ftp
22/tcp      open           ssh
80/tcp      open           http
443/tcp    closed         https

 $ nmap [hedef_makine_IP_adresi] şeklinde de yanı taramayı yapabiliriz.

***Bir ağın içinden(örneğin yerel ağ) ve başka yerden yaptığımız taramalarda sonuçlar her zaman aynı olmayacaktır.

=> Nmap tarama işini nasıl yapıyor?
Nmap hedef makinenin  /etc/services dosyasına bakıyor ve hangi portların açık olup olmadığını bize gösteriyor.

=> Peki IP adresine yerine makine adı yazdığımızda nasıl tarama yapıyor olabilir ? Makine adı verdiğimizde önce DNS’den IP adresini buluyor. Bu IP adresine karşılık verdiğimiz makine adı mı geçerli diye kontrol ediyor. (Reverse DNS) Çünkü IP adresi ve makine adı eşleşmiyor olabilir.

=> Tarama sonucu gösterilen bilgilere inanmalı mıyız?
Hayır. Herzaman bize gösterilen bilgiler doğru olmayabilir. Kullanılan servisin imzasını değiştirip de bize o şekilde gösteriliyor olabilir.

Portların Durumları

open : Port açıktır ve portu dinleyen bir uygulama mevcuttur.

closed : Port kapalıdır ama erişilebilir sadece portu dinleyen bir uygulama mevcut değildir.

filtered : Paketlerin karşı tarafa gönderirken filtrelenmesi..(paket filtrelenmesi.) Nmap filtreleme işlemi dolayısıyla port açık mı kapalı mı tespit edemez.

unfiltered : Nmap’ın ulaşabildiği ama açık mı kapalı mı tespit edemediği durumdur.

open | filtered : Açık mı filtrelenmiş mi karar verilemediği durumdur.(Kapalı değil yani.)

closed | filtered : Kapalı mı filtrelenmiş mi karar verilemediği durumdur.

=> Portun açık olması ne demektir ?

  •  O portu dinleyen tek başına çalışan bir uygulama var demektir.

Örneğin 80.portu dinleyen bir uygulama(Apache) var. Apache uygulaması sürekli ayaktadır ve sürekli 80.portu dinler ve cevap verir, isteği işler. Cevap verirse verir, istemezse vermez.

  • Bir süper sürecin var olmasıdır.

Süper süreç üzerine tanımladığımız portların hepsini dinler. Bir istek geldiğinde örneğin 80.porta, bir apache sürecinin ayağa kaldırır ya da 22.porta geldiğinde  ssh’ı süper süreç ayağa kaldırır.

Bu durum bazen sunucu kaynaklarını verimli kullanmak anlamına gelebilir. Bir sürü sürecin ayakta olması demek onların sistem kaynağı tüketmesi anlamına gelir. Fakat çok sık istek alan bir web sunucusunu çalıştırıyorsak, sürekli ayaktaysa bu durum iyi fikir olmaz. (Çok istek alan portta çalışıyorsa.)
=> Port açık olmasada açık gösterilebilir mi?Bütün portları dinle dersek süper sürece o şekilde açık görünebilir. Bu durumda portun gerçekten servis verdiğini göstermez. Bize karşılık veren tek bir betik de dönüyor olabilir.
# nmap -A -T4 [hedef_makine_adi] ( # : root )# nmap -A -T4 [hedef_makine_IP_adresi]  -A : OS(işletim sistemi) ve versiyon bulma, script taraması ve traceroute özelliğini çalıştırır.-T4 : Daha hızlı bir şekilde tarama yapar.

$ nmap -sV [hedef_makine_adi]
$ nmap -sV [hedef_makine_IP_adresi] bu komut kullanılan servislerin versiyon bilgisini gösterir.

PORT    STATE  SERVICE    VERSION 
21/tcp      open           ftp             Pure-FTPd
22/tcp      open           ssh            OpenSSH 5.3(protocol 2.0)
80/tcp      open           http           Apache httpd 2.2.15(CentOS)
3306/tcp  open           https         MySQL(unauthorized)

Hedef Belirtme Seçenekleri

192.168.1.10192.168.1.10/24 : 192.168.1.10 – 192.168.1.255 aralığında bulunan subneti tarar.

192.168.1-2.* : 192.168.1.0 – 192.168.2.255 aralığındaki her şeyi tarar.

192.168.1,2.0-255 : 192.168.1.0 – 192.168.2.255 aralığındaki her şeyi tarar.

*.*.1.5 : 1.0.1.5 – 255.255.1.5 aralığındaki her şeyi tarar.

nmap -sV -iL hosts.txt : Taranılacak olan hostları, hosts.txt dosyasından alır.

nmap -p 443 -iR 10 : HTTPS servisini kullanan rastgele 10 tane hostu bulmak için kullanılır.

nmap -sP –exclude web.xy.com,dns.xy.com,mail.xy.com 192.168.1.0/24 : 192.168.1.0 – 192.168.1.255 subnetinde belirtilen adresler dışındaki her şeyi tarar.

nmap –excludefile tehlike.txt 192.168.0.0/16 : 192.168.0.0 – 192.168.255.255 subnetinde belirtilen dosyadaki adresler dışındaki her şeyi tarar.

Hedef Belirtme Özellikleri

-iL [dosya_ismi] : Hostların veya ağların belirtildiği dosyadan bilgileri alarak tarama yapar.
-iR [host_sayısı] : Rastgele hedef seçer. Host sayısı verilerek kaç hedefin taranılmak istenildiği belirtilir.
–exclude [exclude_file] : Taranılması istenilmeyen hostların veya ağların bir dosya içerisinden alınarak hedefler belirtilir.
#nmap -sP 192.168.2.0/24 : Ayakta olan makineleri gösterir.(Ping Scan) ( # : root )
Daha fazlası için bu sitenin yararlı olacağını düşünüyorum. 🙂

Bu sene aldığım Bilgisayar Ağları dersinde öğrendiğimiz teknolojilerden özet halinde blogumda bahsetmeyi planlıyorum. Umarım herkes için faydalı olur 🙂

Şimdiden iyi Çalışmalar 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir