Ağ güvenliği dünyasında Nmap gibi güçlü araçların etkin bir şekilde kullanılması, ağlardaki potansiyel tehditleri ve güvenlik açıklarını tespit etmede kritik bir rol oynar. Önceki yazımda Nmap’in temel işlevleri ve protokoller üzerinden nasıl çalıştığını anlatmıştım. Bu yazıda ise Nmap’in tarama türleri ve her bir taramanın nasıl kullanıldığına dair bilgi paylaşacağım.
İçindekiler Tablosu
Scaning Türleri
TCP SYN (Stealth) Scan (-sS)
Syn Nmap’te varsayılan olarak kullanılan ve en popüler olan tarama çeşididir. TCP tam olarak gerçekleşemediği için nispeten gizli bir taramadır. Ayrıca open, closed, filtered port durumlarını bulma konusunda güçlüdür. Bu taramayı gerçekleştirmek için Root olmak gerekir.
Port Açıksa:
Nmap SYN paketine karşılık 2. el sıkışmada SYN/ACK paketini aldığında portun açık olduğunu anlar.
3. aşamada sunucuya bağlanmak yerine RST paketi gönderir ve bağlantıyı koparır. Bu aşamada RST paketi gönderilmezse sunucu SYN/ACK paketi göndermeye devam eder.
Port Kapalıysa:
Bu işlem çok daha basittir. İlk adımda yine SYN gönderir. Port kapalı olduğu için karşı bilgisayardan RST paketi gelir. RST paketi portun kapalı olduğunu belirtir ve iletişim sonlanır.
Port Filtreliyse:
Yine ilk adımda SYN paketi gönderilir, ancak hiçbir yanıt gelmez. Yanıt yavaş olabilir bu yüzden nmap biraz bekler. Ardından tekrardan SYN paketi gönderir ve tekrar cevap bekler. Eğer tekrar cevap gelmezse portun filtreli olduğu kanaatine varır ve devam eder. (Aynı zamanda eğer karşı hedef “destination unreachable” uyarısı verirse tekrar SYN göndermeden iletişimi kapatır ve port filtreli der)
SYN Scan Kullanımı
SYN Scan’i Nmap üzerinde belirtmek için -sS parametresi kullanılır.
Örnek Kullanım: “nmap -sS scanme.nmap.org“
Yukarıdaki şekilde görüldüğü üzere scanme.nmap.org adresine yaptığımız SYN taramasında 4 açık ve 1 tane filtreli port bulundu ve geriye kalan 995 portun kapalı olduğunu söyledi.
Wireshark Analizi
Wireshark, ağ trafiğini detaylı bir şekilde analiz etmeye olanak tanıyan açık kaynaklı bir ağ analiz aracıdır. Gerçek zamanlı paket yakalama ve inceleme özellikleri sayesinde, ağ yöneticileri ve güvenlik uzmanları, ağ üzerindeki veri akışını izleyebilir, protokolleri analiz edebilir ve sorunları tespit edebilir.
22. Port Taraması
Öncelikle 22. portu tarayarak Wireshark üzerinden paket gönderimlerini inceleyelim.
(Komutu yazmadan önce Wireshark’ta bir dinleme başlattım ve sonucunu aşağıda göstereceğim.)
nmap -sS -p 22 -Pn scanme.nmap.org
(-p parametresi kaç numaralı portun taranacağını söylemektedir. -Pn dahil ileride daha detaylı anlatılacaktır şimdilik bilmeseniz de olur.)
Yukarıda 22. portun açık olduğunu ve üzerinde ssh çalıştığını gördük. Bir de Wireshark’a bakalım.
Wireshark’ta üsteki yeşil kısma “ip.addr == 45.33.32.156” yazarak scanme.nmap.org un ip adresini giriyoruz ve sadece o ip ile bağlantılı olan paketleri dinliyoruz.
Şekilde görüldüğü üzere bizim ip adresimiz yani 192.168.1.22 ip adresinden 45.33.32.156 ip adresine ilk SYN gönderilmiş ve ardından SYN/ACK paketi alınmış. Nmap burada 22. portun açık olduğunu anlayıp three way handshake’yi gerçekleştirmeden RST paketini gönderip iletişimi koparmıştır.
25. ve 23. Port Taraması
Şimdi ise filtreli olan 25. port üzerine bir tarama gerçekleştirelim.
nmap -sS -p 25 -Pn scanme.nmap.org
Yukarıda gördüğümüz üzere 25. portun filtreli olduğunu ve üzerinde smtp çalıştığını söylemektedir. Birde önceden dinlemesini başlattığımız Wireshark analizine bakalım.
Tekrardan yeşil kısımda ip adresi tanımlamasını yaptıktan sonra paketlere bakıyoruz. Görüldüğü üzere “scanme.nmap.org” adresine bizim ip adresimizden bir SYN paketi gönderdik ve Nmap’in adresinden bizim cihazımıza “ICMP Destination Unreachable” mesajı geldi. Bu mesajdan sonra Nmap taramayı durdurup portun filtreli olduğunu söyledi.
Fakat her zaman işler bu kadar tıkırında yürümeyebiliyor. Bu örnekte iletişimin kesilme sebebi, karşı cihazın Nmap’e ‘destination unreachable’ paketi göndermesi nedeniyle olmuştur. Ancak her zaman karşı cihazdan size geri ping gelmeyebilir. Bu durumda Nmap’in tepkisi şöyledir:
Yukarıda görüldüğü üzere SYN paketine yanıt alamayan Nmap tekrardan SYN paketi göndererek karşı cihazı yoklar ve tekrar cevap alamazsa portun filtreli olduğunu düşünür.
Bu durumu Wireshark’ta inceleyelim.
nmap -sS -p 23 -Pn bbc.com
Yukarıdaki komutta 23. portuna istek atıldığında hiçbir paket göndermediğini bildiğimiz “bbc.com” sitesine bir istek yolluyoruz ve Wireshark’tan bu paketleri takip ediyoruz.
Yukarıda gördüğümüz üzere 23. portun filtreli olduğunu ve üzerinde telnet çalıştırdığını söylemektedir. Wireshark’taki paketlerimizi inceleyelim.
Wireshark’ta görüldüğü üzere karşı hedefe bir SYN paketi gönderilmiştir. Karşılık alamayınca biraz bekleyip tekrardan SYN paketi gönderilmiştir. Bu pakete de cevap gelmeyince Nmap bu portun filtreli olduğunu düşünmüş ve bize öyle bildirmiştir.
65. Port taraması
Son olarak kapalı olan 65. port üzerine bir tarama gerçekleştirelim.
nmap -sS -p 65 -Pn scanme.nmap.org
Yukarıda görüldüğü üzere 65. portun kapalı olduğunu ve üzerinde “tacacs-ds” servisi çalıştığını söylemektedir.
Komutu yazmadan önce başlattığımız Wireshark kaydını inceleyelim.
Kayıtta görüldüğü üzere Nmap hedef cihaza bir SYN paketi yollamıştır ve hedef cihazdan bize RST, ACK paketleri dönmüştür. RST paketini okuyan Nmap bu portun kapalı olduğuna karar getirmiştir.
TCP Connect Scan (-sT)
Eğer SYN Scan gerçekleştirebiliyorsanız SYN Scan gerçekleştirmeniz çok daha makul olacaktır çünkü Nmap’in paketler üstünde kontrolü daha azdır bu yüzden daha az verimli çalışmaktadır. Çalışmak için root yetkisi istemez.
Sistem bu taramada yarı açık bağlantı yapmak yerine tam bağlantı yapar. Bu da hedef makine üzerinde “log” tutulmasına sebep olur. Bu durumu iyi bir IDS (Intrusion Detection System — Saldırı Tespit Sistemi) bu taramayı yakalayacaktır ancak çoğu sistemde böyle bir güvenlik sistemi yoktur.
Port Açıksa:
İlk aşamada Nmap SYN paketi gönderir ve bağlantı ister. Bağlantı isteğine karşılık olarak SYN/ACK paketini alınca ACK paketi göndererek karşı sisteme bağlanır ve ardından RST paketi göndererek bağlantıyı keser.
TCP bağlantıları genellikle FIN ile bitirilirken bu iletişimde RST paketi ile bağlantı hemen sonlandırıldı.
Bu taramada SYN taramasının neredeyse 2 katı kadar paket gönderilir ve TCP taraması ile SYN taramasının sonuçları hemen hemen aynıdır.
Port Kapalıysa:
SYN Scan’deki paket iletiminin aynısı tekrarlanır. RST paketini alan Nmap bu portun kapalı olduğu sonucuna varır.
Filtreli portta SYN paketiyle aynı mantıkta olduğu için TCP’nin filtreli portunu göstermeyeceğim. Değişen bir paket yoktur.
TCP Connect Scan Kullanımı
TCP Connect Scan -sT parametresiyle kullanılır.
Örnek kullanım: nmap -sT scanme.nmap.org
Yukarıda görüldüğü üzere scanme.nmap.org adresi üzerine TCP Connect Scan yaptık ve SYN Scan ile neredeyse aynı sonuçlar elde ettik.
Wireshark Analizi
Şimdi de sadece açık olan 22. portu tarayarak Wireshark’ta paket gönderimlerini inceleyelim.
nmap -sT -p 22 -Pn scanme.nmap.org
Yukarıda 22. porta TCP Connect Scan taraması yaptık ve 22. portun açık olduğunu belirledik. Şimdi, Wireshark üzerinde neler döndüğüne ve hangi paketlerin toplandığına bakalım.
Wireshark’ın topladığı paketlerde görüldüğü üzere bizim adresimizden hedef adrese bir SYN isteği göndeririz.
Bunun karşılığında hedef cihazımız bize SYN/ACK paketi göndererek bizim ona bağlanmamızı istedi.
Ve bizim cihazımız ACK paketi gönderek bağlantıyı tamamladı ve hedef cihaza bağlandı.
Ardından tekrar bizim cihazımız RST paketi göndererek bu bağlantıyı sonlandırır ve portun açık olduğunu öğrenir.
// Filtreli veya Kapalı portta SYN Scan ile aynı sonuçlar çıkacağından incelemesini burda atlıyorum. Filtreli ve Kapalı portların paket alıp verimleri SYN Scan ile tamamen aynıdır. //
UDP Scan(-sU)
TCP en çok kullanılan protokol iken birçok ağ hizmeti hala UDP’yi kullanmaktadır. (DNS-53 * DHCP-161/162 * SNMP-67/68 gibi)
Bir hedefi tararken, hem TCP hem de UDP hizmetlerini kontrol etmek, testler sırasında daha etkili bir yol izlemenizi sağlar.
UDP Nasıl Çalışır?
UDP’de TCP’nin sahip olduğu gibi bayraklar yoktur. UDP taraması bütün hedef portlara UDP paketleri göndererek çalışır. Çoğu bağlantı noktası için boş paketler gönderir ancak daha yaygın bağlantı noktaları için protokole özgü dolu paketler gönderir.
Port Açıksa:
UDP taramasında gönderilen UDP paketine karşı herhangi bir UDP paketi gönderilirse port açık kabul ederiz.
Port Kapalıysa:
Taramayla gönderilen UDP paketine karşılık hedef cihazdan ICMP (Type 3, Code 3) Destination Unreachable veya Port Unreachable cevapları dönerse bu portun kapalı olduğunu anlarız.
Port Açık-Fitreliyse:
UDP taramasında gönderilen UDP paketine karşılık herhangi bir cevap dönmezse, Nmap yeniden bir UDP paketi gönderir. Gönderilen bu pakete tekrar cevap gelmezse bu portu Açık-Filtreli (Open-Filtered) olarak gösteririz.
Port Filtreliyse:
Gönderilen UDP paketlerine karşılık belli başlı hata kodları geliyorsa o hata kodu tanınır ve portun filtreli olduğu söylenir.
Bu tabloda port durumlarının neye göre belirlendiği yazılmıştır. Alınan diğer ICMP unreachable errors (type 3, code 1, 2, 9, 10, or 13) türleri hatalar bu portun filtreli olduğunu belirtir.
UDP Scan’in Kullanımı
UDP Scan’i Nmap üzerinde belirtmek için -sU parametresi kullanılır.
örnek kullanım: nmap -sU scanme.nmap.org
Aşağıdaki fotoğrafta tüm portlara UDP taraması atması çok zor olacağından dolayı sadece 53. porta atıp sonucunu çıkarttım:
Wireshark Analizi
53 Portunun İncelemesi
nmap -sU -Pn -p 53 scanme.namp.org
Yukarıda gördüğümüz üzere Nmap 53. portun kapalı olduğunu ve üzerinde domain çalıştığını söylemekte.
Wireshark ise paketleri şu şekilde toplamıştır:
Analizde görüldüğü üzere bizim cihazdan hedef cihaza bir DNS sorgusu yaptık fakat karşı cihaz bize “Destination Unreachable” hatası verdi. Bu yüzden port kapalı olarak kabul edilmiştir.
123 Portunun İncelenmesi
nmap -sU -p 123 -Pn scanme.nmap.org
Yukarıdaki şekilde gördüğümüz üzere 123 portu açıktır ve üzerinde ntp servisi çalışmaktadır.
Birde açık olan 123 portunun Wireshark ile tutulan paket analizlerini inceleyelim:
Hedefin IP adresine bizim IP adresimizden bir istekte bulunduk. Hedef makine, bize bir paket göndererek hedefin açık olduğunu gösterdi.
Son kısımda hedef port bizim porta bağlanırken “Destination Unreachable” mesajı almış fakat biz zaten cevabımızı çoktan aldığımız için burası önemli değil.
68 Port (Open-Filtered (Açık-Filtreli)) İncelenmesi
nmap -sU -p 68 -Pn scanme.nmap.org
Nmap 68. portu inceledi ve bu portun durumunu open-filtered olarak belirtti. Üzerinde DHCP çalıştığına karar verdi.
Bu taramanın Wireshark üzerindeki paket kayıplarını inceleyelim:
Wireshark’ta da görüldüğü üzere bizim cihazımızdan karşı cihaza istekte bulunduk fakat herhangi bir cevap gelmemiş. Nmap bir süre bekledikten sonra tekrar istekte bulunur, ancak bu isteğe de cevap alamadığı için portun durumunu “open-filtered” olarak belirtir.
Şimdi bazı yaygın olmayan tarama türlerinden kısaca bahsedeceğim.
FIN Scan (-sF)
FIN Taraması yapılırken kaşı cihaza bir FIN paketi göndeririz. Eğer bu pakete karşı cihaz RST/ACK paketi gönderirse karşı cihazın kapalı olduğunu anlarız.
Fakat karşı cihaz gönderilen bu FIN paketine hiç cevap vermezse biz karşıdaki cihazın açık olduğunu anlarız.
FIN Scan’in Kullanımı: nmap -sF scanme.nmap.org
Null Scan(-sN)
Null Scan’de cihazımız hedef cihaza 0 değerinde bir NULL bayrağı gönderir. Bu bayrağa hedef cihazdan bir yanıt gelmezse portun açık olduğunu kabul ederiz.
Eğer gönderdiğimiz NULL bayrağına hedef cihazdan bir RST/ACK paketi gelirse bu cihazın kapalı olduğunu düşünürüz.
Genel yorumlanmasıyla FIN Scan ile neredeyse aynıdır.
NULL Scan’in Kullanımı: nmap -sN scanme.nmap.org
Xmas Scan(-sX)
Xmas Scan’de hedef cihaza aynı anda FIN/PSH/URG paketleri gönderir. Eğer hedef cihaz bu paketlere yanıt vermezse hedef cihazın taranan portunun açık olduğu söylenir.
Ancak hedef cihaz bizim cihazımıza bir RST paketi gönderirse hedef cihaz üzerindeki taranan portun kapalı olduğu sonucuna ulaşırız.
Xmas Scan örnek kullanım: nmap -sX scanme.nmap.org
Bir sonraki yazımızda, Nmap’in gelişmiş parametreleri ve ek özelliklerini keşfedeceğiz, ayrıca firewall atlatma teknikleri ve çıktı alma yöntemlerine değineceğiz.
Eren Gezen
HacktorX YazarıMerhaba, ben Eren. Adli Bilişim Mühendisiliği Öğrencisi 2. sınıfım. Kendimi siber güvenlik alanında geliştiriyorum.