skip to Main Content

Wireshark Nedir? Nasıl Kullanılır?

Önsöz

Wireshark dünyanın en önde gelen ağ protokolü çözümleyicisi, ancak zengin özellik seti yabancılar için göz korkutucu olabilir. Bu belge, Wireshark ekibinin Wireshark’ın kullanılabilirliğini artırma çabasının bir parçasıdır. Yararlı bulmanızı umuyoruz.

Bu belgeyi kimler okumalı?

Bu yazının hedef kitlesi Wireshark kullanan herkes. Bu kitap Wireshark’ın tüm temel ve bazı gelişmiş özelliklerini açıklıyor. Wireshark çok karmaşık bir program haline geldiği için, her özellik bu yazıda açıklanamayabilir. Bu yazı genel olarak ağ algılamayı açıklamak için tasarlanmamıştır ve belirli ağ protokolleri hakkında ayrıntılı bilgi sağlamaz. Bu konularla ilgili birçok yararlı bilgiyi https://gitlab.com/wireshark/wireshark/wikis/’daki Wireshark Wiki’de bulabilirsiniz. Bu yazıyı okuyarak, Wireshark’ın nasıl kurulacağını, grafik kullanıcı arayüzünün temel öğelerinin (menü gibi) nasıl kullanılacağını ve ilk bakışta her zaman açık olmayan bazı gelişmiş özelliklerin arkasında ne olduğunu öğreneceksiniz. Umarım yeni (ve hatta bazen gelişmiş) Wireshark kullanıcıları için sık sık görünen bazı yaygın sorunlar hakkında size rehberlik edecektir.

Bu belge hakkında

Bu kitap ilk olarak Richard Sharpe tarafından Wireshark Fonundan sağlanan fonlarla geliştirilmiştir . Ed Warnicke tarafından güncellendi ve daha yakın zamanda Ulf Lamping tarafından yeniden tasarlandı ve güncellendi .

Orijinal olarak DocBook/XML’de yazılmıştır ve Gerald Combs tarafından AsciiDoc’a dönüştürülmüştür.

Bu belgenin en son kopyası nereden alınır?

Bu belgelerin en son kopyası her zaman https://www.wireshark.org/docs/wsug_html_chunked/ adresinde bulunabilir.

Wireshark nedir?

Wireshark bir ağ paket analizörüdür. Bir ağ paket analizörü, yakalanan paket verilerini mümkün olduğu kadar ayrıntılı olarak sunar.

Bir elektrikçinin bir elektrik kablosunun içinde neler olup bittiğini incelemek için bir voltmetre kullanması gibi, bir ağ paketi analiz cihazını bir ağ kablosu içinde neler olduğunu incelemek için bir ölçüm cihazı olarak düşünebilirsiniz (ama elbette daha yüksek bir seviyede).

Geçmişte, bu tür araçlar ya çok pahalıydı, ya tescilliydi ya da her ikisi birdendi. Ancak Wireshark’ın gelişiyle bu durum değişti. Wireshark ücretsiz olarak mevcuttur, açık kaynak kodludur ve bugün mevcut olan en iyi paket analizörlerinden biridir.

Wireshark Nerelerde Kullanılır?

İnsanların Wireshark kullanmasının bazı nedenleri şunlardır:

  • Ağ yöneticileri, ağ sorunlarını gidermek için bunu kullanır
  • Ağ güvenliği mühendisleri, güvenlik sorunlarını incelemek için kullanır
  • QA mühendisleri bunu ağ uygulamalarını doğrulamak için kullanır
  • Geliştiriciler bunu protokol uygulamalarında hata ayıklamak için kullanır
  • İnsanlar bunu ağ protokolü içindekileri öğrenmek için de kullanır
  • Bizim için en önemlisi VoIP ve SIP Ses iletişim sorunlarının tespit edilmesinde kullanılır.

Wireshark, diğer birçok durumda da yardımcı olabilir.

Wireshark Özellikleri

Aşağıdakiler Wireshark’ın sağladığı birçok özellikten bazılarıdır:

  • İçin kullanılabilir UNIX ve Windows’un .
  • Bir ağ arayüzünden canlı paket verilerini yakalayın .
  • tcpdump/WinDump, Wireshark ve diğer birçok paket yakalama programı ile yakalanan paket verilerini içeren dosyaları açın .
  • Paket verilerinin onaltılı dökümlerini içeren metin dosyalarından paketleri içe aktarın .
  • Paketleri çok ayrıntılı protokol bilgileriyle görüntüleyin .
  • Yakalanan paket verilerini kaydedin .
  • Paketlerin bir kısmını veya tamamını birkaç yakalama dosyası biçiminde dışa aktarın .
  • Paketleri birçok kritere göre filtreleyin .
  • Paketleri birçok kritere göre arayın .
  • Filtrelere göre paket ekranını renklendirin .
  • Çeşitli istatistikler oluşturun .
  • … ve çok daha fazlası!

Ancak, gücünü gerçekten takdir etmek için onu kullanmaya başlamalısınız.

Şekil 1.1, “Wireshark paketleri yakalar ve içeriklerini incelemenizi sağlar.” Wireshark’ın bazı paketleri yakaladığını ve onları incelemenizi beklediğini gösterir.

Şekil 1.1. Wireshark paketleri yakalar ve içeriklerini incelemenizi sağlar.

wireshark ekran görüntüsü

Birçok farklı ağ ortamından canlı yakalama

Wireshark, Ethernet, Kablosuz LAN, Bluetooth, USB ve daha fazlası dahil olmak üzere birçok farklı ağ medya türünden gelen trafiği yakalayabilir. 
Desteklenen belirli ortam türleri, donanımınız ve işletim sisteminiz de dahil olmak üzere çeşitli faktörlerle sınırlandırılabilir. 
Desteklenen ortam türlerine genel bakış 
https://gitlab.com/wireshark/wireshark/wikis/CaptureSetup/NetworkMedia adresinde bulunabilir.

Açık Kaynak Yazılım

Wireshark açık kaynaklı bir yazılım projesidir ve GNU Genel Kamu Lisansı (GPL) altında yayınlanır . Wireshark’ı istediğiniz sayıda bilgisayarda, lisans anahtarları, ücretler vb. endişe duymadan özgürce kullanabilirsiniz. Ayrıca, tüm kaynak kodları GPL altında ücretsiz olarak mevcuttur. Bu nedenle, insanların Wireshark’a eklentiler olarak veya kaynağa yerleşik olarak yeni protokoller eklemesi çok kolaydır ve genellikle yaparlar!

Wireshark ne değildir?

Wireshark’ın sağlamadığı bazı şeyler şunlardır:

  • Wireshark bir saldırı tespit sistemi değildir. Birisi ağınızda yapmasına izin verilmeyen garip şeyler yaptığında sizi uyarmaz. Ancak, garip şeyler olursa, Wireshark gerçekte neler olduğunu anlamanıza yardımcı olabilir.
  • Wireshark ağdaki şeyleri manipüle etmeyecek, sadece ağdaki şeyleri “ölçecek”. Wireshark, ağ üzerinde paket göndermez veya başka aktif şeyler yapmaz (alan adı çözümlemesi dışında, ancak bu devre dışı bırakılabilir).

Sistem Gereksinimleri

Wireshark’ın ihtiyaç duyduğu kaynak miktarı, ortamınıza ve analiz ettiğiniz yakalama dosyasının boyutuna bağlıdır. Aşağıdaki değerler, birkaç yüz MB’den büyük olmayan küçük ve orta boyutlu yakalama dosyaları için uygundur. Daha büyük yakalama dosyaları daha fazla bellek ve disk alanı gerektirir.

Meşgul bir ağ, büyük yakalama dosyaları üretebilir. 100 megabitlik bir ağda bile yakalama, kısa sürede yüzlerce megabayt yakalama verisi üretebilir. Hızlı bir işlemciye ve çok fazla belleğe ve disk alanına sahip bir bilgisayar her zaman iyi bir fikirdir.

Wireshark’ın belleği biterse çökecektir. Ayrıntılar ve geçici çözümler için https://gitlab.com/wireshark/wireshark/wikis/KnownBugs/OutOfMemory adresine bakın .

Wireshark paketleri yakalamak için ayrı bir süreç kullansa da, paket analizi tek iş parçacıklıdır ve çok çekirdekli sistemlerden pek faydalanmaz.

Wireshark, uzatılmış destek ömrü içinde olan tüm Windows sürümlerini desteklemelidir . Yazma sırasında buna Windows 10, 8.1, Server 2019, Server 2016, Server 2012 R2 ve Server 2012 dahildir. Ayrıca aşağıdakileri gerektirir:

  • The Universal C Runtime. This is included with Windows 10 and Windows Server 2019 and is installed automatically on earlier versions if Microsoft Windows Update is enabled. Otherwise you must install KB2999226 or KB3118401.
  • Any modern 64-bit AMD64/x86-64 or 32-bit x86 processor.
  • 500 MB available RAM. Larger capture files require more RAM.
  • 500 MB available disk space. Capture files require additional disk space.
  • Any modern display. 1280 × 1024 or higher resolution is recommended. Wireshark will make use of HiDPI or Retina resolutions if available. Power users will find multiple monitors useful.
  • A supported network card for capturing

Microsoft’un genişletilmiş yaşam döngüsü destek penceresinin dışında kalan eski Windows sürümleri artık desteklenmemektedir. Bu sistemleri desteklemek, bağımlı olduğumuz üçüncü taraf kitaplıkları gibi veya yalnızca Windows’un daha yeni sürümlerinde bulunan, güçlendirilmiş güvenlik veya bellek yönetimi gibi gerekli özellikler gibi kontrolümüz dışındaki koşullar nedeniyle genellikle zor veya imkansızdır.

  • Wireshark 3.2, Windows 7 ve Windows Server 2008 R2’yi resmi olarak destekleyen son sürüm dalıydı.
  • Wireshark 2.2, Windows Vista ve Windows Server 2008 sans R2’yi destekleyen son sürüm dalıydı
  • Wireshark 1.12, Windows Server 2003’ü destekleyen son sürüm dalıydı.
  • Wireshark 1.10, Windows XP’yi resmi olarak destekleyen son sürüm dalıydı.

Daha fazla ayrıntı için Wireshark yayın yaşam döngüsü sayfasına bakın.

Wireshark, macOS 10.12 ve sonraki sürümlerini destekler. Windows’a benzer şekilde, desteklenen macOS sürümleri, üçüncü taraf kitaplıklarına ve Apple’ın gereksinimlerine bağlıdır.

  • Wireshark 2.6, Mac OS X 10.6 ve 10.7 ve OS X 10.8 ila 10.11’i destekleyen son sürüm dalıydı.
  • Wireshark 2.0, 32-bit Intel’de OS X’i destekleyen son sürüm dalıydı.
  • Wireshark 1.8, PowerPC’de Mac OS X’i destekleyen son sürüm dalıydı.

Sistem gereksinimleri, Windows için yukarıda listelenen özelliklerle karşılaştırılabilir olmalıdır.

UNIX, Linux ve BSD

Wireshark, Linux ve çoğu BSD varyantı dahil olmak üzere çoğu UNIX ve UNIX benzeri platformda çalışır. Sistem gereksinimleri, Windows için yukarıda listelenen özelliklerle karşılaştırılabilir olmalıdır.

İkili paketler, aşağıdaki platformlar dahil olmak üzere çoğu Unices ve Linux dağıtımı için mevcuttur:

  • Alp Linux
  • Arch Linux
  • kanonik Ubuntu
  • Debian GNU/Linux
  • ÜcretsizBSD
  • Gentoo Linux
  • HP-UX
  • NetBSD
  • OpenPKG
  • Oracle Solaris
  • Red Hat Enterprise Linux / CentOS / Fedora

Wireshark’ı Nereden İndirebilirim?

Programın en son kopyasını https://www.wireshark.org/download.html adresindeki Wireshark web sitesinden download edebilirsiniz. İndirme sayfası, platformunuz için uygun indirmeyi otomatik olarak vurgulamalı ve sizi en yakın aynaya yönlendirmelidir. Resmi Windows ve macOS yükleyicileri Wireshark Foundation tarafından imzalanmıştır. macOS yükleyicileri de noter tasdiklidir.

Wireshark’ın Kısa Tarihi

1997’nin sonlarında Gerald Combs, ağ sorunlarını izlemek için bir araca ihtiyaç duydu ve ağ oluşturma hakkında daha fazla bilgi edinmek istedi ve bu nedenle, her iki sorunu da çözmenin bir yolu olarak Ethereal’ı (Wireshark projesinin orijinal adı) yazmaya başladı.

Ethereal, ilk olarak Temmuz 1998’de geliştirmede birkaç duraklamadan sonra 0.2.0 sürümü olarak piyasaya sürüldü. Birkaç gün içinde yamalar, hata raporları ve cesaret verici sözler gelmeye başladı ve Ethereal başarıya giden yolda ilerliyordu.

Bundan kısa bir süre sonra Gilbert Ramirez potansiyelini gördü ve ona düşük seviyeli bir disektör katkıda bulundu.

Ekim 1998’de Guy Harris, tcpview’den daha iyi bir şey arıyordu, bu yüzden yamaları uygulamaya ve Ethereal’a disektörlere katkıda bulunmaya başladı.

1998’in sonlarında, TCP/IP kursları veren Richard Sharpe, bu kursların potansiyelini gördü ve ihtiyaç duyduğu protokolleri destekleyip desteklemediğini görmek için bakmaya başladı. O noktada olmasa da yeni protokoller kolayca eklenebilirdi. Böylece disektörlere katkıda bulunmaya ve yamalara katkıda bulunmaya başladı.

Projeye katkıda bulunan kişilerin listesi o zamandan bu yana çok uzadı ve neredeyse hepsi Wireshark’a ihtiyaç duydukları veya henüz işlemedikleri bir protokolle başladı. Böylece mevcut bir disektörü kopyaladılar ve kodu takıma geri verdiler.

2006 yılında proje taşındı ve yeni bir isim altında yeniden ortaya çıktı: Wireshark.

2008’de, on yıllık geliştirmeden sonra, Wireshark nihayet 1.0 sürümüne ulaştı. Bu sürüm, uygulanan minimum özelliklerle tamamlanmış sayılan ilk sürümdü. Yayınlanması, Sharkfest adlı ilk Wireshark Geliştirici ve Kullanıcı Konferansı ile aynı zamana denk geldi.

2015 yılında yeni bir kullanıcı arayüzü içeren Wireshark 2.0 piyasaya sürüldü.

Wireshark’ın Geliştirilmesi ve Bakımı

Wireshark ilk olarak Gerald Combs tarafından geliştirildi. Wireshark’ın devam eden geliştirme ve bakımı, hataları düzelten ve yeni işlevler sağlayan gevşek bir grup birey olan Wireshark ekibi tarafından gerçekleştirilir.

Ayrıca Wireshark’a protokol disektörlerine katkıda bulunan çok sayıda insan oldu ve bunun devam etmesi bekleniyor. Wireshark’ın hakkında iletişim kutusunu işaretleyerek veya Wireshark web sitesindeki yazarlar sayfasında Wireshark’a kod katkıda bulunan kişilerin listesini bulabilirsiniz .

Wireshark açık kaynaklı bir yazılım projesidir ve GNU Genel Kamu Lisansı (GPL) sürüm 2 altında yayınlanmıştır . Tüm kaynak kodları GPL kapsamında ücretsiz olarak mevcuttur. Wireshark’ı kendi ihtiyaçlarınıza uyacak şekilde değiştirebilirsiniz ve iyileştirmelerinizi Wireshark ekibine geri katkıda bulunursanız memnun oluruz.

Geliştirmelerinize topluluğa katkıda bulunarak üç avantaj elde edersiniz:

  1. Katkılarınızı faydalı bulan diğer insanlar onları takdir edecek ve insanlara Wireshark geliştiricilerinin size yardım ettiği şekilde yardım ettiğinizi bileceksiniz.
  2. Wireshark geliştiricileri, değişikliklerinizi daha da iyileştirebilir veya kodunuzun üzerine ek özellikler uygulayabilir, bu da size fayda sağlayabilir.
  3. Wireshark’ın koruyucuları ve geliştiricileri, API değişiklikleri veya diğer değişiklikler yapıldığında kodunuzu düzelterek ve genel olarak Wireshark ile olanlarla uyum içinde tutarak kodunuzu koruyacaktır. Böylece Wireshark güncellendiğinde (ki bu genellikle olur), web sitesinden yeni bir Wireshark sürümü edinebilirsiniz ve değişiklikleriniz zaten sizden herhangi bir ek çaba harcamadan dahil edilecektir.

Bazı platformlar için Wireshark kaynak kodu ve ikili kitlerin tümü Wireshark web sitesinin indirme sayfasında mevcuttur: https://www.wireshark.org/download.html .

Paket Listesi Bölmesi

Paket listesi bölmesi, geçerli yakalama dosyasındaki tüm paketleri görüntüler.

Şekil 3.16. “Paket Listesi” bölmesi

ws listesi bölmesi

Paket listesindeki her satır, yakalama dosyasındaki bir pakete karşılık gelir. Bu bölmede bir satır seçerseniz, “Paket Ayrıntıları” ve “Paket Baytları” bölmelerinde daha fazla ayrıntı görüntülenecektir.

Bir paketi incelerken Wireshark, protokol ayrıştırıcılarından gelen bilgileri sütunlara yerleştirir. Daha yüksek seviyeli protokoller daha düşük seviyelerdeki bilgilerin üzerine yazabileceğinden, genellikle sadece mümkün olan en yüksek seviyeden gelen bilgileri görürsünüz.

Örneğin, bir Ethernet paketi içinde IP içinde TCP içeren bir pakete bakalım. Ethernet ayırıcı kendi verilerini (Ethernet adresleri gibi) yazacaktır, IP ayırıcı kendi başına bunun üzerine yazacaktır (IP adresleri gibi), TCP ayırıcı IP bilgilerinin üzerine yazacaktır..

Çok sayıda farklı sütun mevcuttur. Hangi sütunların görüntüleneceği tercih ayarlarıyla seçilebilir. 

Varsayılan sütunlar şunları gösterecektir:

  • No: Yakalama dosyasındaki paketin numarası. Bu sayı, bir ekran filtresi kullanılsa bile değişmez.
  • Time: Paketin zaman damgası. Bu zaman damgasının sunum formatı değiştirilebilir.
  • Source: Bu paketin geldiği adres.
  • Destination: Bu paketin gideceği adres.
  • Protocol: İletişim protokol adı.
  • Length:  Her paketin uzunluğu.
  • Info: Paket içeriği hakkında ek bilgi.

İlk sütun, her paketin seçilen paketle nasıl ilişkili olduğunu gösterir. Örneğin, yukarıdaki resimde bir DNS isteği olan ilk paket seçilmiştir. Wireshark, isteğin kendisi için bir sağa ok, ardından paket 2’deki yanıt için bir sola ok gösterir. Neden kesikli bir çizgi var? Daha aşağıda, aynı bağlantı noktası numaralarını kullanan daha fazla DNS paketi var. Wireshark onları aynı konuşmaya aitmiş gibi ele alır ve onları birbirine bağlayan bir çizgi çizer.

Wireshark Paketleri Görüntülerken Filtreleme

Wireshark’ın iki filtreleme dili vardır: yakalama filtreleri ve görüntüleme filtreleri . Yakalama filtreleri , paketleri yakalarken filtrelemek için kullanılır ve daha sonraki bölümde değineceğiz . Görüntü filtreleri , hangi paketlerin görüntüleneceğini filtrelemek için kullanılır ve aşağıda tartışılmaktadır.

Görüntüleme filtreleri, ilgilendiğiniz paketlere konsantre olmanızı sağlarken, o anda ilginizi çekmeyenleri gizler. Paketleri yalnızca aşağıdakilere dayalı olarak görüntülemenize izin verirler:

  • Protokol
  • Bir alanın varlığı
  • alanların değerleri
  • Alanlar arasında bir karşılaştırma
  • … ve çok daha fazlası!

Yalnızca belirli bir protokolü içeren paketleri görüntülemek için, Wireshark penceresinin ekran filtresi araç çubuğuna protokol adını yazın ve filtreyi uygulamak için enter tuşuna basın. Şekil 6.7, “TCP protokolünde filtreleme” , ekran filtresi araç çubuğuna tcp yazdığınızda ne olduğuna dair bir örnek gösterir.

Not: Protokol ve alan adları genellikle küçük harfle yazılır.
Not 2: Filtre ifadesini girdikten sonra enter tuşuna basmayı veya ekran filtresi uygula butonuna tıklamayı unutmayınız.

TCP protokolünde filtreleme

ws ekran filtresi tcp

Farkettiğiniz gibi, artık yalnızca TCP protokolünü içeren paketler görüntüleniyor, bu nedenle 1-10 arasındaki paketler gizli ve 11 numaralı paket görüntülenen ilk paket.

Not: Bir görüntüleme filtresi kullanırken, tüm paketler yakalama dosyasında kalır. Görüntü filtresi yalnızca yakalama dosyasının görüntüsünü değiştirir, içeriğini değiştirmez!

Filtreyi kaldırmak için , ekran filtresi alanının sağındaki Temizle düğmesine tıklayın. Tüm paketler tekrar görünür hale gelecektir.

Örneğin, yalnızca 192.168.0.1 IP adresine giden veya gelen paketleri görüntülemek için ip.addr==192.168.0.1.

Örnekler

Yalnızca SMTP (25 numaralı bağlantı noktası) ve ICMP trafiğini göster:

 tcp.port eq 25 or icmp

Yalnızca LAN’daki (192.168.xx), iş istasyonları ve sunucular arasındaki trafiği göster — İnternet yok:

ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16

TCP arabelleği dolu — Kaynak, Hedef’e veri göndermeyi durdurma talimatı veriyor

 tcp.window_size == 0 && tcp.flags.reset != 1

Windows’ta Filtrele – Windows İstemcisi – DC alışverişlerini izlerken gürültüyü filtreleyin

 smb || nbns || dcerpc || nbss || dns

Sasser solucanı: –Sasser gerçekten ne yaptı–

  ls_ads.opnum==0x09

8 baytlık UDP başlığını atlayarak, UDP yükünün başlangıcında (keyfi) 3 baytlık 0x81, 0x60, 0x03 dizisini içeren paketleri eşleştirin . Bayt dizisinin değerlerinin örtük olarak yalnızca onaltılık biçimde olduğuna dikkat edin. (Yerli paket protokollerini eşleştirmek için kullanışlıdır.)

  udp[8:3]==81:60:03

“Dilim” özelliği, MAC adresinin satıcı tanımlayıcı bölümünü (OUI) filtrelemek için de yararlıdır. Bu nedenle, gösterimi yalnızca belirli bir cihaz üreticisinden gelen paketlerle sınırlayabilirsiniz. Örneğin yalnızca DELL makineleri için:

  eth.addr[0:3]==00:06:5B

İçerir operatörünü kullanarak bir alanda veya protokolde herhangi bir yerde görünen karakterleri aramak da mümkündür.

3 baytlık 0x81, 0x60, 0x03 dizisini içeren paketleri UDP başlığında veya yükünde herhangi bir yerde eşleştirin:

  udp contains 81:60:03

SIP To-header’ın başlığın herhangi bir yerinde “a1762” dizesini içerdiği paketleri eşleştirin:

  sip.To contains "a1762"

Eşleşme veya ~ operatörü, Perl düzenli ifade sözdizimini kullanarak bir düzenli ifade kullanarak dize alanlarında ve bayt dizilerinde metin aramayı mümkün kılar. Not: Maç operatörünü kullanabilmek için Wireshark’ın libpcre ile oluşturulması gerekir.

uri’deki son karakterlerin “gl=se” karakterleri olduğu HTTP isteklerini eşleştirin:

  http.request.uri matches "gl=se$"

Not: $ karakteri, bir dizenin sonuyla, bu durumda http.request.uri alanının sonuyla eşleşen bir PCRE noktalama karakteridir.

Bir protokole göre filtreleyin (örn. SIP) ve istenmeyen IP’leri filtreleyin:

  ip.src != xxx.xxx.xxx.xxx && ip.dst != xxx.xxx.xxx.xxx && sip

Yakalama Filtreleri

Wireshark, yakalama filtreleri için tcpdump , WinDump , Analyzer ve libpcap/WinPcap kitaplığını kullanan diğer tüm programlarla aynı sözdizimini kullanır.

Yakalama filtresi bir görüntü filtresi değil

Yakalama filtreleri (gibi tcp port 80) görüntü filtreleriyle (gibi tcp.port == 80) karıştırılmamalıdır . İlki çok daha sınırlıdır ve ham paket yakalamanın boyutunu küçültmek için kullanılır. İkincisi, bazı paketleri paket listesinden gizlemek için kullanılır.

Yakalama filtreleri, bir paket yakalamaya başlamadan önce ayarlanır ve yakalama sırasında değiştirilemez. Ekran filtreleri ise bu sınırlamaya sahip değildir ve bunları anında değiştirebilirsiniz.

Ana pencerede, arayüzler listesinin hemen üstünde ve arayüzler iletişim kutusunda yakalama filtresi bulunabilir. Görüntü filtresi, bu resimde görüldüğü gibi paket listesinin üzerinde değiştirilebilir:

Örnekler

Yalnızca 172.18.5.4 IP adresine gelen veya bu adresten gelen trafiği yakalayın:

host 172.18.5.4

Bir dizi IP adresine gelen veya bu adreslerden gelen trafiği yakalayın:

net 192.168.0.0/24

veya

net 192.168.0.0 mask 255.255.255.0

Bir dizi IP adresinden gelen trafiği yakalayın:

src net 192.168.0.0/24

veya

src net 192.168.0.0 mask 255.255.255.0

Bir dizi IP adresine giden trafiği yakalayın:

dst net 192.168.0.0/24

veya

dst net 192.168.0.0 mask 255.255.255.0

Yalnızca DNS (53 numaralı bağlantı noktası) trafiğini yakalayın:

port 53

Sunucunuzda HTTP olmayan ve SMTP olmayan trafiği yakalayın (her ikisi de eşdeğerdir):

host www.example.com and not (port 80 or port 25)

host www.example.com and not port 80 and not port 25

Tüm ARP ve DNS trafiği dışında yakalayın:

port not 53 and not arp

Bir dizi bağlantı noktasında trafiği yakalayın

(tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)

veya daha yeni libpcap sürümleriyle (0.9.1 ve üstü):

tcp portrange 1501-1549

Yalnızca Ethernet tipi EAPOL’u yakalayın:

ether proto 0x888e

Bağlantı Katmanı Keşif Protokolü Çok Noktaya Yayın grubuna yönelik ethernet çerçevelerini reddet:

not ether dst 01:80:c2:00:00:0e

Yalnızca IPv4 trafiğini yakalayın – en kısa filtre, ancak bazen ARP ve STP gibi alt katman protokollerinden kurtulmak için çok kullanışlıdır:

ip

Yalnızca tek noktaya yayın trafiğini yakalayın – örneğin yayın ve çok noktaya yayın duyurularını değil, yalnızca makinenize gelen ve giden trafiği görmek istiyorsanız ağdaki parazitten kurtulmak için kullanışlıdır:

not broadcast and not multicast

IPv6 “tüm düğümler” (yönlendirici ve komşu reklam) trafiğini yakalayın. Hileli RA’ları bulmak için kullanılabilir:

dst host ff02::1

HTTP GET isteklerini yakalayın. Bu, TCP başlığından hemen sonra ‘G’, ‘E’, ‘T’ ve ‘ ‘ (onaltılık değerler 47, 45, 54 ve 20) baytlarını arar. “tcp[12:1] & 0xf0) >> 2”, TCP başlık uzunluğunu belirler. Jefferson Ogata’dan tcpdump-workers posta listesi aracılığıyla .

port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420

Faydalı Filtreler

Blaster ve Welchia, RPC solucanlarıdır. (Daha iyi bağlantıları olan, yani gerçek yükü açıklayan veya gösterenler var mı?)

Blaster solucanı :

dst port 135 and tcp port 135 and ip[2:2]==48

Welchia solucanı :

icmp[icmptype]==icmp-echo and ip[2:2]==92 and icmp[8:4]==0xAAAAAAAA

Filtre, 92 bayt uzunluğunda ve 4 bayt A (hex) ile başlayan bir icmp yüküne sahip bir icmp yankı isteği arar. Bir sistemi tehlikeye atmaya çalışmadan hemen önce welchia solucanının imzasıdır.

Birçok solucan, 135, 445 veya 1433 numaralı bağlantı noktalarındaki diğer ana bilgisayarlarla iletişim kurarak yayılmaya çalışır. Bu filtre, belirli solucandan bağımsızdır, bunun yerine bu belirli bağlantı noktalarında yerel bir ağdan kaynaklanan SYN paketlerini arar. Lütfen ağ filtresini kendi ağınızı yansıtacak şekilde değiştirin.

dst port 135 or dst port 445 or dst port 1433  and tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) = 0 and src net 192.168.0.0/24

Heartbleed Exploit :

tcp src port 443 and (tcp[((tcp[12] & 0xF0) >> 4 ) * 4] = 0x18) and (tcp[((tcp[12] & 0xF0) >> 4 ) * 4 + 1] = 0x03) and (tcp[((tcp[12] & 0xF0) >> 4 ) * 4 + 2] < 0x04) and ((ip[2:2] - 4 * (ip[0] & 0x0F)  - 4 * ((tcp[12] & 0xF0) >> 4) > 69))

Varsayılan Yakalama Filtreleri

Wireshark, uzaktan çalışıp çalışmadığını (örneğin SSH veya Uzak Masaüstü aracılığıyla) belirlemeye çalışır ve öyleyse, uzak oturum trafiğini engellemesi gereken varsayılan bir yakalama filtresi ayarlar. Bunu, ortam değişkenlerini aşağıdaki sırayla kontrol ederek yapar:

Çevre değişkeniSonuç Filtresi
SSH_CONNECTIONdeğil (tcp bağlantı noktası srcport ve addr_family ana bilgisayar srchost ve tcp bağlantı noktası dstport ve addr_family ana bilgisayar dsthost )
SSH_CLIENTdeğil (tcp bağlantı noktası srcport ve addr_family ana bilgisayar srchost ve tcp bağlantı noktası dstport )
REMOTEHOSTaddr_family ana bilgisayar ana bilgisayarı değil
DISPLAYaddr_family ana bilgisayar ana bilgisayarı değil
CLIENTNAMEtcp bağlantı noktası 3389 değil

( Addr_family ya olacak ipya da ip6)

Bazı Pratik Wireshark Filtreleri

1) ip.addr == 192.168.1.1 Bu filtremiz Source veya Destination’da ilgili IP olan paketleri bizlere sunuyor.

2) ip.addr == 192.168.1.1 && ip.addr == 10.0.0.3

Bahsi geçen iki IP adresini VE bağlacı ile bağlamış. Yani Source veya Destination’da bu ikisi olmak zorunda. Hangisi Destination, hangisi Source önemli değil.

3) ip.addr == 192.168.0.0/24

192.168.0.x adresindeki 255 IP adresinden birisi paketlerde var ise, ilgili paketi önümüze getirir.

4) ip.src == 192.168.1.16 && ip.dest == 10.0.0.12

Source’u 192.168.1.16, Destination’ı 10.0.0.12 olan paketleri filtreler.

5) ip.addr != 192.168.1.16

İlgili IP adresinin olmadığı tüm paketleri filtreler.

6) tcp.port == 8080

8080 portuna bağlantı sağlayan paketleri filtreler.

7) tcp.port in {443 80 8443}

Birden fazla TCP portunun bağlantı yapıldığı paket arıyorsanız, kullanışlı bir filtredir.

8) tcp.flags & 0x02

TP bayrağı 0x02 oan paketleri filtreler. 0x02, SYN bitine karşılık gelmektedir. Aynı şekilde tcp.flags.syn == 1 filtresi de aynı anlama gelmektedir. Ayrıca bu filtre hem SYN, hemde SYN/ACK paketlerini gösterecektir. Sadece SYN paketlerini göstermek istiyorsanız da tcp.flags.syn == 1 && tcp.flags.ack == 0 filtresini kullanmanız gerekir.

9) tcp contains FLAG

TCP paketlerinin içerisinde FLAG string’i olan paketi filtreler. Özellikle CTF yarışmalarında işimize yarayacağı aşikar 🙂

10) http.request.uri == “https://fatihsensoy.com/”

Spesifik bir web sitesine gönderilen veya alınan paketleri filtrelemenize olanak sağlar.

11) http.host matches “microsoft\.(org|com|net|tr)”

Microsoft adının com, org, net veya tr domainleri ile alakalı giden veya gelen bir paket var ise filtreler.

12) http.request.method == “POST”

POST isteğinde bulunan tüm paketleri filtreler.

13) http.host == “www.google.com”

Belirtilen URL’in host olduğu paketleri bize sunar. Dikkat edilmesi gereken bir nokta mevcuttur. URL tam olarak yazılmalıdır. Yani web sitesinin başında www var ise eksik bırakılması halinde doğru filtreleme yapılmayacaktır.

14) http.response.code == 200

Yapılan Request sonucu dönen Response kodu 200 (yani başarılı bağlantı) olan paketleri filtreler. Aynı şekilde 404 (bulunamadı), 403 (yetkisiz erişim/yasak) gibi tüm HTTP response kodlarını da filtreleyebilirsiniz.

15) http.content.type == “audio/mpeg”

HTTP paketlerinin içerisinde mpeg türündeki ses dosyaları bulunan paketleri filtreler. Başka içerikleri de kolay bir şekilde filtreleyebilirsiniz. Örneğin “image/jpeg” gibi.

16) udp.port == 69

İlgili UDP portuna gönderilen veya alınan paketleri filtreler.

17) wlan.ssid == Isyeri_Wifi

İlgili WIFI’ın SSID’sine yapılan ve alınan paketleri bize sunar.

18) wlan.addr == 00:1c:12:dd:ac:4d

İlgili WLAN MAC adresine yapılan ve alınan paketleri filtreler.

19) icmp.type == 8 && imcp.type == 0

ICMP echo 8, echo reply 0 olarak ayarlanan bu filtre bize sadece ICMP Request’lerini filtrelemektedir.

20) icmp

Bunun gibi tekli kullanımlar da mevcuttur. Fazla ayrıntıya girmeden direk ilgili protokolün olduğu tüm paketleri filtreler. Tahmin edebileceğini üzere http, dns, tcp, udp gibi tekli filtremeler de mevcuttur.