Port Tarama Trafik/Paket Analizi

layef

Üye
28 Mar 2020
135
46
nowhere
Port Nedir?

Aslında port iki kola ayrılıyor. Fiziksel port ve sanal port olmak üzere. Ama bizi ilgilendiren ve açıklayacağımız konudaki port çeşiti sanal port. Sanal port ağ ve internet üzerinde veya bir yazılım vasıtasıyla yönlendirilen mantıksal bağlantı noktalarıdır. Genel manada internet aleminde kullanılan portlar sanal port olarak adlandırılır.

Sanal portlara örnek verecek olursak
  • 21-ftp
  • 22-ssh
  • 23-telnet
  • 25-SMTP
  • 53-DNS
  • 161-SNMP
  • 443-https
  • 445-SMB
  • 3306-MySQL
  • 8080-HTTP-Proxy

Port Taraması Nedir?

Hedef üzerinde bulunan portların çeşitli yardımcı araçlarla listelenmesi, açık portların üzerinden geçen bağlantıların dinlenmesi, hangi servisler üzerinde çalıştığının tespitinin detaylı bir şekilde incelenmesi vs. Port Tarama işlemi olarak adlandırıyoruz.

Bilişim sistemleri bilindiği üzere birbirleriyle iletişimi sağlamak için kullandıkları bağlantı noktalarını port olarak tanımlamıştık. Yapılan işe göre protokoller, protokollere göre de portlar değişmekteydi. Nmap port tarama işlemi yapılırken, ağ tarama ve zafiyet tespiti için kullanılan en ünlü açık kaynak araçlarından biridir. Port tarama işlemlerinde sıklıkla nmap aracını kullanacağız. Nmap, TCP ve UDP protokolleriyle çalışmaktadır. Bu protokoller için bir bağlantı işlemi 4 nesne tarafından gerçekleştirilir.

  • kaynak IP, hedef IP, kaynak port ve hedef port adresidir.

İlk olarak TCP portlarının taranmasına bakalım. TCP protokolü Three Way Handshake yöntemini kullanarak bağlantı kuran bir protokol. UDP protokolüne göre daha yavaştır bunun temel sebebi ise verinin kontrolünü sağlaması yani karşıya ulaşıp ulaşmadığını kontrol etmesidir.

Three Way Handshake(üçlü el sıkışma) Nedir?

İstemci-sunucu arasında veri akışını sağlar. Bu protokolün temel amacı TCP/IP paketlerini doğru sırayla hedefe götürmektir.

Özet olarak istemci tarafından bir bağlantı isteği(SYN) gider , İstemcinin gönderdiği paketi alan sunucu, tekrardan istemciye SYN ve ACK gönderir. Son adım olarakta istemci sunucuya ACK gönderip Three Way Handshake'i sonlandırır.


TCP iletim bayrakları nelerdir kısaca hatırlayalım

  • SYN : Yeni bir sequence numarası ile bağlantı isteği başlatan bayraktır.

    [*]ACK : Acknowledge bayrağı veri aktarım isteğinin onaylandığını ve sonraki adımda beklenen sequence number bilgisini belirler.

    [*]PSH : Sistem bağlantı isteğini kabul ettiğini ve tampomlanan bilginin gönderilmesini belirten bayraktır.

    [*]URG : Bayrağı taşıyan paketin mümkün olduğunda hızlı iletilmesini belirten bayraktır.

    [*]FIN : Daha fazla bilgi gönderilemeyeceğini bağlantının sonlandırılması gerektiğini belirten bayraktır.

    [*]RST : Bağlantıyı resetleyen bayraktır.

Şimdi gerekli argümanları öğrendiğimize göre port tarama analizine başlayabiliriz. Çeşitli port tarama yöntemleri mevcut bunlardan birini veya birkaçını göstereceğim..

İlk olarak TCP port tarama yöntemlerinden TCP SYN(Stealth) Scan ile başlayalım.

Hedef sistem olarak ****sploitable 2, ana makine olarak Kali Linux 2020.4 ve aracımız ise Nmap



Öncelikle nmap -sS <hedef> ile taramamızı gerçekleştiriyoruz.

SYN(Stealth) Scan nmap'te varsayılan olarak yapılan, oldukça hızlı bir port tarama tekniğidir. SYN(Stealth) Scan aynı zamanda half-open Scan olarakta bilinmektedir.
Böyle denilmesinin temel sebebi üçlü el sıkışmayı tamamlamamış olmasıdır. Böylece hedef sistemede oturum açılmaz, log kayıtı tutulmaz ve sistemde herhangi bir kayıt tutulmasının önüne geçer.

TCP SYN(Stealth) Scan'da portların durumu(state) için dönecek cevaplar şunlardır:
-open, closed ve filtered.

Bu arada Port durumlarına bakacak olursak

  • open : Portun açıktır ve bulunan portu dinleyen bir uygulama mevcuttur.
    [*]closed :portun kapalıdır fakat erişilebilir. Portu dinleyen herhangi bir uygulama yoktur.
    [*]filtered : Portun durumu belli değildir. Filtreleme, problarının porta ulaşmasını engellemektedir. Açık veya kapalı olduğunu bilemeyiz.
    [*]unfiltered: Ack scan için dönen bu durumda portlar erişilebilir ama açık olduğu tespit edilemez.
    [*]open|filtered: Nmap portların açık veya filtreli olduğuna karar veremez.
    [*]closed|filtered: Nmap portların kapalı veya filtreli olduğuna karar veremez


6 farklı sonuç alma ihtimalimiz var.




Kapalı portlar üzerindeki işlemler şu şekilde gerçekleşir. Hedefe SYN paketi gönderilir. SYN paketine karşılık RST/ACK geliyorsa portun closed olduğu anlaşılır ve sonraki porta geçilip tarama işlemi devam eder. Eğer SYN paketlerine cevap gelmezse filtered olarak kabul edilir.

Wireshark üzerinden bir inceleme yapacak olursak..



192.168.91.131 ip adresinden 192.168.91.133 ip adresine 443(https) portundan bir SYN paketi gönderiliyor. Hedeften ne döndüğünü incelicek olursak sağ tıklayıp follow >> tcp stream diyerek bu adreslere ait paketleri görebiliriz.



SYN gönderdiğimiz hedeften görüldüğü gibi RST/ACK yanıtı gelmiş. Bu closed olduğuna veya firewall tarafından korunduğu anlamına gelebilir.



Açık portlar üzerindeki işlemler ise şu şekilde gerçekleşir. Hedefe SYN paketi gönderilir. SYN paketine karşılık olarak hedef SYN/ACK gönderir. Burada portun open olduğunu anlarız. Normal şartlarda üçlü el sıkışmayı tamamlamak için ACK paketi göndermemiz gerekirken biz RST gönderip bağlantıyı sonlandırabiliriz. Buradaki temel amacımız herhangi bir güvenlik önlemine yakalanmamaktır.

wireshark üzerinden açık olan bir port üzerinden inceleme yapalım..

Öncelikle açık portları görebilmek için SYN ve ACK değerleri 1 olan paketleri filtreleyebiliriz.

Bunun için tcp.flags.syn == 1 and tcp.flags.ack == 1 ifadesini kullanabiliriz.

Bilindiği üzere Wireshark’da and/or koşul ifadeleri kullanılarak filtrelemeler yapılabiliyor.



Açık portları gördüğümüze göre örnek bir paketin streamine bakalım..



Görüldüğü üzere SYN/ACK geldiğinde saldırgan hemen RST ile bitirmiş çünkü istediği bilgiyi elde etti.

Esasen burdaki kilit nokta ilk SYN paketine gelen cevaptır.

Ayrıca Win,Len,MSS değerleri hep aynı yani bu otomatize bir araç tarafından yapıldığı aşikar çünkü normal bir işleyişte bu değerlerde aksaklık olabilir ve ayrıca taranan portların arka arkaya taranması, tüm portların hemen hemen taranması da bir saldırı analizi olduğunu gösterir.



Görüldüğü gibi RST ve ACK değeri 1 olan çok fazla(2023) port taranmış..

Bir de UDP port taraması analizi yapalım..

Öncelikle UDP(User Datagram Protocol) TCP’ye göre hızlıdır fakat güvenli değildir. Veri ismine datagram denilir. UDP port tarayıcıları protokol olarak TCP yerine UDP kullanır. Tarama yapılırken mutlaka UDP port taraması da yapılmalıdır. Popüler servislerin çoğu TCP üzerinde çalışsa bile DNS, SNMP ve DHCP gibi önemli servisler UDP'yi kullanır. UDP taraması, TCP'ye göre yavaş ve zor bir yöntemdir.
UDP paket gönderebilir ancak durumu hakkında bilgi edinemez. TCP'den ayrılan en büyük yönü de zaten budur.Burada devreye ICMP protokolü girer.

Boş bir porta gönderilen UDP paketi, ICMP port unreachable,

Closed bir porta gönderilen UDP paketi ICMP error, yanıtını döndürecektir.

Eğer herhangi bir yanıt döndürmezse port open demektir fakat UDP protokolünde paketin hedefe ulaşacağı garantisi verilemez.

UDP scannerlar kaybolan paketleri de open veya filtered olarak tanımlayabilirler.



Öncelikle nmap -sV -sU -p 53,161 <hedef> ile taramamızı gerçekleştiriyoruz.

Detaylıca inceleyecek olursak UDP taraması için -sU parametresi kullandık. Ayrıca servislerin sürüm bilgisini elde etmek için de –sV parametresini kullanıdık. -p ile incelenecek portları seçtik 53-DNS (Domain Name System) ve 161-SNMP (Simple Network Management Protocol).

161. porta gönderilen UDP paketi ICMP error yanıtını döndürdüğü için port closed olarak tanımlandı.

53. porta gönderilen UDP paketi ise herhangi bir yanıt almadığı için open olarak tanımlandı. Burada verinin hedefe ulaşmamış olma ihtimalini de unutmayalım..


wireshark ile basitçe UDP paketi analizi yapacak olursak..

Öncelikle UDP yazarak filtreleme yaptık ve paketin üzerine sağ tıklayıp follow >> UDP Stream dedik.



192.168.91.131 ip adresinden 192.168.91.133 ip adresine 161(SNMP) portuna UDP paketi gönderiliyor. Daha sonra 192.168.91.133 adresinden cevap olarak ICMP alınıyor.

UDP Başlığı(UDP Header) basit ve sadece 8 bytes'dan oluşur.

İçeriğinde 4 unsur vardır, bunlar:

  • Source Port(2 bytes) yani paketin kaynak bağlantı numarası,
  • Destination port(2 bytes) hedef bağlantı noktası numarası,
  • Length(2 bytes) UDP Data + UDP Header,
  • Checksum(2 bytes) Sağlama toplamı, hataları tespit etmek için.

Görüldüğü üzere paketimizin kaynak bağlantı noktası 37640, hedef bağlantı noktamız 161, paket boyutu 60 bytes + başlık boyutu yani 8 bytes toplam 68 bytes'dır.

Basitçe bir UDP paket analizi bu şekildedir..
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.