Gönderen Konu: NMAP nedir?  (Okunma sayısı 4840 defa)

Çevrimdışı Hamdi

  • Yazar
  • ***
  • İleti: 297
  • Karma: 0
    • http://www.ihya.biz
NMAP nedir?
« : Mart 29, 2008, 11:45:21 ÖS »
Nmap, sistem yöneticilerinin geniş ağlarını taramasında ve hangi istemci/sunucusunda hangi servislerin çalıştığını
saptamasında kullanabileceği bir araç olarak tasarlandı.

Nmap geniş bir tarama yelpazesini destekler ; UDP, TCP Connect,
TCP SYN (Yarı Açık), FTP Proxy Bounce Atağı, TCP FIN, TCP Xmass Tree, ICMP (Ping Sweep), ACK Sweep, SYN Sweep ve Null Scan bunlara birkaç örnektir. Bahsi geçen port türleriyle ilgili daha ayrıntılı bilgi bu yazının ilerleyen bölümlerinde ve Port Tarama Nedir? yazımızda bulunmaktadır. Nmap ayrıca gelişmiş özelliklere sahip bir araçtır, TCP/IP parmak izleri ile hedefin işletim sistemini saptayabilir, Stealth (Gizli) tarama yapabilir, taramalarında dinamik zamanlamalar kullanılabilir, paralel taramalar yapabilir, ping atarak aktif hostları bulabilir, RPC taraması yapabilir, esnek port ve hedef özelliklerine sahiptir.

Unutulmaması gereken en önemli nokta hedef sistemde açık olan portların nmap’in
standart olarak nitelendirilen ve /etc/services dosyasından aldığı port numarası ve sunucu servis karşılaştırılmaları tablosu
aracılığıyla tespit edilmiş olmasıdır.

Örnek olarak standart kullanımda 21/TCP ftp protokolü için kullanılan bir port olması dolayısıyla bu portu açık bulan nmap servisin ftp olduğunu bildirecektir, ancak o portu dinleyen servis farklı bir servis (örnegin vnc sunucusu) olabilir.

Şimdi neler yapabileceği anlatıldığına göre sıra bunların nasıl yapıldığını anlatmaya geldi.

Tarama Türleri

-sT TCP Connect Scan : En basit anlamda çalışan tarama tekniğidir, hedef porta bağlanmak için SYN paket gönderir,
karşılığında SYN/ACK paketi gelirse ACK paketi göndererek porta bağlanır ve portun açık olduğunu rapor eder, eğer SYN paketine RST cevabı gelirse portun kapalı olduğunu rapor eder. Bu tarama türünde extra paket özelliklerine sahip olmak gerekmediği için root olmayan kullanıcılarda kullanabilir. En kötü özelliği açılan tüm oturumların hedef sistem, Firewall yada IDS tarafından loglanıyor olmasıdır.

-sS TCP SYN Scan : Yarı açık olarakta tanınan SYN tarama oturumu tamamen açmaz, SYN paketinin karşılığında
SYN/ACK paketi geldiğinde portun açık olduğunu rapor eder ve RST paketi göndererek oturumu kapatır, port kapalı ise hedef zaten direk RST cevabı gönderir. Bu yöntemi uygulayabilmek için root olmak gerekmektedir. IDS ve Firewall’lara yakalanma ihtimali ve loglanma ihtimali azdır.

-sF, -sX, -sN : Bu tarama yöntemleri ise sırayla gizli FIN , Xmass Tree ve Null Scan’dir. IDS ve Firewall’ların SYN taramaları loglayabileceğini düşünerek kullanılan yöntemlerdir. FIN, Xmass Tree ve Null scan paketlerinin gönderilmesi durumunda hedefin RFC 793’te açıklandığı gibi kapalı olan tüm portlar için RST cevabı göndermesi mantığına dayanır. Bu
yöntem IPeye ve NmapNT ile windows platformunda da uygulanabilmektedir. Ayrıca bu tarama yöntemleri açık port buluyorsa (FIN taramada Windows sistemlerindeki tüm portlar açık olarak görünmektedir, çünkü Windows tabanlı sistemler bir oturuma ait olmayan FIN paketleri ile karşılaşıyorsa tümünü göz ardı ederler ve göz ardı edilen paketler standart olarak portun açık olduğu anlamına gelir.) hedefin sistemi Windows tabanlı değildir. Eğer SYN scan açık port
buluyor ve bu tarama yöntemleri bulamıyor ise hedef Windows tabanlı bir sisteme sahip demektir. Nmap’in İşletim sistemi saptama özelliklerine bu durum dahildir. Windows’la aynı tepkiyi veren bazı sistemler ise Cisco, BSDI, HP/UX, MVS ve IRIX’ tir.

-sP Ping Sweep : Taranılan ağda hangi hostların aktif olduğuna ihtiyaç olduğunda kullanılan genel yöntem ICMP Echo
paketleri gönderip cevap beklemektir, son zamanlarda bu ping isteklerinin Firewall’lar tarafından bloke edildiği düşünüldüğünde alternatif çözümler geliştirilmelidir. Bu durumda nmap TCP ACK paketi gönderiyor (standart olarak 80.
porttan - değiştirilebilir), eğer porttan RST cevabı geliyorsa sistemin aktif olduğu rapor ediliyor. Diğer alternatif teknikte bir SYN paket gönderip hedeften SYN/ACK yada RST cevabı beklemektir, her iki cevapta sistemin aktif oldugunu gösterir. Root olmayan kulanıcılar için ise standart TCP Connect yöntemi kullanılır. Standart olarak ICMP ve ACK teknikleri paralel olarak uygulanır. Eğer bunun değiştirilmesi istenirse -P* parametreleri kullanılarak bu yöntemler değiştirilebilir. Ayrıca bu pingleme işlemi tamamlandığında sadece aktif sistemler taranır, bu seçenek ping taraması kullanmadan port taramaya geçmek isteniyorsa kullanılabilir.

-sU UDP Scan : Bu teknik hedef bilgisayarın UDP portlarından hangilerinin açık olduğunu saptamak için kullanılır.
(RFC 768) Hedef makinede açık olduğu düşünülen porta 0 byte’lik bir UDP paket göndermek ve "ICMP Port Unreachable" paketini beklemek temeline dayanır. Paket gelirse port kapalı gelmezse açık olduğuna karar verilir. Bazı insanlar UDP
taramayı önemsemezler. Önemsemelerini gerektiren sebepler arasında Tftp, NFS, Snmp gibi protokollerin UDP üzerinden çalışması ve Solaris’in RPCBind açığı sayılabilir.

-sA ACK Scan : ACK tarama yöntemi Firewall`ların ACL`lerini bypass ederek tarama yapılmasını sağlar. Bazı Firewall`lar stateful yada basit paket filtreleme Firewall`ları olabilir, dışarıdan gelen SYN paketlerini bloke edebilir ancak ACK flag’lı paketin geçişine izin veriyor olabilir. Rastgele üretilmiş ack/sequence numaralarıyla yapılır. Cevap gelmezse yada ICMP port unreachable mesajı geliyorsa port filtrelenen bir porttur. Nmap genellikle portlar için unfiltered nitelemesi yapmaz. Bu taramada bulunan portları asla açıkca `open` olarak nitelendirmez.

-sW Window Scan : Bu gelişmis tarama türü ACK tarama türüne çok benzer, portların açık olup olmadığını taraması dışında bu portları filtered/unfiltered olarak nitelendirir ve çerçeve boyutundaki farklılıklardan hedefin işletim sistemini saptar. Aralarında AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX ve VxWorks gibi işletim sistemlerininde bulunduğu işletim sistemlerinin bazı versiyonları bu durumdan etkilenir. Tam listeye ulaşabilmek için Nmap-Hackers posta listesinin arşivlerine bakılabilir.

-sR RPC Scan : RPC taramaları için diğer tarama türleriyle beraber kullanılır. Bütün TCP/UDP portları tarayarak açık bulduğu portlarda SunRPC`nin "NULL" komutlarını kullanarak rpc portlarını saptamaya çalışır, eğer rpc portu bulursa çalışan program ve sürümlerini saptamaya çalışır. Böylece Firewall yada diğer paket filtreleme cihazları hakkında bazı işe yarar bilgiler saptamaya çalışır. Decoy özelliği şu an için RPC taramalarda kullanılamıyor ancak bazı UDP RPC taramalarında bu özellik nmap`e eklenmiştir.

-b (ftp relay host) : Ftp protokolunun ilginç bir özelliği proxy için destek vermesidir (RFC 959). Bunun için öncelikle
hedefin ftp sunucusuna bağlanmak gereklidir, daha sonra internette herhangi bir yerden o sunucuya bir dosya gönderilebilir. RFC nin yazıldığı 1985 yılından günümüze kadar ftp bu özelliğe sahip olabilir. Böylece bir ftp sunucu
üzerinden TCP port tarama yapabilme imkanıda kazanılmış olur. Bu seçenek ile bu denemeler uygulanabilir.

Genel Seçenekler

-P0 : Ping atmayı denemeden tüm hostları nmap`e taratmak için kullanılır. Bazı ağlar ICMP Echo ve ICMP Echo Reply paketlerini bloke etmektedir, böyle durumlarda -P0 yada -PT80 kullanılmalıdır. Böylece Firewall`un arkasındaki sistemleri saptama imkanı kazanılmaktadır.

-PT : TCP ping atılarak aktif sistemlerin saptanması için kullanılmaktadır. ICMP Echo paketlerinin engellendiği ağlarda
TCP ACK flag’lı paketler göndererek etkili olmaktadır. Eğer hedef sistemler aktif ise RST flag’lı paketler gönderir ve böylece aktif olduğu anlaşılır. Bu seçeneğin kullanılması için root olunması gereklidir. -PT[port] şeklinde kullanılır ,
varsayılan portu 80`dir. Eğer hedef ağda kullanılan filtreleme cihazı statik paket filtreleme cihazı ise bu paketin erişim kontrol listelerine rağmen içeri girmesi mümkündür.

-PS : SYN flag’lı paketler ile TCP ping taraması için kullanılır. Hedefe SYN flag’lı bir paket gönderilir ve hedeften RST yada SYN/ACK flag’lı paketler beklenir. Eğer bu paketlerden biri gelirse hedefin aktif olduğuna karar verir.

-PI : Standart ICMP ping taramaları için kullanılır. Hedefe ICMP Echo (type 0) paketi göndererek karşılığında ICMP
(type 8) paketi bekler, eğer bu paket gelirse hedefin aktif olduğuna karar verir. Ayrıca bu tarama türüyle broadcast ping’de atılmaktadır ve böylece broadcast ping isteklerine cevap veren bilgisayarlarda saptanmaktadır. Bu durum hedefe denial of
service (servis durdurma) saldırılarından bazılarını test etmek içinde kullanılır. (Smurf , TFN gibi)

-PB : Varsayılan ping taramalarında kullanılacak ping türüdür. 2 yönlü olarak yapılmaktadır. İlki ACK (-PT) flag’lı TCP
paketiyle ikincisi ise ICMP Echo paketleriyle yapılan ping türüdür. Firewall`ların arkasındaki sistemleri belirlemek için ikisinden sadece biri kullanılır.

-O : Bu seçenek aktif durumdaki hedef sistemin TCP/IP parmakizleriyle işletim sistemini saptamak için kullanılır. Taranılan hedefin işletim sistemini tüm taramalardaki farklılıkları birleştirerek saptamaktadır. Bu taramalara işletim sistemlerinin verdikleri cevaplar nmap tarafından bir veritabanında tutulmaktadır ve karşılaştırmalar bu veritabanı üzerinden yapılmaktadır. Bu veritabanında düzenlemeler yaparak bilinen işletim sistemlerinin listeye eklenmesi mümkündür. Eğer nmap tanımadığı bir işletim sistemi olduğunu söylüyorsa ve siz bu işletim sisteminin hangi işletim sistemi olduğu ve versiyonu hakkında bilgiye sahipseniz nmap`in yazarı Fyodor`un fyodor@dhp.com adresine mail yolu ile çıktıları gönderebilirsiniz. Daha ayrıntılı bilgi almak için Nmap’in Anasayfasında bulunan "Remote OS detection via TCP/IP Stack FingerPrinting" isimli dökumana başvurabilirsiniz. Bu dökumanın Egemen Taş tarafından çevrilmiş türkçe sürümüde mevcuttur.

-I : Bu seçenek Ident protokolü ile tarama yapma imkanı sunmaktadır. Dave Goldsmith tarafından 1996 yılında Bugtraq
posta listesine atılan postada Ident protokolunun (RFC 1413) herhangi bir servisi başlatan kullanıcının saptanmasına izin verdiği belirtilmiştir. Örnegin eğer http portu açık ise ve dinleyen servisi başlatan kullanıcının root olduğu saptanıyorsa bu
programdan kaynaklanabilecek olası güvenlik zayıflıkları işletim sistemine root haklarıyla erişimi sağlayabilir. Diğer tarama yöntemleri ile beraber kullanılır ancak hedef bilgisayarda Identd aktif durumda değil ise kullanılabilir durumda
değildir.

-f : Bu seçenek SYN, FIN , XMAS veya Null taramalarda kullanılabilir durumdadır. Teori hedef sistemdeki Firewall ,
diğer paket filtreleme cihazlarının yada saldırı tespit sistemlerinin parçalanmış paketlerden taramayı farkedemeyecekleri temeline dayanmaktadır. Kullanılması tavsiye edilmektedir. Ancak bu teknik hedef sistemlerde gelen parçalar bekletilip bütün parçalar geldikten sonra hedefe gönderiyorsa işe yaramamaktadır. Bu özellik henüz tüm işletim sistemleri üzerinde
çalışmamaktadır ; ancak Linux , FreeBSD ve OpenBSD üzerinde çalışmaktadır. Diğer *nix sistemlerde başarı ile çalıştırılması durumunda yazara bildirilmesi rica edilmektedir.

-v : Verbose seçeneğinin kullanımı tavsiye edilmektedir çünkü taramalar hakkında daha fazla bilgi gösterilmesini
sağlamaktadır. Çıktıları iki kez alma imkanına böylece kavuşulmuş olur, eğer bu çıktılar yetmiyorsa -d seçeneği ile ekrana
tamamen sığamayacak kadar bilgi alınabilir.

-h : Nmap`in sıkça kullanılan bazı parametrelerinin kullanımı konusunda yardımcı bilgiler içerir. Bir nevi hızlı başvuru
klavuzu denilebilir.

-on (Log Dosyası) : Nmap`in ürettiği sonuçları ismi verilen dosyaya yazmasını sağlar.

-oM (Log Dosyası) : Nmap`in ürettigi sonuçlari ismi verilen dosyaya makine okuyabilir şekilde yazmasını sağlar. / | , gibi noktalama işaretleriyle sonuçları ayırır. -v parametresi kullanılarak daha fazla ayrıntı yazdırılması da sağlanabilir.

--resume (Log Dosyası) : CTRL+C ile yarıda kesilen taramaların devam etmesi için kullanılır. Ancak yarıda kesilen tarama -on yada -oM kullanılarak bir log dosyasına kayıt edilmiş olmalı ve bu log dosyası parametre ile verilmelidir. Nmap bu log dosyasındaki başarılı son taramadan itibaren taramaya devam eder.

-iL (Log Dosyası) : Nmap`e taranacak hedeflerin bir dosya aracılığıyla verilmesini sağlar. Bu dosyada hedefler boşluk , sekme yada yeni satırlarla sıralanmış olabilir.

-p (port aralığı) : Bu seçenek ile nmap`in özel port aralıklarını taraması sağlanabilir. Örneğin `-p 23` hedefin 23. portunu
tarayacaktır. `-p 20-30, 139, 60000-` ise 20 ile 30 arasındaki tüm portların 139. portun ve 60000`den büyük tüm portların
taranmasını sağlayacaktır. Varsayılan değeri 1 ile 1024 arasındaki tüm portlar ve /etc/services dosyasında listelenmiş
portların taranmasıdır.

-F Hızlı tarama : Özel bir portun taranması istenmiyorsa , sadece /etc/services dosyasındaki portların taranması
isteniyorsa kullanılabilecek bir seçenektir.

-D [yanıltma1], [yanıltma2], [ME] : Hedefi tararken ait olduğu sistemin IP`sini saklamaya yardımcı olur. Normalde taramalar bir IDS , Firewall yada diğer paket filtreleme cihazlarına kaydedilebilir ve gelen paketler bu sistemden geldiği için IP bilgisi log dosyalarına kaydedilmektedir. Ancak decoy yani yanıltma yada tuzak kullanıldığı durumda bu sistemin IP si ile beraber parametre olarak verilen diğer IP`lerde taramalarda görünecektir ve onlardan da hedefe paket geliyormuş gibi olacaktır. Bu durum bazı paket filtreleme cihazlarının ve port tarama saptayıcılarının yanılmasına veya birden fazla hata vermesine sebep olabilmektedir, böylece söz konusu tarama çok daha az dikkat çekecektir. Yanıltmalar aralarında `,` işareti ile ayrılarak girilmelidir, istenirse parametlere `ME` seçenegi eklenerek bu sistemin IP`sinin de decoylar arasında istenilen bir sırada bulunması sağlanabilir. Bazı port tarama saptayıcılar (Örneğin scanlogd) 6. pozisyon yada sonrasında bu sistemin IP`sini farkedemeyebilir. Eğer `ME` seçeneği yanıltmalar arasında kullanılmazsa nmap sistem IP`sini rastgele bir pozisyona koyacaktır. Dikkat edilmesi gereken bir durumda seçilen yanıltmaların aktif durumda olması yada kazayla hedefe SYN Flood denilen DOS atağının yapılma olasılığıdır. Ayrıca kullanılan yanıltmaların tamamının aktif olmaması durumunda kolayca port taramayı yapan sistem anlaşılacaktır. Yanıltma özelliği ping taramalarında da (ICMP, SYN , ACK yada hangisi olursa) kullanılabilir durumdadır. Yanıltma ayrıca -O seçeneği yani işletim sistemi saptama seçeneği ile beraberde kullanılabilmektedir. Kullanılan yanıltmaların sayısı kadar taramalarda yavaşlayacaktır. Ayrıca bazı ISP`ler spoof yapılmış yani yanıltılmış IP`lerin barındığı paketleri hedefe ulaşmadan önce kendi ağ bölümünden olmadığı için
engelleyebilir.

-S (IP Adresi) : Bazı durumlarda nmap sistemin kaynak IP`sini belirleyemeyecektir, ki bunuda söyleyecektir. Böyle
durumlarda -S seçeneğini kullanılarak kaynak IP`si nmap`e belirtilebilir. Ayrıca bu seçenek ile IP spoofing denilen adres
yanıltmasıda kullanılabilir. Örneğin taramalarda hedefin rakip şirketinin IP`leri kullanılabilir, bu epey yanıltıcı olacaktır.
Ancak bu seçeneğin böyle kullanılması desteklenmemektedir. Çünkü bu durum taramalardan başkalarının sorumlu tutulma
ihtimalini yükseltmektedir. -e seçeneği genellikle bu seçenek kullanılırken gerekli olmaktadır.

-e (arayüz) : Nmap`e taramaları yaparken paketleri hangi ağ arayüzünü kullanarak gönderebileceğinin belirtilmesini
sağlar. Nmap bunu bazı durumlarda belirleyememekte ve bunu söylemektedir.

-g (port numarası) : Taramalarda paketlerin kaynak portlarını isteklere göre belirlemeyi sağlar. Bazı paket filtreleme
cihazları ve Firewall`lar oturumun ilk olarak hangi taraftan başlatıldığını saptayamayabilirler. Genelde statik paket filtreleme cihazlarında karşılaşılan bir durum olmasına rağmen dinamik paket filtreleme cihazlarında da benzer durumlar
geçerlidir. Böylece 20/TCP ftp data ve 53/TCP-UDP gibi portların kaynak port olarak ayarlanması durumunda filtreleme cihazlarının erişim kontrol listelerinin içinden geçerek hedefe ulaşma gibi bir şans sunulur. Genelde saldırganlar
gönderdikleri paketlerde kaynak portları bu şekilde ayarlayarak paketlerini ftp yada dns geri dönüşleriymiş gibi maskeleyebilir ve filtreleme cihazlarını geçme şansı kazanırlar. UDP taramalarında.
emeğini veren düdüğünü çalar