DERİNLEMESİNE NMAP VE GİZLENME - SİBER GÜVENLİK EĞİTİMİ

NELER VAR

2 Aralık 2019 Pazartesi

DERİNLEMESİNE NMAP VE GİZLENME




Sızma testlerinde ve uygulamalarında en çok kullanılan araçlardan birisi de NMAP'tir. Elbette çoğumuz NMAP'i duyup, kullanmışızdır. Aslında bu alan ile ilgili olan herkesin yolu NMAP'ten geçmeli. NMAP'i kullanıyoruz evet ama peki ya çalışma mantığını biliyor muyuz? Bence, bir konuyu iyice öğrenebilmek için mantığını kavramamız gerekiyor. Genellikle nmap'i kullandığımız zaman sadece ihtiyacımız olan parametreleri alıp kopyalıyoruz. Peki arka planda neler oluyor? 
NMAP Çalışma Mantığı
Nmap, bilgisayarların ve ağdaki cihazların açık portlarının belirlenmesi, çalışan servislerin taranması ve ortaya çıkarılması için yazılmış bir araçtır. Çalışma mantığı kabaca TCP, UDP, ARP ve ICMP'ye dayanır. Genel olarak Nmap'in kullanım şekli TCP protokol bazlıdır. Nmap TCP sorgularını 3-Way Handshake(3'lü el sıkışma) ile gerçekleştirir. Nmap, hedefe sorgular gönderir eğer o gönderdiği pakete 'syn+ack' cevabını alıyorsa port açıktır diyebiliriz. Aslında senaryo şu şekilde gerçekleşiyor: 
-Merhaba ben Nmap  --> SYN 
+Merhaba ben hedef. --> SYN+ACK
-Tanıştığıma memnun oldum. --> ACK 

ARP Sorgusu 
ARP protokolünden daha önceki makalelerimde de bahsetmiştim. Kısa bir özet geçecek olursak adres çözümleme protokolü olarak geçer. IP adresi bilinen bir cihazın MAC adresini öğrenmek için kullanılır. Örnek vermek gerekirse üniversitede bir derslikte Sergen diye bir öğrenci bulunmakta ve siz Sergen'in konumunu bilmiyorsunuz. Siz bu durumda sınıfa gidip 'Sergen kim?' diye bağırırsınız. Sınıfta Sergen isimli kişi de size cevap vererek konumunu ve kim olduğunu belirtmiş olur. Tabii burada ARP Spoofing olabilir, sınıfta başka birisi de ben Sergen'im diyebilir. Bu da bir zafiyettir. Nmap, ARP sorgusundan bu şekilde yararlanır. 

UDP Sorgusu 
TCP'ye göre çok daha hızlıdır fakat daha güvensizdir. Port açıkken veri gönderirsek her zaman cevap alamayabiliriz. Port kapalıyken veri gönderirsek ICMP ile port kapalı mesajı yollanır. Burada dönen cevap 'host unreachable' olacaktır. UDP'ye veri yolladığımızda cevap alamıyorsak arada bir firewall olabilir. 

NMAP'te tarama yaptığımızda dönen bazı cevapların anlamları şu şekildedir: 

  • Open: Portun erişebilir olduğu ve portun TCP, UDP bağlantısını kabul ettiğini gösterir. 
  • Closed: Portun erişebilir olduğu ancak üzerine işlem yapılmadığı bilgisini gösterir. 
  • Filtered: Bir paket filtreleme mekanizması ya da Firewall tarafından engellenildiğini gösterir. 
  • Unfiltered: Portlara erişilebilir ama portun açık mı kapalı mı gibi durumlar bilinmemektedir. Aslında burada SYN, SYN+ACK, ACK ayaklarının ACK işlemini,yani geriye cevap dönüyor mu sorusunu cevaplar. 
  • Open | Filtered: Portlar açık mı veya filtrelenmiş mi karar veremediği anlarda bu cevap gönderilir. 
NMAP'in Bazı Parametreleri
Nmap ile kullanılan ağa bağlı herhangi bir makinenin, işletim sistemi, fiziksel aygıt tipleri, çalışma süresi, yazılım bilgileri, güvenlik duvarı ve ağ kartıyla ilgili bilgileri öğrenebilirsiniz. Nmap'i Linux, Windows, MacOS gibi ortamlarda da kullanabilirsiniz. Nmap tarama örneklerini Kali Linux üzerinden göstereceğim. Nmap'i arayüz ekranından da kullanabilirsiniz. Bu tool'un adı ZenMap'tir. 
Taramaya başlamadan önce ilk yapılacak iş hedef belirlemektir. Nmap'te tek bir hedef taramak zorunda değiliz. Örneğin 192.168.20.69-85 şeklinde bir aralık belirtebilir ya da 192.168.1.0/24 ağını tarayabiliriz. 
*Nmap default olarak en çok kullanılan ilk 1024 portu tarar.
Nmap'in kendine has kullanımı vardır. 
"nmap [tarama yöntemi] [diğer opsiyonlar] [hedef veya hedefler]"
  • Birden fazla ip adresi ya da ip subnetini taramak için;
  • Resim-1
    • nmap 192.168.1.1,2,3
    • nmap 192.168.1.1-20
  • İşletim sistemi ve kullandığı versiyonu bulma; -A, -v
Resim-2
    • nmap -v -A 192.168.1.44 --> Burada hem versiyonu hem de işletim sistemini görebiliriz.
  • Bir host ya da network'ün firewall tarafından korunup korunmadığını öğrenme; -sA
  • Resim-3
    • nmap -sA www.siberguvenligi.blogspot.com olarakta host taraması yapabiliriz. 
  • Spesifik port taraması; -    
Resim-4
    • nmap -p 80,443 192.168.1.1 --> 80 ve 443 portunu tarar. 
  • Bu işlemlerin içine bir tarama hızı veya tarama agresifliği ekleyebiliriz. 
    • -T0: En yavaş tarama tipidir. IDS'lerden kaçınmak için kullanılır.
    • -T1: Bu da gayet yavaş yöntemdir. Bu da IDS'lerden kaçınmak için kullanılır. 
    • -T2: Normal taramaya göre 10 kere daha yavaş tarar. Daha az hat genişliği kullanır. 
    • -T3: Standart tarama tipidir. Dinamik bir zamanlama modeli kullanır. 
    • -T4: Agresif tarama tipidir. Tespit etme olasılığınız artar. 
    • -T5: En hızlı tarama yöntemidir. Riski biraz daha fazladır. 
  • -sT: Bu parametre hedef cihazda 'syn proxy' varsa ona karşı önlem almamızı sağlar. 
  • -v: Verbose detaylı çıktı verir. 
  • --reason: Bulduğu sonuçları neden o şekilde bulduğunu açıklar. Açıksa neden açık, kapalıysa neden kapalı şeklindedir. 
  • -sU: UDP taraması yapmak için kullanılır. 
  • -sS: Syn taraması yapar. 
  • -sP 192.168.1.1/24: Tüm sistemlere ping atarak yanıt veren sistemlerin açık olup olmadığını denetler. 
Tabi ki tüm nmap'in tüm parametreleri bunlarla sınırlı değildir. Nmap, çok gelişmiş bir tooldur. Öne çıkan bazı komutları ve parametreleri yazmaya çalıştım. Nmap'in daha fazla komutunu kullanmak istiyorsanız 'nmap --help' komutunu terminalde çalışarak diğer komutlara ulaşabilirsiniz. 
Gizlenme Yolları 
NMAP'in bazı dezavantajları da yok değil. Taranacak hedef sistemin ismi girilirse nmap öncelikle dns lookup işlemi yapar. Bu bir nmap fonksiyonu değildir çünkü DNS sorgularının network trafiğinde görülmesinden dolayı tüm işlemler kayıt(log) altına alınır. Yani nmaple normal bir tarama yaptığımızda karşı taraf bu keşif saldırısını anlayabilip, kayıt altına alıyor. Hedef sistem üzerinde keşif yaparken kimse iz bırakmak istemez. Gizlenmek için farklı yöntemler olsa da ip spoofing yani ip sahteleme parametresini kullanarak iz bırakmaktan kaçınıyoruz. 
nmap -D RND:10: Buradaki 10 sayısını istediğiniz gibi değiştirebilirsiniz. Bu sayı gönderilecek sahte ipnin sayısını belirler. Bu komutu girdiğimiz zaman karşı tarafa random iplerden nmap sorgu gönderir, araya da birkaç tane sizin ip adresini de serpiştirir. Karşımızdaki kişi firewall loglarını da tek tek inceleme zahmetine girmeyecektir diye düşünüyorum. 
Dediğim gibi nmap çok geniş kullanımı olan bir araçtır. Daha fazla parametrelere ulaşmak için 'nmap --help' komutunu kullanabilirsiniz. Nmap farklı parametreleri birleştirerek tek bir sorgu haline dönüştürmemize de imkan sağlıyor. Örneğin; 
          "nmap -sS -sV hedefip -sC -p 1-65535 -T4 -D RND:10"
Resim-5
Wireshark'tan source ip kısmına baktığımız zaman farklı ip'lerden sürekli 172.20.10.5 hedefine bir tcp sorgusu gönderildiğini görüyoruz. Aralara da doğru ip'yi de gönderdiğini görüyoruz. Fakat dediğimiz gibi bu logların teker teker incelenmesi çok düşük ihtimaldir.
Bu yazımda nmap'in ne olduğundan, çalışma mantığından, kullanılan bazı parametrelerinden ve gizlenme yönteminden bahsetmeye çalıştım. Umarım yararlı olmuştur. 

Hiç yorum yok:

Yorum Gönder