Nmap Nedir ve Nerede Kullanılır?  

Nmap “Network” ve  “Mapper” kelimelerinin kısaltmalarından oluşmaktadır. Ağ haritalayıcı olarak çevirebiliriz. Ücretsiz ve açık kaynak kodlu bir yazılımdır. Ağ keşfi ve güvenlik denetimi yapmak için kullanılan bir yazılımdır. Nmap ağdaki cihazları (bilgisayar, telefon printer vs.), bu cihazlarda hangi hizmetlerin (uygulama adı ve sürümü) kullanıldığı , hangi işletim sistemlerini (ayrıca işletim sistemi sürümlerini) çalıştırdıklarını tespit eder. Yani hedef sistem üzerinde bilgi toplamak için tasarlanan oldukça kullanışlı bir programdır. Nmap ile benzer görevleri gerçekleştiren birçok program bulunmaktadır ancak Nmap bazı özellikleri bakımından daha popüler hale gelmiştir. Bu özellikler;

  • Esnektir: Birçok sistem, network cihazı, servis ve versiyon üzerinde çalışabilmektedir.
  • Güçlüdür: Nmap yüz binlerce bilgisayarı tarayabilecek kadar güçlü bir programdır.
  • Kolaydır: Nmap uzman kullanıcıların deneyebileceği birçok özellik barındırdığı gibi daha kolay taramalar yapmanıza da imkan sağlamaktadır.
  • Ücretsizdir:  Ücretsiz olarak kompleks ve stabil taramalar yapmanıza olanak tanır.
  • Topluluk: Nmap’in geliştirilmesi için çok büyük bir topluluk bulunmaktadır. Yaşayacağınız sorunlarda yardımcı olabilecek bir çok kaynak bulunmaktadır. Ayrıca Bakınız adresinden toplu bir kaynağa ulaşabilirsiniz.
  • Popülerdir: Binlerce kullanıcı Nmap’i kullanmaktadır. Birçok işletim sistemi dağıtımında stabil bir şekilde çalışabilmektedir. (Redhat Linux, Debian Linux, Gentoo, FreeBSD, OpenBSD, vb)

                     Nmap Nasıl Yorumlanmalı?

Eminim ki hemen Nmap’in nasıl kullanıldığını öğrenmek istiyorsunuz ancak öncelikle nmap’in nasıl çalıştığını anlamamız gerekiyor. Nasıl çalıştığını yorumladığımız zaman daha iyi anlaşabileceğini düşünmekteyim. Bu yüzden öncelikli olarak nmap’in getirdiği sonuçları nasıl yorumlamamız gerektiğinden başlamalıyız. Şimdi Nmap’te bulunan port durumlarını imnceleyelim.

                                 Port Durumları ( Port State)

Nmap’te sonuçları doğru yorumlayabilmek için öncelikle port durumlarını iyi anlamak gerekmektedir. Nmap portlar üzerinde ayrıntılı taramalar yapabilmektedir. Nmap’te 6 çeşit port durumu vardır. Port durumları bizlere hedef sistem hakkında bilgi verir. Bazen farklı bir tarama yöntemi kullanmamız konusunda bazen de sistemde kullanılan versiyonlar hakkında fikirler verir.

  1. Open (Açık)
  2. Closed (Kapalı)
  3. Filtered (Filtreli)
  4. Unfiltered (Filtresiz)
  5. Open-Filtered (Açık-Filtreli)
  6. Closed-Filtered (Kapalı-Filtreli)

                                  Open (Açık ) Port

Port bu durumda TCP, UDP SCTP gibi protokollerden gelen bağlantı isteklerini kabul eder. Amacımız hedef üzerinde çalışan açık portları  tespit etmektir. Çünkü açık portlar bizlere çalışan protokolleri uygulamaları ve versiyon bilgilerini vermektedir. Açık portta bulunan bir zafiyet sistemi büyük ölçüde tehdit eder çünkü saldırganlara açık şekilde bilgiler vermektedir. Bu yüzden açık portları filtrelemek için güvenlik cihazları kullanılmaktadır.(Firewall, IDS, proxy vb.)

                                  Closed (Kapalı ) Port

Bu port durumunda port “Açık” portta olduğu gibi ulaşılabilirdir(Güvenlik cihazı tarafından korunmaz) ancak çalışan herhangi bir uygulama yoktur. Hedefin IP adresi, hedefin durumu ve işletim sistemi hakkında bilgi alma konusunda yardımcı olabilmektedir. “Kapalı” port üzerinde bir uygulama çalıştırılırsa yine “Açık” portta olduğu gibi bilgiler verebilmektedir. Yöneticilerin “Açık” ve “Kapalı” güvenlik cihazlarıyla engellemesi mantıklıdır. Engellendikten sonra “FILTERED” olarak görünür.

                                   Filtered ( Filtreli) Port

Bu durumda port güvenlik cihazları tarafından korunduğu için nmap porta ulaşamaz ve  portun “Açık” mı yoksa “Kapalı” mı olduğuna karar veremez. Bu durumda saldırganlar hedef üzerinde sınırlı bilgiye ulaşabilir. Hedef sistem ulaşılamaz olduğunu belirtmek için bazen “destination unreachable” (ICMP error type 3) şeklinde bir ICMP mesajı verebilmektedir. Ancak hata mesajının verilmediği durumlar daha yaygındır. Bu durumda nmap hedef porta ulaşabilmek için tekrar tekrar denemeler yapar (iki kez) ve bu yüzden taramada yavaşlamalar olur.

                                 Unfiltered (Filtresiz) Port

Nmap “Açık” ve “Kapalı” port durumunda olduğu gibi porta ulaşabildiği ancak portun “Açık” mı yoksa “Kapalı” mı olduğuna karar veremediği durumdur. Bu sonuç bize hedef portun herhangi bir güvenlik cihazıyla korunmadığı bilgisini verir. Portun “Açık” mı yoksa “Kapalı” mı olduğuna ulaşabilmek için tarama yöntemini değiştirmek faydalı olacaktır. Bu durumu aşmak için window , syn , fin gibi tarama yöntemleri kullanılabilir. Bu taramalardan ilerleyen kısımlarda bahsedeceğim.

                           Open-Filtered (Açık-Filtreli) Port

Nmap hedef portun açık mı yoksa filtreli mi olduğuna karar veremediği durumlarda böyle bir sonuç vermektedir. Bu durum açık bağlantı noktalarının yanıt vermediği tarama türleri için oluşur. UDP , IP Protocol, FIN, NULL ve XMAS taramaları bu sonucu döndürebilmektedir.

                          Closed-Filtered ( Kapalı- Filtreli) Port

Nmap bu durumda portun kapalı mı yoksa açık mı olduğu konusunda karar veremez. Tarama türünü değiştirmek fayda sağlayabilmektedir. Popüler bir port durumu değildir.

                             TCP ve UDP Nedir?

Ulaşım katmanında (Transport Layer ) çalışan iki önemli protokolden bahsedeceğiz. TCP(Transmission Control Protocol) ve UDP’nin (User Datagram Protocol) en temel görevi veri iletiminden sorumlu olmalarıdır. Ancak TCP ve UDP bazı özellikleriyle birbirlerinden ayrılmaktadır. Şimdi bu özellikleri inceleyelim.

                                     TCP’nin Özellikleri

TCP’nin UDP’den en büyük farkı connection-oriented( Bağlantı temelli) olmasıdır. Yani veri iletiminin gerçekleştirilmesi için öncesinde bir bağlantı olmalıdır. Bu bağlantı adımı Three-way handshake (üç yollu el sıkışma) olarak adlandırılmaktadır. TCP verilerin kayıpsız gönderilmesi esasıyla çalışan güvenli bir protokoldür.

                                     UDP’nin Özellikleri

UDP’de TCP gibi veri iletiminden sorumludur ancak iletim öncesi bağlantı gerçekleştirilmez. Ayrıca gönderilen verilerin hedefe ulaşıp ulaşmadığıyla ilgilenmez. Bu yüzden daha az güvenlidir. UDP’ nin kullanılma sebepleri arasında hızlı olması ön plandadır. TCP’ den daha hızlıdır çünkü veri iletiminden önce bağlantı kurulması gerekmez ve ulaşmayan verilerin yeniden gönderilmesiyle uğraşmaz. Ses ve görüntü aktarımı gibi hız gerektiren gerçek zamanlı veri aktarımlarında UDP kullanılır.

                                     TCP/UDP Farkları

TCP ve UDP’yi kıyaslarken birinin diğerinden daha iyi olduğunu söylemek pek mantıklı olmayacaktır. İhtiyaçlarınıza göre doğru olanı seçmek daha mantıklı olacaktır. Eğer istediğiniz hız ise UDP, güvenlik ise TCP en mantıklısıdır.

                       Three-Way Handshake (Üç Yollu El Sıkışma)

TCP protokolünün connection-oriented (Bağlantı temelli) olduğunu söylemiştik. Veri iletiminden önce bir bağlantı gerçekleşmesi gerekmektedir. Bu bağlantı adımı “Three Way Handshake” olarak adlandırılmaktadır. Three Way Handshake kavramını anladığımız zaman nmap’te yapacağımız tarama çeşitlerini de rahat bir şekilde anlayabileceğiz. Three Way Handshake kavramından öncesinde sizlere TCP FLAG’ten (TCP bayrakları) bahsetmek istiyorum. TCP de  bağlantı gerçekleştirilirken belli bayraklar kullanılır. İki bilgisayar bu bayraklar ile anlaşırlar. Bu bayraklar kimi zaman bağlantıyı başlatırken kimi zaman sonlandırır. Şimdi bu bayrakları inceleyelim.

  • Synchronization (SYN) : İki bilgisayar arasında gerçekleştirilecek olan bağlantıda kullanılan ilk bayrak “SYN” bayrağıdır. İki bilgisayar arasındaki senkronizasyon(sequence number) işlemini gerçekleştirir.
  • Acknowledgement (ACK) : Başarıyla alınan paketleri onaylamak için kullanılan bilgilendirme bayrağıdır.
  • Finish (FIN): Anlaşmalı olarak bağlantının sonlandırılması için kullanılan bayraktır.(Bağlantıyı sonlandırma)
  • Reset (RST): TCP bağlantısında bir sorun olduğunu veya iletişimin olmaması gerektiğini düşündüğünde bağlantıyı sonlandırmak için kullanılır.(Kopma-iptal etme)
  • Urgent (URG): Urgent acil anlamına gelmektedir. Urgent bayrağına sahip bir veri diğer verilerden daha öncelikle olarak uygulama katmanına dahil edilir.
  • Push (PSH) : Paketin hemen gönderilmesi ve işlenmesi için kullanılır.

Yukarıdaki görselde “Three-Way Handshake” nasıl gerçekleşir özetlenmiştir. PC1 PC2 ye bağlantı gerçekleştirmek için öncelikle bir “SYN” bayrağı gönderir. SYN bayrağı içerisinde hangi sıra numarası (sequence number) ile başlatılacağı konusunda bilgi verir. Daha sonra PC2 SYN bayrağının alındığı bilgisini vermek için bir ACK bayrağı, hangi sıra  numarasının (sequence number) kullanılacağına dair bir “SYN” bayrağı gönderir. En son olarak ise PC1 PC2 ye bir ACK bayrağı göndererek bağlantıyı başlatır. Bu olaya three way handshake denir. 4

Nmap’i iyi anlayabilmek için bazı kavramların öğrenilmesi gerektiğini düşünüyorum. Bu yazımızda nmap ile ilgili temel konuları öğrendik. Nmap’in devamı niteliğindeki  yazılarımızda görüşmek üzere..