Siber Uzay'ın Haber Platformu

H4cktimes Youtube Kanalı

Enine Boyuna Wireshark ve Saldırı Analizleri

0

Wireshark Nedir?

Wireshark, 1998 yılında ilk olarak Ethereal adıyla faaliyete başlayan bir projedir .

Ticari marka sorunları nedeniyle Mayıs 2006‘da Wireshark olarak yeniden adlandırılan bu yazılım, bilgisayara ulaşan paketleri yakalamaya ve bu paketlerin içeriğini görüntülemeye imkan tanır. Bir başka deyişle bilgisayara bağlı olan her türlü ağ kartlarındaki (Ethernet, Wifi gibi) tüm TCP/IP mesajlarını analiz eden bir programdır. Amacına yönelik zengin özellikleri ile günümüzde kendi türünün en yaygın kullanılan ve fayda sağlayan araçlarından bir tanesidir. Yaygın olarak temel kullanım amaçları aşağıda listelenmiştir;

•  Şebeke problemlerinde sorun çözme
•  Güvenlik problemlerini sınamak
•  Uygulamaya konan protokollerde oluşan hataları onarmak veya arındırmak
•  Ağ problemlerinin içindeki bilgileri öğrenebilmek amacıyla kullanılmaktadır

Wireshark Özellikleri

• Windows, Unix, OS X, Solaris, FreeBSD, NetBSD ve birçok işletim sistemleri için uygundur.
• Yerel ağ arayüzünden paketleri tutar, ayrıntılı bir şekilde protokol bilgileriyle görüntüler.
• Tutulan bilgileri kaydetme özelliği vardır.
• Çeşitli kriterlerde paket arar ve filtreler.
• Çeşitli istatistikleri yapılan ayarlar doğrultusunda kullanıcıya sunar.
• Birçok protokol için şifre çözme desteği sunar. (IPsec,ISAKMP,Kerberos,SNMPv3, SSL/TLS, WEP, ve WPA/WPA2’yi
içerir)

Wireshark Aracının Kullanım Alanları

• Ağ trafik tespiti
• Veri madenciliği
• Port tarama tespiti
• Denial of Service (DoS) saldırılarının analizi
• Bağlantı sorunu tespiti
• Casus yazılım tespiti

Kurulum

Windows makineler için bu adres kullanılarak indirilebilir ve standart kurulum adımları uygulanarak kurulum işlemi gerçekleştirilebilir. Debian temelli Linux dağıtımları için ise sudo apt-get install wireshark komutu ile gerekli paketlerin edinilmesiyle yükleme işlemi gerçekleştirilebilir.

Wireshark Aracının Açılış Arayüzünü Tanıyalım

1 ) Daha önce açılan dosyalar gösterilmektedir.
2) Ağ trafiğini izlemek amacı ile kullanılabilecek ağ kartları gösterilmektedir
3) Ağ trafiğini izlemek amacı ile kullanılabilecek ağ kartları için paket yakalamaya başladığında çeşitli filtreler tanımladığımız kısımdır.
4) Sık kullanılabilecek işlemlerin kısayol atamalarının bulunduğu yerdir.
5) Ana menünün bulunduğu kısımdır.
6) Ağ trafiği için filtreleme yapabileceğiniz kısımdır.
7) Wireshark hakkında daha fazla bilgi edinmek ve manuel dosyalarına erişmek amacı ile kullanılabilecek bir bölümdür. Bu bölüme 5 numara ile tanımlanan ana menüde Help kısmından erişebilirsiniz.

1 ) Filter Bar:  Yakalanan paketler ile ilgili filtreleme seçeneklerinin bulunduğu kısımdır.
2) Summary Window: Yakalanan paketlerin listelendiği kısımdır.
3 ) Protocol Tree Window: Yakalanan paketlerden birini seçtiğimiz zaman onunla ilgili detayın görüntülendiği kısımdır.
4) Data View Window: Seçilen paket için hexadecimal halini gösterir.
5) Display Information Field: Genel bilgilendirmelerin yer aldığı kısımdır. Bu kısımda;
• Yakalanan toplam paket
• Görüntülenen paket sayısı
• Profil ismi gibi bilgiler yer almaktadır.

Wireshark – Paket Yakalama Diyagramı

Temel Wireshark Kullanımı

Genellike Wireshark yazılımını açtıktan sonra ilk yaptığımız şey trafiğini izleyeceğimiz ağ kartını (interface) seçip başlatmaktadır.

Capture Filter

Normalde hiç bir filtre verilmeden paket yakalama işlemi başlatılırsa ağ kartına gelen her şey kaydedilir. Amacımıza yönelik yakalama işlemi için filtre girmek işimizi kolaylaştıracaktır. Örneğin; sadece TCP paketlerini yakalamak için aşağıdaki gibi filtre girilebilirdi.

 

Promiscuous Mode

Wireshark’ta normalde tüm ağ kartları promiscuous modunda aktif olarak geliyor. Ancak yine de kontrol etmekte fayda var. Normalde ağ kartı işletim sistemine kendisiyle alakalı olmayan paketleri iletmez. Aslında arka planda bir filtreleme gerçekleştirir. Gerçekten o ağ kartına düşen tüm paketleri görmek için bu modun aktif olması önemlidir.  Capture menüsündeki ayarlardan (Capture/options) tüm aktif arayüzlerde bunu aktif edebilirsiniz.

Trafik Arayüzü

Trafiği dinlemeye başladığınızda varsayılan olarak aşağıdaki gibi bir ekranla karşılaşırsınız. Diyelim ki bütün alanları görmek istemiyorsunuz, sadece işinize yarayacak kısımları seçmek için toolbar kısmından sağ tıklayarak veya View kısmından kullanacağınız alanları ayarlayabilirsiniz.

Toolbar

Toolbar‘da sıklıkla kullanacağınız kısa yollar bulunuyor.

  • İlk bölümde, yakalama işlemi için başlatma/durdurma/yeniden başlatma/ayarlar yapabilirsiniz.
  • İkinci bölümde, capture (trafik) dosyasını açma/kaydetme/kapatma yapabilirsiniz.
  • Üçüncü bölümde, packet list bölümünde gördüğünüz paketlere hızlı erişim için gerekli araçları görebilirsiniz. Özellikle analiz işleminde bu kısım çok faydalıdır. Örneğin 22 nolu pakete git diyebilirsiniz. En son pakete ya da ilk pakete git diyebilirsiniz. Ya da capture aktifken her zaman son capture edilen dosyada bulun diyebilirsiniz.
  • Dördüncü bölümde, renklendirme bölümüdür. Bu, ilginizi çekebilecek paketleri vurgulamanızı sağlar. Renklendirme kurallarına buradan ulaşabilirsiniz.
  • Beşinci bölümde, packet list bölümündeki text ifadeleri yakınlaştırma ve uzaklaştırmayla ilgili şeyleri görebilirsiniz.

 

Display Filter
  • Analiz işleminde en sıklıkla kullanılacak bölüm burasıdır bu sebeple bu kısımı ayrı olarak ileride inceleyeceğiz. Bu kısmı capture filter ile karıştırmamak gerekir. Display filter yakalanmış tüm paket içerisinden görüntüleyeceğiniz kısmı size yansıtır. Buraya girilen filtreler packet list’e yansır. Benzer şekilde status bar kısmında da tüm paket içerisinden filtrelenmiş paket sayısını hızlıca görebilirsiniz.

  • Örneğin girilen filtre sonucunda status bar kısmında da 768 paketten 603 tanesi getirilmiştir.
  • Filtre yazmak Wireshark kullanmanın en can alıcı noktası diyebiliriz. Çünkü akan trafikten istediğinizi bulmanızı sağlayan şey filtre girmektir. TCP/IP bildiğinizi düşünürsek (bilmiyorsanız da öncelikle burayı ziyaret edebilirsiniz), örneğin; girdiğimiz tcp.port == 443 filtresi tcp paketleri içerisinde port bilgisi 443 olan paketleri getirir. Eğer girdiğiniz filtre doğru bir filtre ise Wireshark filtre alanını yeşillendirir. Eğer girdiğiniz filtrede bir yanlışlık varsa Wireshark sebebini status bar kısmında belirtir ve filtre alanını kırmızıya boyar.

  • Bir diğer durum ise alanın sarı olmasıdır. Eğer programlama mantığına göre hareket edip != ifadesini kullanıyorsanız Wireshark sizi uyarır. Örneğin; siz 443 portu olmayan paketleri görüntülemek isterseniz;  !tcp.port==443 şeklinde girmelisiniz.
  • Wireshark’da da AND/OR koşul ifadeleri, gruplamalar yapılarak daha gelişmiş filtreler yazılabilir. (“tcp.port==443 and tcp.seq==1) or http” gibi)
  • Paket içerisinde bir anahtar kelime aramak istiyorsanız contains ifadesini kullanabilirsiniz. (frame contains  “google”)

 

Packet List

Capture işlemi başladıktan sonra ilk olarak 1 numaralı paket düşer. Daha sonra düşen tüm paketler sırasıyla numaralandırılarak bu listede gösterilir. Yine varsayılanda ilk paket referans alınarak zaman bilgisi düşülür. Source kısmında ip paketi varsa source (kaynak) ip, destination kısmında ip paketi varsa destination (hedef) ip bilgisi gösterilir. Protokol kısmında ise bağlantıların ilgili protokolleri gösterilir. Length kısmında frame’in boyutu, Info kısmında ise paket ile ilgili detay bilgi yer alır. Eğer ip paketi bulunmuyorsa MAC adres source/destination olarak gösterilir.

Packet Detail

Pakete tıkladığınızda paketin detayları bu bölümde görülür. Parçalara ayrılmış şekilde karşımıza çıkarır alanları.

Wireshark yakaladığı frame hakkında özet bilgiyi Frame kısmında sunar. Bu alan paket içerisinde bulunmaz. Paket içeriği Ethernet yazan bölümle ile birlikte başlar. Frame kısmında Wireshark’ın keşfettiği protokol, packet list’deki renklendirme kuralı, zamansal bilgiler, boyut hakkında bilgi görülebilir.

Dissector Çalışma Mantığı

Dissector’ler, byte’ları decode ederek okunabilir formatlara dönüştürür ve Wireshark bize o şekilde sunar. Wireshark ilk olarak statik olarak port numarasına bakar. Eğer port standart bir port değilse heuristic (sezgisel) motoru belirli patternleri sırasıyla arar. Bulamazsa dissector uygulanmaz data olarak belirtilir. Diyelim ki siz ftp trafiği olduğunu biliyorsunuz, Data kısmına sağ tıklayarak “Decode as” diyerek FTP olduğunu belirtebilirsiniz. Böylelikle dissector’ü manual olarak  çalıştırmış olduk.

 Spesifik Paket Kaydetme Seçenekleri

Capture ettiğiniz paketlerden sadece istediğinizi almak için File/Export Specified Packets menüsünden yararlanabilirsiniz. Örneğin; display filter sonucu ortaya çıkan paketlerden 1-30 arasındaki paketlerden seçtiğimizde sadece 4 tane yeni paketi çıkaracaktır.

Adres Çözümleme Protokolü (ARP) Paket Analizi

Öncelikle ARP Nedir? sorusunu cevaplamakta fayda vardır. Yerel ağ içerisindeki cihazların haberleşebilmeleri cihazların fiziksel adresleri (MAC) ile yapılır. Bu amaçla basit olarak ağ üzerindeki cihazlar birbirlerine paket göndermek için fiziksel adreslerini edinmeleri gerekir ve bu edinim işlemi IP’si bilinen bir cihazın fiziksel adresinin öğrenilmesini sağlayan ARP protokolü ile gerçekleştirilir. MAC (Ethernet, Media Access Control Adresses) adresleri, bir fiziksel adrestir ve yerel ağlardaki cihazların birbirlerine veri paketi göndermeleri için bir ağ adresi olarak kullanılır. 48 bit olan bu adresler her ağ arayüzü için tekildir.

Wireshark ile bilgisayar ağ arayüzü dinlenmiş ve ARP paketleri filtreleme çubuğuna yazılan “arp”  parametresi ile filtrelenmiş ve aşağıda verilen örnek paketler yakalanmıştır.

Yukarıda yakalanan 3 ve 4 numaralı paketler ARP protokolünü anlamak için yeterlidir. 3 numaralı paket bir istek (sorgu) paketi, 4 numaralı paket ise bir cevap paketidir. Detaylı incelenirse, 192.168.18.1 IP adresli cihaz tüm yerel ağa yayın yapacak şekilde 3 numaralı ARP sorgu paketini yollayarak, 192.168.18.35 IP adresine sahip cihazın fiziksel adresini sormaktadır.Bu sorgu paketini alan 192.168.1.35 IP adresli cihaz ARP sorgusunun kendisine geldiğini IP adres eşleşmesinden anlamakta ve içine kendi MAC adresini yazıp ARP cevap paketi hazırlayarak  istekte bulunan cihaza gönderir. Böylece IP adresinden fiziksel adrese dönüşüm işlemi gerçekleştirilmiştir.

Wireshark Filtreleme Komutları

ip.dst==192.168.1.24

  •  192.168.1.24 ip’ye giden paketleri dinler.

ip.addr == 192.168.1.1

  • Bu filtreleme gerek kaynak gerekse hedef ip adresinde 192.168.1.1 olan tüm satırları filtreler.

 ip.src==192.168.1.42

  • 192.168.1.42 nolu ip den giden paketleri dinler

ip.addr==192.168.1.1 && ip.addr==192.168.1.55

  • Bu filtreleme ile iki ip adresi arasındaki konuşmayı filtreleyebilirsiniz.

http or dns

  • Bu filtreleme ile ip kısıtı olmaksızın sadece http ve dns protokelleriyle ilgili stream’leri filtreleyebilirsiniz.

tcp.flags.reset==1

  • Bu filtre ile TCP Reset stream’lerini filtreleyebilirsiniz.

!(arp or icmp or dns)

  • Bu filtre ile tüm stream’lerin arasında aslında ihtiyacımız olmayan ve en çok göreceğimiz ARP, DNS ve ICMP satırlarını filtreleyebilirsiniz. Örneğin; Wireshark’ı RDP ile bağlandığınız bir sunucuda çalıştırdıysanız bu filtreye RDP’yi de ekleyebilirsiniz. Böylece RDP satırlarıda gizlenecektir.

tcp.analysis.retransmission

  • Bu filtre ile TCP ReTransmission stream’lerini görebilirsiniz.

udp contains XY

  • Bu filtre ile UDP paketinin HEX içeriğinde “XY” geçen stream’leri filtreleyebilirsiniz. Buradaki XY değerini ihtiyacınız olan değerler değiştirmeniz gerekmektedir.

http.request

  • Bu filtre ile http GET isteklerini filtreleyebilirsiniz.

 

Wireshark Kullanarak Analiz Edebileceğiniz Bazı Güvenlik Problemleri

Torrent Sorunu

Ağın aşırı yavaşlığından ötürü gelen şikayetler sonrası olaya el atmaya karar verdiniz. Wireshark ile trafiği kontrol etmeye başladınız ve istemcilerden birinin aşırı trafiği ile karşılaştınız. Örnek kayıt dosyası incelendiğinde bu istemcinin birçok makine ile iletişimde olduğu görülüyor. Conversation diyalog penceresini kontrol etmemiz gerekir.

Paketleri ayrı ayrı incelediğimizde 115. pakette görüldüğü üzere sorun Torrent’ten kaynaklandığı anlaşılıyor.

ARP Poisoning Tespiti

ARP zehirlemesi saldırısına örnek olarak şekilde de görüldüğü üzere 10.0.0.14 adresli makinedan ağa arp request paketleri yağmaktadır. Filtre ifadesi olarak arp yazarsak yakalanan paketler arasında arp protokolüne yönelik olanları filtreler ve olası bir saldırı hakkında bilgi sahibi olabiliriz.

Port Tarama Tespiti

Sistemin farklı servislerine kısa zamanda gelen bağlantı istekleri geldiğinde ilk akıllara gelebilecek şeylerden biri port taramasının yapıldığıdır. Wireshark paket özetleri bölümümüzde görüldüğü üzere 10.100.25.14 makinesindan 10.100.18.12 adresli makinenin farklı portlarına gönderilen Syn bayraklı TCP paketleri ilgili servisin çalışıp çalışmadığını yoklayan birinin varlığına işaret ettiğini görüyoruz.

Syn Flood Tespiti

TCP protokolünün tasarım özelliklerinden kaynaklanan bir sorun, Syn flood saldırılarına zemin hazırlamaktadır. Bir Tcp bağlantısı kurulması 3 adımda gerçekleşen ve 3 way handshake adı verilen prosedürle oluşturulmaktadır.Burada bağlantı kurmak isteyen taraf Syn bayrağıyla Tcp paketini ilgili makinenin ilgili servisine yollar. Bağlantı kurulmasında herhangi bir sorun yoksa sunucu taraf, istemciye Syn+Ack bayraklarıyla paket yollar ve bunu alan istemci Ack bayraklı Tcp paketi ile bağlantıyı gerçekleştirir. Burada bir servis kendisine gelen Syn bayraklı paketlere karşılık Syn+Ack yollamak üzere programlandığından kötü niyetli birinin fazlaca Syn bayraklı paketlerle bağlantı isteğinde bulunması sunucunun bir yerden sonra Ayn+Ack paketi gönderemeyecek duruma getirir ve servisin durmasına sebep olur.

Örnek pcap görüntüsündeki Syn flood saldırısında görüldüğü üzere değiştirilmiş ip adreslerinden hedefin 445. portuna deli gibi Syn bayraklı paketler yağdırılmakta.

(ICMP Tabanlı) OS Fingerprinting Tespiti

Bilindiği üzere uzaktan işletim sistemi tespit etme yöntemlerinden biri sistemlerin döndüğü karakteristik Icmp hata mesajlarıdır. Bu sebepten ötürü saldırganlar OS belirlemede hedef sisteme farklı tipte Icmp paketleri yollayıp geri dönen cevapların dönüş süreleri gibi sistemden sisteme değişen ayırt edici özelliklerden faydalanırlar.

Yukarıda görüldüğü üzere saldırgan hedef sistem üzerinde Icmp tabalı işletim sistemi saptama taraması yapıyor. Farklı türlerde gelen Icmp paketleri bizi durumdan haberdar ediyor.

Normal trafiğin dışında herhangi bir şüpheli durumda icmp.type == 13 || icmp.type == 17 || icmp.type == 15 gibi filtrelemelerle Icmp tabanlı sistem belirleme saldırısına maruz kalıp kalmadığımızı anlayabiliriz.

Wireshark’ın filtreleri anlattıklarımızla sınırlı değildir. Wireshark’ta incelemek üzere örnek trafik (pcap) dosyalarına buradan ulaşabilirsiniz.

 

Faydalanılan Kaynaklar

  • https://www.wireshark.org/docs/wsug_html_chunked/
  • https://www.exploit-db.com/docs/turkish/40448-[turkish]-wireshark—important-tips.pdf
  • http://www.enderunix.org/docs/wireshark.pdf

Yorum Bırak

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.