NMAP (The Network Mapper) Nedir ?

Merhaba arkadaşlar,

Bu makalemizde taramalarda kullandığımız Nmap aracı hakkında bilgiler veriyor olacağım.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. 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.

NMAP Kullanımı ve Parametreleri

Nmap kullanım türüne göre çeşitli parametreleri bünyesinde barındıran oldukça zengin bir içeriğe sahiptir.Bu uygulamanın hangi komutları desteklediğini “nmap –h” komutu ile görebiliriz.

Komut satırına “nmap –h” yazdığımızda bize kullanabileceğimiz komutların bir listesini karşımıza getirmektedir.Buradaki komut sisteminden herhangi biri veya birileri ile sisteminizin information bilgilerinin açıklığını test edebilirsiniz.

Port taramaları yaparken portların durumu hakkında Nmap duruma gore Open,Filtered, Closed gibi terimler kullanır. Bir portun durumu hakkında detay bilgi almak için “Nmap  –reason” parametresi ile çalıstırmak yeterli olacaktır

Nmap, sistemini komut satırından kullanmaya alısmıs UNIX uzmanlarına hitap ettigi gibi komut satırına hiç bulasmadan kullanmak isteyen kullanıcılar için de oldukça basit ve anlasılır bir grafik arabirim sunar. Ve en güzeli de Windows ortamında çalısabilir.Bunun için internet ortamından Zenmap adı altında programı indirebilir ve Windos ortamında kullanabilirsiniz.

Tarama Türleri

Nmap herhangi bir client veya serverı birçok farklı şekilde tarama yeteneğine sahiptir. Nmapin asıl gücü farklı tarama tekniklerinden gelir. Protokol bazlı ( Tcp, Udp vb. ) tarayabileceğiniz gibi, belirli aralıklardaki ipler, subnetler ve üzerlerinde çalışan port ve servisleride taranabilir.

Tarama sonuçlarında ortaya çıkabilecek port durumları aşağıdaki gibidir.

Open : Portlar açık ve aktif olarak TCP veya UDP bağlantısı kabul eder.

Closed : Portlar kapalı ancak erişilebilir. Üzerlerinde dinlenilen aktif bir bağlantı yoktur.

Filtered : Dönen tepkiler bir paket filtreleme mekanizması tarafından engellenir. Nmap portun açık olduğuna karar veremez.

Unfiltered : portlar erişilebilir ancak Nmap portların açık veya kapalı olduğuna karar Pveremez. (Sadece ACK scan için )

Open|filtered : Nmap portların açık veya filtrelenmiş olduğuna karar veremez. (UDP, IP Proto, FIN, Null, Xmas Scan için )

Closed|filtered : Nmap portların kapalı yada filtreli olduğuna karar veremez. ( Sadece Idle Scan için )

-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 IPS/IDS tarafından loglanıyor olmasıdır.

Resimde görüldüğü üzere “nmap –sT veamguru.com” yazarak taramayı gerçekleştiriyoruz.Tabiki burda iz bıraktığımızdan ötürü google.com güvenlik katmanları tarafından raporlanmaya tabi oluyoruz.Default olarak 1000 port taraması yapar ama bunu değiştirmek isterseniz ilgili parametreleri değiştirerek kullanabilirsiniz.

-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.

Resimde görüldüğü gibi –St ile –Ss arasındaki fark yakalanma ihtimalinin az olmasının yanı sıra bize port bilgilerinide getirmesidir.Bu kısımda default olarak google.com sitesinin 80 ve 443 portlarının açık olduğunu belirtiyor.Peki bu bizim ne işimize yarayabilir ? Öncelikle ilgili site veya sunucu üzerindeki açıkları bu portları izleyerek tarabiliriz.Mesela google.com a 80 portundan telnet başlatalım.

Bu kısımda site üzerindeki IIS versiyonu hakkında bilgi alabilir.Bu IIS sürümünün güncel açıklarını internet üzerinden araştırabilir ve uygulayabiliriz.Bu sadece basit bir örnek olması açısından anlattım.Size yayınladığınız siteler üzerinde bu komutları kullanarak dışarıya verilen bilgileri kontrol edebilirsiniz.

-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 IP’ye 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.

Örnek olarak veeamguru.com örneğini kullanarak aktif hostları –sp parametresi ile tarıyoruz.Dns kayıdını getirdiği gibi aktif olan hostun ne kadar sürede cevap verebildiğinide göstermekte.

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 UDPtaramayı önemsemezler. Önemsemelerini gerektiren sebepler arasında Tftp, NFS, Snmp gibi protokollerin UDP üzerinden çalışması ve Solaris’in RPCBind açığı sayılabilir.

-V Host Scan:Hedef sunucu hakkında çeşitli bilgileri edinebileceğimiz komut türüdür. nmap -v ( Parametresinin host ile ilgili daha detaylı bilgi almak için kullanabilirsiniz).

-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.

Bu kısımda google.com sitesi kullanılarak ACK Flag paketi gönderilerek sistemden geçip geçmediğini kontrol edebiliriz.Bunun yanında sizde sisteminizde bu komutu kullarak firewall üzerinde test yapabilirsiniz.

-PN Firewall ile korunan bir Host’u Tarama:Bu gelişmiş tarama methodunda –PN komutu sizin korunan uygulama veya host üzerine istek gönderir ve açık olan portun olup olmadığını listeler.

Bu kısımda Firewall tarafından korunan eposta sunucusu hakkında –PN komutunu kullanarak ilgili eposta sunucusu hakkında açık olan portları listeyebiliriz.

-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.

Bu kısımda hedef bir site seçtik ve bunun açık olan portları ve genel host bilgilerini elde etmek amacı ile ilgili parametreyi kullandık.Görüldüğü üzere bize çok ciddi güvenlik açığına sebep olucak bilgileri getirmekte.Sizinde eğer yayınladığınız bir Web sitesi veya uygulama varsa buna erişimlerin bu şekilde olup olmadığını komut satırına yazdığımız parametreler ile test edebilirsiniz.

-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.

Hedef sitemizin ip adresini yazarak ICMP Echo ve ICMP Echo Reply paketlerinin engelleneceği düşünülerek bu parametre kullanılmış ve ilgili servislerin durumu bu şekilde iz bırakmadan alınmıştı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.

Yukarıda hedef ip si tespit edilen bir site içerisinde –PT komutu kullanılarak hedef ile ilgili bilgileri hedef sunucudan çekebilmekteyiz.

-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.

Gönderdiğimiz SYN flag’lı paketler ile paketlerin geri dönüşü sonrası hedefin hangi servislerinin aktif halde olduğunu görebiliyoruz.

-PI : Standart ICMP ping taramaları için kullanılır. Hedefe ICMP Echo (type 0) paketi göndererek karşılığında ICMP (type Karizmatik 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.

Görüldüğü gibi hedef sistem üzerindeki işletim sistemi versiyonunu buradan görebilmekteyiz.

-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.

-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.

-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.

Bu kısımda genel olarak tek veya birden fazla parametre ile hedef sistemlerin keşiflerini yaptık biraz daha spesifik olarak detaylı tarama türlerini bir başka makalede değineceğim.

Bir cevap yazın

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

error: Content is protected !!