Wireshark Filtreleri: 25 Örnekle Kopya Kâğıdı
Wireshark filtreleri tek sayfada: adres, port, DNS, HTTP, TLS ve TCP için 25 hazır görüntüleme filtresi. Yazım kurallarını örneklerle öğren.
Wireshark filtreleri, binlerce paketlik bir kayıtta yalnız aradığın trafiği ekrana getirir. Görüntüleme filtresi kaydı silmez, yalnız neyin görüneceğini seçer. Aşağıda adres, port, DNS, HTTP, TLS ve TCP sorunları için 25 hazır filtre var. Her birini kopyalayıp filtre çubuğuna yapıştırabilirsin. Örnekleri yalnız kendi cihazının ya da kendi laboratuvarının trafiğinde dene.
Wireshark filtreleri nasıl yazılır?
Aracın ne olduğunu ve güvenlik işinde nerede kullanıldığını Wireshark nedir yazısı anlatıyor. Bu sayfa doğrudan filtrelere geçer.
Bir görüntüleme filtresi üç parçadan oluşur: alan adı, işleç ve değer. tcp.port == 443 ifadesinde alan tcp.port, işleç ==, değer 443'tür. Yalnız protokol adını yazarsan, örneğin dns, o protokolü içeren her paket görünür.
| İşleç | Anlamı | Örnek |
|---|---|---|
== ya da eq | Eşittir | ip.src == 192.168.1.10 |
!= ya da ne | Eşit değildir | dns.flags.rcode != 0 |
>, <, >=, <= | Büyüktür, küçüktür | frame.len > 1000 |
contains | Metni ya da bayt dizisini içerir | http.host contains "example" |
matches | Düzenli ifadeyle eşleşir, büyük küçük harf ayırmaz | dns.qry.name matches "^www" |
in {} | Listedeki değerlerden biridir | tcp.port in {80, 443, 8080} |
Koşulları and, or ve not ile birleştirirsin. Aynı işi &&, || ve ! de yapar. Karışık koşullarda parantez kullan: ip.addr == 192.168.1.10 and (tcp.port == 80 or tcp.port == 443). Metin değerlerini her zaman çift tırnağa al.
Yazarken çubuğun rengine bak. Kırmızı, ifadenin eksik ya da hatalı olduğunu gösterir. Yeşil, ifadenin geçerli olduğunu gösterir. Enter tuşuna basınca filtre uygulanır. Bir alanın tam adını bilmiyorsan paket ayrıntısı panelinde o satıra sağ tıkla ve Apply as Filter seçeneğini kullan. Wireshark doğru ifadeyi kendisi yazar.
Yakalama filtresi ile görüntüleme filtresi arasındaki fark nedir?
Wireshark'ta iki ayrı filtre dili vardır. Yakalama filtresi paketler kaydedilirken çalışır. Görüntüleme filtresi ise kayıttan sonra, istediğin an çalışır.
| Özellik | Yakalama filtresi | Görüntüleme filtresi |
|---|---|---|
| Ne zaman çalışır | Kayıt sırasında | Kayıttan sonra |
| Dil | libpcap filtre dili | Wireshark'ın kendi dili |
| Örnek | host 192.168.1.10 and port 53 | ip.addr == 192.168.1.10 and dns |
| Elenen paket | Diske hiç yazılmaz | Dosyada durur, filtreyi kaldırınca görünür |
| Ne zaman seçersin | Çok yoğun ağda dosyayı küçük tutmak için | Analizin neredeyse tamamında |
İki dil birbirine benzemez. host ve port yakalama filtresinde çalışır. Aynı ifadeyi görüntüleme filtresi çubuğuna yazarsan çubuk kırmızı yanar. Başlangıçta yakalama filtresi kullanma. Her şeyi kaydet, sonra görüntüleme filtresiyle daralt. tcpdump ve yakalama filtrelerinin kısa listesi tcpdump ve Wireshark kopya kâğıdında duruyor.
Adres ve port için hangi filtreler kullanılır?
İlk sekiz filtre trafiği cihaza ya da hizmete göre ayırır. Örneklerdeki adresler ev ağı aralığındandır. Kendi ağındaki adresle değiştir.
| No | Filtre | Ne gösterir |
|---|---|---|
| 1 | ip.addr == 192.168.1.10 | Bu adrese giden ya da bu adresten gelen paketler |
| 2 | ip.src == 192.168.1.10 | Kaynağı bu adres olan paketler |
| 3 | ip.dst == 192.168.1.10 | Hedefi bu adres olan paketler |
| 4 | ip.addr == 192.168.1.0/24 | Bu alt ağdaki adreslerin trafiği |
| 5 | !(ip.addr == 192.168.1.10) | Bu adres dışındaki bütün trafik |
| 6 | tcp.port == 443 | Kaynak ya da hedef portu 443 olan TCP paketleri |
| 7 | udp.port == 53 | Kaynak ya da hedef portu 53 olan UDP paketleri |
| 8 | tcp.port in {80, 443, 8080} | Bu üç porttan birini kullanan TCP paketleri |
Bir adresi dışarıda bırakmak için 5 numaralı biçimi kullan. Wireshark 3.6'dan beri ip.addr != 192.168.1.10 de aynı sonucu verir. Eski sürümlerde bu yazım farklı çalışıyordu. Parantezli biçim her sürümde aynı davranır. Port numaralarının hangi hizmete denk geldiğini port nedir yazısındaki tabloda bulabilirsin.
DNS, HTTP ve TLS trafiği nasıl süzülür?
Bu filtreler protokolün kendi alanlarına bakar. Hangi alan adının sorulduğunu, hangi isteğin gittiğini ve hangi sunucuyla şifreli bağlantı kurulduğunu gösterir.
| No | Filtre | Ne gösterir |
|---|---|---|
| 9 | dns | Bütün DNS sorgu ve yanıtları |
| 10 | dns.qry.name contains "example" | Adında "example" geçen DNS sorguları |
| 11 | dns.flags.rcode != 0 | Hata koduyla dönen DNS yanıtları |
| 12 | http.request.method == "POST" | Şifresiz HTTP üzerinden giden POST istekleri |
| 13 | http.response.code >= 400 | Hata kodlu HTTP yanıtları (404, 500 gibi) |
| 14 | http.host contains "example" | Host başlığında "example" geçen istekler |
| 15 | tls.handshake.type == 1 | TLS bağlantısını başlatan Client Hello paketleri |
| 16 | tls.handshake.extensions_server_name contains "example" | Client Hello içinde bu sunucu adı istenen bağlantılar |
11 numaralı filtrede en sık göreceğin değer 3'tür. Bu kod, sorulan adın bulunamadığını söyler. Bir cihaz sürekli var olmayan adlar soruyorsa yanlış yapılandırmayı ya da rastgele adlar üreten bir zararlıyı düşün. DNS'in nasıl çalıştığını ve hangi saldırılara açık olduğunu DNS nedir yazısında okuyabilirsin.
http ile başlayan filtreler yalnız şifresiz HTTP trafiğinde sonuç verir. Bugün sitelerin çoğu HTTPS kullanır. Bu yüzden 12, 13 ve 14 numaralı filtreler genellikle yerel cihazlarda, eski yönetim panellerinde ve laboratuvar trafiğinde işe yarar.
TCP bağlantı sorunlarını hangi filtreler gösterir?
Bu grup bağlantının nasıl kurulduğunu, koptuğunu ve yavaşladığını gösterir. Ağ sorunlarını teşhis ederken ilk bakacağın yer burasıdır.
| No | Filtre | Ne gösterir |
|---|---|---|
| 17 | tcp.flags.syn == 1 && tcp.flags.ack == 0 | Bağlantı başlatan ilk SYN paketleri |
| 18 | tcp.flags.reset == 1 | RST ile kesilen bağlantılar |
| 19 | tcp.analysis.retransmission | Yeniden gönderildiği düşünülen paketler |
| 20 | tcp.analysis.zero_window | Alıcının arabelleği dolduğu için gönderilen sıfır pencere paketleri |
| 21 | tcp.stream eq 3 | Yalnız 3 numaralı TCP akışı |
| 22 | frame.time_delta > 1 | Bir önceki yakalanan paketten 1 saniyeden uzun sonra gelen paketler |
17 numaralı filtre her bağlantının ilk adımını gösterir. Kısa sürede çok sayıda farklı porta SYN gidiyor ama çok azına yanıt geliyorsa bu bir port taramasının izi olabilir. Bu görüntüyü kendi laboratuvarında Nmap komutlarıyla bir tarama yapıp Wireshark'ta izleyerek tanıyabilirsin.
tcp.analysis ile başlayan alanlar pakette yazmaz. Wireshark bunları akışı inceleyerek kendisi ekler. Yeniden gönderim kaybolan ya da geciken paketin işaretidir. Bir akışın tamamını okumak için 21 numaralı filtreyi kullan ya da pakete sağ tıklayıp Follow > TCP Stream seç.
İçerik aramak ve gürültüyü ayıklamak için hangi filtreler var?
Son üç filtre büyük kayıtlarda zaman kazandırır.
| No | Filtre | Ne gösterir |
|---|---|---|
| 23 | !(arp or icmp or dns) | ARP, ICMP ve DNS dışındaki trafik |
| 24 | frame contains "parola" | Ham paketin içinde bu metin geçenler |
| 25 | tcp.len > 0 | Veri taşıyan TCP paketleri, boş onaylar gizlenir |
24 numaralı filtre şifresiz protokollerin riskini göstermenin en kısa yoludur. Laboratuvarındaki bir FTP ya da Telnet sunucusuna giriş yap ve kaydı bu filtreyle süz. Kullanıcı adını ve parolayı düz metin olarak görürsün. Şifreli trafikte aynı arama sonuç vermez.
HTTPS trafiğinde ne görürsün?
Şifreli trafikte içerik okunmaz ama bağlantının çevresi görünür: IP adresleri, portlar, zamanlama, paket boyutları ve DNS sorguları. TLS el sıkışmasındaki Client Hello paketinde bağlanılan sunucunun adı (SNI) çoğu zaman açık durur. 16 numaralı filtre bu alanı kullanır.
Kendi tarayıcının trafiğini çözmen gerekiyorsa Wireshark'ın belgelediği yol oturum anahtarı dosyasıdır. Firefox ve Chrome, SSLKEYLOGFILE ortam değişkeni tanımlıyken TLS oturum anahtarlarını bu dosyaya yazar. Wireshark'ta TLS protokol ayarlarındaki (Pre)-Master-Secret log filename alanına dosyanın yolunu verirsin. Yöntem yalnız anahtarları senin cihazında üretilen bağlantılarda çalışır. İşin bitince değişkeni kaldır ve dosyayı sil, çünkü o dosyayla kayıtlı oturumlar okunabilir.
Bir kaydı filtrelerle adım adım nasıl okursun?
Bir web sayfasının geç açıldığını düşün. Sorunu katman katman daraltmak için şu sırayı izle:
- Yakalamayı başlat, sayfayı aç ve yakalamayı durdur.
dnsile alan adı sorgularına bak. Yanıt geç geliyorsa sorun ad çözümlemede olabilir.tls.handshake.type == 1ile hangi sunuculara bağlanıldığını gör.tcp.analysis.retransmissionile kayıp paket var mı kontrol et.tcp.flags.reset == 1ile kesilen bağlantıları bul.- Şüpheli bağlantının akış numarasını al ve
tcp.stream eqile yalnız onu incele.
Her adımda paket ayrıntısı panelindeki satırları yukarıdan aşağıya aç. Ethernet, IP, TCP ve uygulama katmanı sırayla görünür. Bu sıranın mantığını OSI ve TCP/IP modeli yazısında bulabilirsin.
Trafik yakalamanın yasal bir sınırı da var. Türk Ceza Kanunu'nun 243. maddesinin 4. fıkrası, bilişim sistemleri arasındaki veri aktarımını teknik araçlarla hukuka aykırı olarak izlemeyi ayrı bir suç sayar. Kafe, yurt ya da iş yeri ağında başkalarının trafiğini kaydetme. Kendi ağında ve izinli laboratuvarda çalış.
Kaynaklar
Sık sorulan sorular
Wireshark'ta filtre nasıl uygulanır?
Paket listesinin üstündeki görüntüleme filtresi çubuğuna ifadeyi yaz ve Enter tuşuna bas. Çubuk yeşile dönerse ifade geçerlidir, kırmızıya dönerse yazımda hata vardır. Filtre yalnız görünümü değiştirir, kayıttaki paketleri silmez. Çubuğun sağındaki temizleme düğmesine bastığında bütün paketler yeniden listelenir ve yeni bir filtre deneyebilirsin.
Yakalama filtresi ile görüntüleme filtresi aynı şey mi?
Hayır. Yakalama filtresi kayıt sırasında çalışır ve libpcap dilini kullanır, örneğin host ve port. Elediği paket diske hiç yazılmaz. Görüntüleme filtresi kayıttan sonra çalışır, Wireshark'ın kendi dilini kullanır ve istediğin an değişir. Yeni başlıyorsan her şeyi kaydet, sonra görüntüleme filtresiyle daralt.
Wireshark'ta bir IP adresini nasıl hariç tutarım?
En güvenli yazım not (ip.addr == 192.168.1.10) biçimidir. Bu ifade, kaynağında ya da hedefinde o adres geçen bütün paketleri gizler. Wireshark 3.6 ve sonraki sürümlerde ip.addr ne 192.168.1.10 de aynı sonucu verir. Eski sürümlerde bu ikinci yazım farklı çalışıyordu, bu yüzden parantezli biçimi alışkanlık edin.
Wireshark HTTPS trafiğinin içeriğini görebilir mi?
Anahtar olmadan göremez. Şifreli bağlantıda adresleri, portları, zamanlamayı ve çoğu zaman sunucu adını görürsün, içerik ise okunmaz. Kendi tarayıcının trafiğini çözmen gerekiyorsa Firefox ya da Chrome'u SSLKEYLOGFILE ortam değişkeniyle başlatıp oluşan anahtar dosyasını Wireshark'ın TLS ayarlarına verirsin. İş bitince bu dosyayı sil.
Başkasının trafiğini Wireshark ile izlemek suç mu?
Olabilir. Türk Ceza Kanunu'nun 243. maddesinin 4. fıkrası, bilişim sistemleri arasındaki veri aktarımını sisteme girmeden teknik araçlarla hukuka aykırı olarak izlemeyi suç sayar ve bir yıldan üç yıla kadar hapis öngörür. Wireshark'ı yalnız kendi cihazında, kendi ağında ya da yazılı izin aldığın sistemde kullan.
- Wireshark
- görüntüleme filtresi
- paket analizi
- ağ trafiği
- kopya kâğıdı