Wireshark, bir ağ paket ve protokol analiz (sniffer) yazılımdır. Eski adıyla Ethereal olarak bilinir ve bir bilgisayar ağı üzerinde gelen ve giden tüm veri trafiğinin yakalanmasını sağlar. Ağ üzerinde akan trafiği incelemenize olanak sağladığı gibi gelen veya giden trafiğin içeriğinin gözlenmesini de sağlar. Trafik incelemeye yönelik olarak birçok özelliği de barındırmaktadır. Bu sayede Wireshark günümüzde kendi türünün en yaygın kullanılan ve en çok verimli ağ analiz araçlarından bir tanesi olarak bilinir.
Bu makalemizde küçük bir ağ trafiğini analiz etmek için Wireshark kullanacağız. Wireshark kurulumu basit ve hızlıdır. Kurulum sırasında bilgisayarınızda sanal bir ağ kartı oluşturarak tüm trafiğin o ağ kartı üzerinden tünellenmesini sağlar. Bu sayede oluşturduğu sanal ağ kartı üzerinden geçen tüm trafiği kayıt altında tutabilir.
Wireshark’ın Özellikleri
- Windows, OS X, Linux ve Unix platformlarda kullanılabilir.
- Açık kaynak kodlu ve GPL lisanslı bir uygulamadır.
- Gerçek zamanlı analiz, filtreleme ve aramaya avantajı sağlar.
- Ağ üzerinde gerçek zamanlı paket yakalar.
- Birçok çeşit ağ protokolünü destekler.
- TCPdump / WinDump uygulama paketlerini okuyabilir.
- Paketleri detaylı protokol bilgileri ile gösterir.
- Yakalan paketleri farklı formatlarda dışa aktarabilir.
- Grafik arayüzüne sahiptir.
Öncelikle Başlat menüsü üzerinden Wireshark kısayolunu yönetici modunda çalıştırıyoruz. Bu sayede tüm trafiği incelemek için Windows UAC üzerinden yetki almış olacaktır. Aksi takdirde trafiği analiz edemeyecek ve hata verecektir.
Wireshark ilk çalıştırıldığında güncelleme kontrolü yapar ve yeni bir sürüm tespit ederse sizi uyararak sürümü güncellemenizi isteyecektir. Bu adımı geçtikten sonra Wireshark uygulaması aşağıdaki gibi karşımıza gelir.
Bu arayüz içerisinde trafiğini incelemek istediğiniz ağ kartınızı seçtiğiniz zaman Wireshark paketleri size göstermeye başlayacaktır. Yukarıdaki filtre menüsüne filtrelemek istediğimiz trafik türünü yazarak gelen ve giden paketler arasında filtreleme yapabiliriz.
HTTP Trafiğini İncelemek
Filtreleme kutusuna “http” yazdığımızda yukarıda gördüğünüz gibi yalnızca http trafiği arayüz üzerinde akmaya başlayacaktır. Sütunlara göz atacak olursak, No kısmında paket numarası, Time kısmında zamanı, Source kısmında paketin kaynağını, Destination kısmında hedefi, Protocol kısmında protokol türünü, Length kısmında uzunluğunu, Info kısmında ise paket hakkında kısa bilgiyi göstermektedir. Bu filtrelemede http trafiğini inceleyebileceğimiz gibi http2 veya http3 olarak da filtreleme yapabilmekteyiz.
Bir IP Adresinden Gelen HTTP Trafiğini İncelemek
Trafik içerisinde kaynak ip adresine göre trafiği filtreleyebilirsiniz. Belirli bir ip adresini filtreleme kısmına ip.src==10.10.10.1 formatında yazarak filtrelemeyi gerçekleştirebiliriz.
Modemdeki Ağ Trafiğini İzlemek
Bu örnekte modemimizin adresi olan 10.10.10.1 adresinden gelen trafiği filtrelemek için ip.src== komutunu kullanıyoruz. Bu sayede kaynak ip adresi olan 10.10.10.1 için tüm trafiği görebilmekteyiz. Tüm trafik içerisinde yalnızca http trafiğini görebilmemiz için ip.src==10.10.10.1&&http komutunu kullanabiliriz. Bu sayede modemin trafiğini de izlemiş olacağız.
Bir IP Adresine Giden HTTP Trafiğini İncelemek
Yukarıda da görebileceğiniz gibi ip.dst ==10.10.10.104&&http kullanarak filtreleme yapıyoruz. Bu sayede bir ip adresine giden trafiği filtelemiş olacağız. Aynı zamanda &&http ile yalnızca bu ip adresine giden paketlerin http olanlarını görmüş oluyoruz. Biraz önce ip.src kullanırken bu sefer ip.dst kullanarak hedefi belirlemekteyiz. Yukarıdaki görselde de görülebileceği gibi Destination sütununda 10.10.10.104 ip adresini görmekteyiz.
Web Sunucusu HTTP Trafiğini İncelemek
Bir web sunucusuna giden trafiği de Wireshark kullanarak filtreleyebilir ve inceleyebiliriz. tcp.port == 80 komutu ile TCP trafiğinde 80 web portunu filtelemiş olacağız. Yukarıdaki grafikte görebileceğiniz gibi 80 portuna gelen ve giden tüm trafiği filtreliyoruz. Tek bir port yerine birden fazla portu da bu filtelemede görebiliriz. Tek bir port yerine birden fazla porta gelen ve giden trafikleri de görebiliriz. tcp.port == 80 || tcp.port == 443 komutu ile hem 80 hem de 443 portlarını listelemiş olacağız.
Yerel Ağ Trafiğini İncelemek
Bu filtreleme mantığı ile yalnızca yerel ağ trafiğini inceleyebilirsiniz. Bu sayede internetten gelen veya internete giden trafikler gözardı edilecektir. Yalnızca yerel ağımızda oluşan trafiği görerek inceleme yapabiliriz. Bu filtreleme için ip.src==10.10.10.1/24 and ip.dst==10.10.10.1/24 komutunu kullanabiliriz. İlk komutta IP kaynağı olarak yerel ağımızı /24 olarak kapsıyoruz. Sonrasında ve kullanarak hedef ağı belirtiyoruz. Yine hedef ağda /24 kullanarak tüm ip blogunu vermekteyiz.
TCP Paketinin İçeriğini İncelemek
Bir TCP iletişiminin içeriğini incelemek için, Wireshark üzerindeki bir pakete sağ tıklayıp TCP akışını izle menüsünü seçmeniz yererli olacaktır. Bu sayede ileti dizisinin içeriği yeni bir pencere açılır. Bu, web trafiğini inceliyorsak HTTP üstbilgilerini ve işlem sırasında iletilen varsa düz metin kimlik bilgilerini de görebilirsiniz.
WireShark ile Trafiği Kayıt Etmek
Wireshark ile ağ trafiğini farklı kaydet yaparak bir dosyaya PCAPNG veya benzeri birçok formatta kayıt edebilir ve paylaşabilirsiniz. Aynı zamanda dosya menüsünden aç yaparak kayıt edilmiş bir trafiği açarak analiz yapabilirsiniz. Wireshark birçok paket trafiği kayıt formatını destekmeketedir. Bu özelliği sayesinde kullanışlı ve tercih edilen bir yazılımdır.
Wireshark sızma testlerinde sıkça kullanılan bir araçtır. Aynı zamanda ağdaki anormallikleri tespit etmek ve paket içeriklerini kontrol etmek için kullanılan en popüler yazılımlardan biridir.
Wireshark Linux, macOS, BSD, Solaris ve diğer bazı Unix benzeri işletim sistemlerinde çalışabildiği gibi Microsoft Windows işletim sistemi için de bir sürümü bulunmaktadır. TShark adlı bir terminal tabanlı (GUI olmayan) sürümlerini de kulllanabilirsiniz. Wireshark GNU Genel Kamu Lisansı koşulları altında yayınlanan ücretsiz bir araçtır.