Wireshark Analizi

Wireshark Analizi

Wireshark Analizi

Hizmet Engelleme Saldırıları (DoS-DDoS) Wireshark Analizi

Merhaba, bu yazımda DoS ve DDoS olarak bilinen hizmet engelleme saldırılarının wireshark ile analizini gerçekleştireceğim.

Wireshark

Wireshark, bir ağ analiz aracı olarak kullanılan açık kaynaklı bir yazılımdır. Wireshark, ağ trafiğini yakalayabilir, inceleyebilir ve analiz edebilir, böylece ağ sorunlarını teşhis etmek, güvenlik tehditlerini tespit etmek veya ağ performansını izlemek için kullanılabilir.

Detaylı bilgi için: https://www.wireshark.org/

Wireshark'ı bilgisayarınıza kurmak için aşağıdaki adımları izleyebilirsiniz. Unutmayın ki işletim sisteminize ve kullanım amacınıza bağlı olarak bu adımlar değişebilir. İşte Wireshark'ı kurmanın genel adımları:

Windows İşletim Sistemi için:

  1. Wireshark'ın Resmi İnternet Sitesini Ziyaret Edin: Wireshark'ı resmi web sitesinden indirmeniz önerilir. Resmi web sitesine şu adresten ulaşabilirsiniz: https://www.wireshark.org/
  2. İndirme Sayfasına Git: Ana sayfada, "Download" veya "İndir" bağlantısına tıklayın.
  3. İndirme Seçeneklerini Belirleyin: Windows için Wireshark sürümünü seçin ve indirme işlemine başlayın. İndirdiğiniz dosya .exe uzantılı olacaktır.
  4. Kurulum Sihirbazını Çalıştırın: İndirilen .exe dosyasını çalıştırın. Windows UAC (Kullanıcı Hesap Kontrolü) izni gerektirebilir. İzni verin ve kurulum işlemine devam edin.
  5. Yükleme Seçeneklerini Ayarlayın: Kurulum sırasında Wireshark ve WinPcap (bazı sürümlerde Npcap) gibi bileşenlerin yüklenip yüklenmeyeceğini seçebilirsiniz. Genellikle önerilen ayarları kabul etmek iyi bir seçenektir.
  6. Kurulumu Tamamlayın: Kurulum işlemini tamamlamak için gerekli adımları takip edin. Kurulum tamamlandığında, Wireshark'ı başlatma seçeneğiniz olacaktır.
  7. Wireshark'ı Başlatın: Kurulum tamamlandığında Wireshark'ı başlatın. Artık ağ trafiğini yakalayabilir ve analiz edebilirsiniz.

Linux İşletim Sistemi için:

Wireshark, birçok Linux dağıtımının depolarında bulunur, bu yüzden aşağıdaki komutları kullanarak paketi yükleyebilirsiniz. Örneğin, Debian veya Ubuntu tabanlı bir sistemde:

sudo apt update  
sudo apt install wireshark

Kurulum sırasında sudo ile yönetici izni gerekebilir. Ayrıca, Wireshark'ı kullanabilmek için kullanıcıyı "wireshark" grubuna eklemek veya sudo ile başlatmak gerekebilir.

Mac İşletim Sistemi için:

Wireshark'ı Mac OS X üzerinde kullanmak için, resmi web sitesinden bir DMG dosyasını indirebilir ve kurabilirsiniz. Kurulum sırasında sık sık yönergeleri takip etmelisiniz.

Wireshark'ı kurduktan sonra, ağ trafiğini yakalamak ve analiz etmek için kullanmaya başlayabilirsiniz. Unutmayın ki ağ trafiği izleme işlemi, belirli izinler gerektirebilir ve bu işlemi yasal ve etik kurallara uygun bir şekilde yapmalısınız.

DoS â€" DDoS

Denial of Service (DoS) ve Distributed Denial of Service (DDoS) saldırıları, bilgisayar sistemlerine veya ağlara hizmet sağlama yeteneklerini geçici veya kalıcı olarak engellemeyi amaçlayan siber saldırı türleridir.

DoS (Denial of Service) saldırısı, tek bir kaynaktan gelen trafiği kullanılamaz hale getirme girişimidir. DDoS (Distributed Denial of Service) saldırısı ise birçok kaynaktan gelen koordineli trafiği kullanılamaz hale getirme girişimidir. Temel fark, DoS'ün tek kaynaktan gelmesi, DDoS'ün ise çoklu kaynaklardan gelmesidir. DDoS, daha büyük ve daha etkili bir saldırı türüdür.

Bu saldırıları kendi lab ortamınızda gerçekleştirmek için bir linux makine üzerinde hping3 aracını kullanabilirsiniz. Bunun yanında DoS Attack Framework aracı da DoS saldırıları yapmak için size bir etkileşimli arayüz sunar.

TCP Saldırıları

TCP (Transmission Control Protocol), bilgisayarlar arasında güvenilir ve sıralı veri iletimi sağlamak için kullanılan bir iletişim protokolüdür. TCP'nin çalışma şekli, bayraklar olarak adlandırılan kontrol işaretçileri kullanılarak yönetilir. TCP'nin çalışma prensipleri ve bayraklarının açıklamaları verilmiştir:

  1. Başlatma (SYN â€" Synchronize): İstemci(client) taraf, bağlantıyı başlatmak için bir "SYN" bayrağı içeren bir paket gönderir.
  2. Yanıt (SYN-ACK â€" Synchronize Acknowledgment): Sunucu tarafı, bağlantıyı kabul ediyorsa, "SYN-ACK" bayrağı içeren bir yanıt gönderir.
  3. Onay (ACK â€" Acknowledgment): İstemci taraf, ikinci tarafın kabul yanıtını aldığını doğrulamak için bir "ACK" bayrağı içeren bir yanıt gönderir ve bağlantı tamamlanır.
  4. Veri İletimi (PSH â€" Push, URG â€" Urgent, FIN â€" Finish, RST â€" Reset): Bağlantı kurulduktan sonra, taraflar veri iletimine başlarlar. İletilecek veri paketleri bu bayraklarla işaretlenerek iletilir:
  • PSH (Push): Verinin hızlı iletilmesini istediğini belirtir.
  • URG (Urgent): Öncelikli veri olduğunu belirtir.
  • FIN (Finish): Veri iletimini sonlandırır.
  • RST (Reset): Bağlantıyı sıfırlar ve sonlandırır.

TCP, gönderilen verinin sırasını ve güvenilirliğini sağlamak için bayraklarını kullanır. Veri paketleri belirli bir sırada iletilir ve eksik veya hatalı paketler yeniden talep edilir.

Üç Yollu El Sıkışma (Three Way Handshake)

TCP protokolünün kullanıldığı hizmet engelleme saldırıları, genellikle ağ veya sunucu kaynaklarını tüketmek ve hizmet kesintilerine neden olmak amacıyla gerçekleştirilen saldırılardır. Bu tür saldırılar, TCP/IP iletişimi üzerindeki zayıf noktalardan yararlanarak hedef ağ veya sunucuları etkileyebilir. İşte TCP protokolünün kullanıldığı bazı hizmet engelleme saldırıları:

SYN Flood Saldırısı

Bu saldırıda, saldırganlar hedef sunucuya çok sayıda sahte bağlantı isteği (SYN isteği) gönderirler. Hedef sunucu bu istekleri yanıtlamaya çalışırken kaynaklarını tüketir ve gerçek kullanıcılara hizmet veremez hale gelir.

Wireshark ile SYN Flood saldırısı yakaladığımızda çok kısa zaman aralıklarıyla gönderilmiş birçok SYN bayraklı TCP paketi görürüz.

SYN-Flood

RST Flood Saldırısı

Saldırganlar, hedef sunucuya sahte TCP RST paketleri göndererek mevcut bağlantıları sıfırlarlar. Bu, hedef sunucunun işleyişini bozabilir ve hizmetleri kullanılamaz hale getirebilir.

Wireshark ile RST Flood saldırısı yakaladığımızda çok kısa zaman aralıklarıyla gönderilmiş birçok RST bayraklı TCP paketi görür. Kaynak adresini de manipüle eder farklı IP adreslerinden geliyormuş gibi gösterir.

RST Flood

ACK-PSH Flood Saldırısı

Bu tür saldırılarda, saldırganlar hedef sunucuya büyük miktarda sahte TCP ACK ve PSH (Push) paketleri gönderirler. Bu, sunucunun kaynaklarını tüketmeye ve hizmetlerin yavaşlamasına neden olabilir.

Wireshark ile ACK-PSH Flood saldırısı yakaladığımızda çok kısa zaman aralıklarıyla gönderilmiş birçok PSH+ACK bayraklı TCP paketi görür. Kaynak adresini manipüle eder farklı IP adreslerinden geliyormuş gibi gösterir.

ACK-PSH Flood

ACK Flood Saldırısı

Saldırganlar, hedef sunucuya büyük miktarda sahte TCP ACK (Acknowledgment) paketi gönderirler. Bu, sunucunun kaynaklarını hızla tüketebilir.

ACK-PSH'e benzer şekilde ACK Flooda da wireshark ile baktığımızda çok kısa aralıklarla gönderilmiş ACK bayraklı TCP paketleri görüyoruz. Kaynak adresi manipüle edilerek farklı kaynaktan geliyormuş gibi gösterilmiş.

ACK Flood

Bu tür saldırılar, sunucuların ve ağların aşırı yüklendiği durumlar yaratır ve hizmet kesintilerine neden olabilir. Bu nedenle, hedefler genellikle saldırıları tespit etmek ve savunmak için güvenlik önlemleri ve siber güvenlik çözümleri kullanırlar. Bu çözümler, trafiği filtreleme, güvenlik duvarları, saldırı tespiti sistemleri ve yük dengeleme gibi önlemleri içerebilir. Ayrıca, ağ güvenliği politikaları ve iyi güvenlik uygulamaları da önemlidir.

UDP Saldırıları

UDP (User Datagram Protocol), IP tabanlı ağlarda veri iletimi için kullanılan bir iletişim protokolüdür. UDP, veri paketlerinin hızlı ve düşük gecikme ile iletilmesini sağlar, ancak verilerin güvenilir bir şekilde iletilmesini veya alınmasını garanti etmez. UDP, genellikle ses ve video akışları gibi uygulamalarda ve ağ oyunlarında kullanılır.

UDP, veriyi güvenli bir şekilde iletmek veya almak için TCP gibi güvenlik ve güvenilirlik mekanizmalarını içermez. Bu nedenle, UDP saldırıları daha öngörülemez ve savunması daha zor olabilir. Bazı UDP saldırıları ve açıklamaları:

UDP Flood Saldırısı

Bu tür bir saldırıda, saldırganlar hedef sunucuya büyük miktarda sahte UDP paketi gönderirler. Bu paketler, hedef sunucunun kaynaklarını tüketmeye ve hizmetlerini kullanılamaz hale getirmeye çalışır. Bu tür saldırılar, hedef sunucunun yanıt veremediği kadar hızlı bir şekilde paket göndermeyi içerebilir.

TCP saldırılarına benzer şekilde UDP salrıılarında da wireshark ile baktığımızda çok kısa aralıklarla gönderilmiş paketler görürüz. Farklı olan nokta bu sefer TCP değil UDP paketleri mevcut. Ayrıca yine kaynak adresi manipüle edilerek farklı kaynaktan geliyormuş gibi gösterilmiş.

UDP Flood

UDP Fragmentation Saldırıları

Bu tür saldırılarda, saldırganlar büyük UDP paketlerini küçük parçalara böler ve hedef sunucuya bu parçaları gönderirler. Bu, hedef sunucunun paketleri yeniden monte etmek için kaynaklarını tüketmesine neden olabilir.

UDP saldırılarına karşı korunma, trafik filtreleme, güvenlik duvarları, paket dengeleme ve saldırı tespiti sistemleri gibi güvenlik önlemleri içerebilir. Ayrıca, hedef sunucunun kaynakları ve ağ trafiği izlenmeli ve anormal durumlar tespit edildiğinde müdahale edilmelidir.

ICMP Saldırıları

ICMP (Internet Control Message Protocol), IP ağı üzerinde hata bildirimi, ağ yönlendirme bilgileri ve diğer ağ yönetimi işlevlerini gerçekleştirmek için kullanılan bir iletişim protokolüdür. ICMP saldırıları, bu protokolü kötü niyetli amaçlarla kullanarak bir hizmeti veya ağı etkisiz hale getirmeyi amaçlar. Aşağıda, yaygın ICMP saldırılarının bazıları ve açıklamaları verilmiştir:

Ping Saldırıları (Ping Flood)

Saldırganlar, hedef sunucuya büyük miktarda ICMP Echo Request (ping) isteği gönderirler. Bu istekler, hedef sunucunun yanıtlamasını gerektirir ve sunucunun kaynaklarını tüketebilir.

Wireshark ile ağ trafiğini incelediğimizde çok sayıda ICMP echo request paketi görüyoruz. Bu istekler tek bir kaynaktan gelmiş.

Ping Flood

Smurf Saldırıları

Bu tür saldırılarda, saldırganlar sahte kaynak IP adresleri kullanarak büyük miktarda ICMP Echo Request isteği gönderirler. Bu istekler, ağdaki tüm cihazlara iletilir ve tüm cihazlar yanıt verir, bu da hedef sunucunun aşırı yüklenmesine neden olur.

Wireshark ile ağ trafiğini incelediğimizde çok sayıda ICMP echo request paketi görüyoruz. Bu istekler manipüle edilmiş kaynaklardan gelmiş görünüyor.

Smurf Attack

ICMP Redirect Saldırıları

Saldırganlar, hedef ağdaki cihazları sahte ICMP Redirect istekleriyle yanıltmaya çalışır. Bu, ağ trafiğini kötü amaçlı bir sunucuya yönlendirmek için kullanılabilir.

ICMP Time Exceeded Saldırıları

Bu tür saldırılarda, saldırganlar ICMP Time Exceeded mesajları göndererek hedef sunucunun kaynaklarını tüketmeye çalışır. Bu mesajlar, ICMP trafiği tarafından oluşturulan trafiği artırabilir.

ICMP saldırıları, hedef ağı veya sunucuyu aşırı yükleyerek hizmet kesintilerine neden olabilir. Bu tür saldırılara karşı korunma, güvenlik duvarları, IPS (Intrusion Prevention System), ICMP trafiği filtreleme ve sızma testleri gibi güvenlik önlemlerini içerebilir. Ayrıca, ağ yöneticilerinin ağ trafiğini izlemesi ve anormal aktiviteyi tespit etmesi önemlidir.

HTTP/HTTPS Saldırıları

HTTP ve HTTPS hizmet engelleme (DoS â€" Denial of Service) saldırıları, web sunucularını veya web uygulamalarını hedef alarak bu hizmetlere erişimi engellemeyi amaçlar. Bu tür saldırılar, sunucuların aşırı yüklenmesine ve hizmet kesintilerine neden olabilir. İşte HTTP ve HTTPS hizmetlerine yönelik bazı hizmet engelleme saldırıları:

HTTP Flood Saldırıları

Saldırganlar, hedef web sunucusuna çok sayıda HTTP isteği gönderirler. Bu, sunucunun kaynaklarını tüketebilir ve hizmet verememesine neden olabilir.

Bu saldırının gerçekleştirilmesi için python dili ile yazılmış bir araç buldum. Linki burada. Kendi lokalimde kurduğum bir web sunucusuna HTTP flood saldırısı gerçekleştirdim.

Wireshark ile trafiği incelediğimizde çok kısa aralıklarla çok sayıda HTTP GET paketi gittiğini görüyoruz.

HTTP GET Flood

Slowloris Saldırıları

Saldırganlar, web sunucusu ile yavaş bir bağlantı kurarlar ve bu bağlantıyı açık tutarlar. Bu, sunucunun yeni bağlantılara yanıt vermesini engelleyebilir.

SSL/TLS Handshake Saldırıları

Saldırganlar, SSL/TLS el sıkışma süreçlerini aşırı yükleyerek sunucuların kaynaklarını tüketebilirler. Bunun için hedef web sunucusunun HTTPS protokolünü kullanması ve SSL sertifikasının olması gerekir.

BEAST (Browser Exploit Against SSL/TLS) Saldırıları

Bu tür saldırılarda, saldırganlar önceden şifrelenmiş verileri çözmeye çalışarak güvenli bağlantıları etkileyebilirler. Bunun için hedef web sunucusunun HTTPS protokolünü kullanması ve SSL sertifikasının olması gerekir.

Heartbleed Saldırıları

Heartbleed zafiyeti, SSL/TLS sunucularını hedef alan bir saldırı türüdür. Saldırganlar sunucudan hassas bilgileri çalabilirler. Aynı şekilde bu saldırı için hedef web sunucusunun HTTPS protokolünü kullanması ve SSL sertifikasının olması gerekir.

Hizmet engelleme saldırılarına karşı korunma yöntemleri, trafik filtreleme, güvenlik duvarları, yük dengeleme, CDN (Content Delivery Network) kullanımı ve hizmet izleme gibi güvenlik önlemlerini içerebilir. Ayrıca, güncel yazılım yamaları ve güvenlik politikalarının uygulanması da önemlidir.

DNS Saldırıları

DNS (Domain Name System), internet üzerindeki alan adlarını (örneğin, www.example.com) IP adreslerine (örneğin, 192.0.2.1) çeviren ve bu çevirme işlemini sağlayan bir hizmet ve protokoldür. DNS, insanlar için anlaşılabilir olan alan adlarını, bilgisayarlar için anlaşılabilir olan IP adreslerine çevirir. Bu, internet tarayıcıları gibi uygulamaların kullanıcıların girdiği alan adlarını gerçek IP adreslerine dönüştürmesine olanak tanır.

DNS

DNS hizmet engelleme saldırıları, bu hizmetin çalışmasını aksatmayı veya kesmeyi amaçlayan siber saldırılardır. DNS hizmetlerine yönelik yapılan hizmet engelleme saldırıları şunlar olabilir:

DNS Flood Saldırıları

Saldırganlar, hedef DNS sunucusuna çok sayıda sahte DNS sorgusu gönderirler. Bu sorguları işlemek için sunucunun kaynakları hızla tükenir ve DNS hizmeti kesilir.

DNS Amplifikasyon Saldırıları

Saldırganlar, DNS sunucusuna büyük boyutlu sorgular gönderirler, bu sorgular DNS sunucusundan daha büyük yanıtları tetikler. Yanıtlar, hedef sunucuya doğru yönlendirilir ve hedef sunucunun aşırı yüklenmesine neden olur.

DNS Cache Poisoning (Zehirleme) Saldırıları

Saldırganlar, hedef DNS sunucusunun önbelleğine sahte veri eklemeye çalışırlar. Bu, hedefin kullanıcılarına yanlış IP adresleri göndererek kullanıcıları yanıltabilir.

NXDOMAIN Saldırıları

Saldırganlar, hedef sunucunun yanıt verdiği sahte NXDOMAIN (Domain Bulunamadı) sorguları göndererek hedefin kaynaklarını tüketirler.

DNS hizmet engelleme saldırıları, internet erişimini kesmek veya web sitelerini kullanılamaz hale getirmek gibi ciddi sonuçlara yol açabilir. Bu tür saldırılara karşı korunma, DNS sunucularının güvenlik ayarlarının iyileştirilmesi, trafiği izleme ve filtreleme, DNS güvenlik uzantılarının kullanılması ve yedek DNS sunucularının bulundurulması gibi önlemleri içerebilir. DNS sunucularının ve altyapının güncel ve güvende olduğundan emin olmak da önemlidir.

Macof Saldırısı

MACOF (MAC Flooding) saldırısı, Ethernet ağlarında gerçekleştirilen bir ağ saldırısı türüdür. Bu saldırı, ağdaki cihazların MAC (Media Access Control) adreslerini kötü niyetli bir şekilde sızdırmak veya ağ performansını bozmak amacıyla gerçekleştirilir. MACOF, genellikle yerel ağlarda veya kablosuz ağlarda gerçekleştirilir. Saldırının çalışma şekli şu şekildedir:

  1. Saldırgan, ağa bağlı bir cihaz gibi davranarak çok sayıda rastgele MAC adresi oluşturur.
  2. Bu sahte MAC adresleri, ağdaki tüm cihazlara yönlendirilen Ethernet çerçeveleri (frames) içerisinde kullanılır. Saldırgan, bu sahte MAC adresleriyle normal ağ trafiği gibi veri paketleri gönderir.
  3. Ağdaki anahtarlayıcılar (switches) normalde bir MAC adresi ve bağlı olduğu bağlantı noktası arasındaki ilişkiyi öğrenir ve bu bilgiyi bir öğrenme tablosuna kaydederler. Ancak, saldırgan sahte MAC adresleriyle bu tabloyu hızla doldurarak anahtarlayıcıları aşırı yükler.
  4. Aşırı yüklenen anahtarlayıcılar, veri paketlerini tüm bağlantı noktalarına iletir, bu da ağ trafiğini yavaşlatır veya kesintilere neden olabilir.

MACOF saldırısı, anahtarlayıcıların normal işlevini bozarak ağı etkisiz hale getirmeyi amaçlar. Bu tür bir saldırıya karşı korunma, güvenlik duvarları ve güvenlik politikaları ile ağ trafiğini izleme ve anormal trafiği tespit etme gibi önlemler içerebilir. Ayrıca, ağdaki anahtarlayıcıların güvenlik ayarlarının doğru bir şekilde yapılandırılması önemlidir.

Kaynaklar

SampleCaptures
*So you're at home tonight, having just installed Wireshark. You want to take the program for a test drive. But your…*wiki.wireshark.org

Build software better, together
*GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to…*github.com

TCP/IP Model Wireshark Analizi

Merhaba bu yazımda TCP/IP modelini ve Wireshark ile temel bir ağ analizinin nasıl yapılabileceğini anlatmaya çalıştım.

Ağ Trafik Akışlarını Anlama

Switching (anahtarlama)

Anahtarlar paketleri MAC başlığında (Ethernet başlığı gibi) bulunan hedef MAC adresine (hedef donanım adresi, fiziksel adresi olarak da bilinir) göre iletir.

Switchler paketlerdeki MAC veya IP adreslerini değiştirmez

Bir paket bir anahtara ulaştığında, anahtar doğru sağlama toplamına (checksum) sahip olduğundan emin olmak için paketi kontrol eder. Paketin sağlama toplamı yanlışsa, paket "bad" olarak kabul edilir ve paket atılır. Anahtarlar, kötü sağlama toplamları nedeniyle kaç paketi attıklarını gösteren hata sayaçları tutmalıdır. Sağlama toplamı doğruysa, anahtar paketin hedef MAC adresini inceler ve bu MAC adresini kullanan ana bilgisayara hangi anahtar bağlantı noktasının gittiğini bilip bilmediğini belirlemek için MAC adresi tablosuna başvurur. Anahtarın tablolarında hedef MAC adresi yoksa, paketi tüm anahtar bağlantı noktalarından( portlardan) iletir cevap veren hedefi keşfetmeyi umar. Bu işlem ARP protokolü ile gerçekleştirilir.Anahtarın tablolarında hedef MAC adresi varsa, paketi uygun bağlantı noktasına iletir .

Routing (yönlendirme)

Yönlendiriciler paketleri IP başlığındaki hedef IP adresine göre iletir. Bir paket yönlendiriciye gönderildiğinde Yönlendiricinin MAC adresi, bu yönlendirici paketin geçerli olduğundan emin olmak için sağlama toplamını(checksum) inceler. Sağlama toplamı geçersizse paket düşürülür. Sağlama toplamı geçerliyse, yönlendirici MAC başlığını çıkarır (örneğin Ethernet başlığı) ve IP başlığını inceleyerek "TTL" (Time to Live) ve hedefini belirler. paketi. Eğer paket çok "eski" ise (Time to Live değeri 1), yönlendirici paketi atar ve bir ICMP Yaşam Süresi Aşıldı mesajı göndericiye geri gönderilir. Paket eski değilse(TTL süresi Aşılmadıysa), yönlendirici hedef IP ağının bilinip bilinmediğini belirlemek için yönlendirme tablolarına bakar. Yönlendirici hedef ağa doğrudan bağlıysa, paketi hedefe gönderebilir. Yönlendirici, IP başlığı Time to Live değerini azaltır ve ardından paketi iletmeden önce pakete yeni bir MAC başlığı oluşturur ve uygular

Yönlendiriciler hedef MAC adresini hedefe veya bir sonraki yönlendiriciye değiştirir

Hedef yerel olarak bağlı bir ağda değilse, yönlendirici paketi yönlendirme tablolarına bakarken öğrendiği sonraki atlama yönlendiricisine iletir.

Yönlendiriciler, adresleme bilgilerine dayalı olarak paketleri engelleyen veya izin veren kurallar içerebilir. Birçok yönlendirici güvenlik duvarı özellikleri sağlar ve diğer özelliklere göre trafiği engelleyebilir/izin verebilir.

Proxy, Firewall and NAT/PAT

Güvenlik duvarları trafiği incelemek ve bir dizi kurala dayalı olarak letişime izin vermek/vermemek için oluşturulur. Örneğin, güvenlik duvarı dışındaki ana bilgisayarlardan gelen ve dahili sunuculardaki 21 numaralı porta yönlendirilen tüm TCP bağlantı girişimlerini engellemek isteyebilirsiniz.

Temel güvenlik duvarları OSI modelinin 3. Katmanında, yani ağ katmanında çalışır. Bu kapasitede, güvenlik duvarı ağ trafiğini işlerken bir yönlendirici gibi davranır ve güvenlik duvarı kuralları tarafından engellenmeyen trafiği iletir. Güvenlik duvarı, paketi iletmeden önce pakete yeni bir MAC başlığı ekler. Güvenlik duvarı Ağ Adresi Çevirisi(NAT) veya proxy yetenekleri gibi ek özellikleri destekliyorsa, ek paket değişikliği gerçekleşecektir.

Güvenlik duvarı gerçek kaynak IP adresini gizlemek için NAT kullanır

NAT sistemleri paketteki IP adreslerini Şekilde gösterildiği gibi değiştirir. Bu genellikle istemcinin özel IP adresini gizlemek için kullanılır. Temel bir NAT sistemi basitçe paketin kaynak ve hedef IP adresini değiştirir ve bir yanıt alındığında trafiği düzgün bir şekilde iletmek için bağlantı ilişkilerini bir tabloda izler.

Port Address Translation (PAT) sistemleri de port bilgilerini değiştirir ve bunu tek bir giden adres kullanırken birden fazla dahili bağlantıyı demultiplex etmek için bir yöntem olarak kullanır. Bir NAT/PAT cihazının bir tarafında gördüğünüz IP adresleri NAT/PAT cihazının diğer tarafında gördüğünüz IP adresleriyle eşleşmeyecektir. Bir NAT cihazının her iki tarafındaki iletişimleri ilişkilendirmek için, eşleşen paketleri tanımlamak üzere IP başlığının ötesine bakmanız gerekecektir.

Diğer Teknolojiler

Ağ trafiği modellerini ve paket içeriklerini etkileyen çok sayıda başka teknoloji vardır.

Sanal LAN (VLAN) etiketleme (802.1Q olarak tanımlanır) paketlere bir kimlik (etiket) ekler. Bu etiket, anahtarlamalı bir ortamda sanal ağlar oluşturmak için kullanılır. Şekil 7'de bir Ethernet çerçevesindeki VLAN etiketi gösterilmektedir. Bu durumda, gönderici VLAN 32'ye aittir.

Multiprotocol Label Switching (MPLS), uzak ana bilgisayarlar arasında sanal bağlantılar oluşturmanın bir yöntemidir. MPLS paketlerinin önüne MPLS kenar cihazları tarafından özel bir başlık eklenir. Örneğin, bir istemciden gönderilen bir paket, MPLS etiketinin pakete yerleştirildiği bir MPLS yönlendiricisine ulaşır. Paket artık yönlendirme tablosu aramalarına göre değil, MPLS etiketine göre iletilir. Paket MPLS ağından çıktığında MPLS etiketi çıkarılır.

TCP/IP Modeli

TCP/IP Modelinin ve OSI Modelinin yanında temel TCP/IP öğelerini göstermektedir. TCP/IP öğeleri TCP/IP Modeli ile güzel bir şekilde eşleşmesine rağmen, OSI Modeli hala sektörümüzde sürekli olarak anılmaktadır. "Katman 2" cihazları (anahtarlar) ve "Katman 3" cihazları (yönlendiriciler) TCP/IP Modeline göre değil OSI Modeline göre sayısal tanımlama alırlar.

TCP/IP Modeli ve OSI Modeli ile birlikte TCP/IP öğeleri

Birçok ağ hatası veya ihlali TCP/IP protokolü veya uygulama sorunlarına bağlanabilir. Bu sorunları tanımak için normal davranışın ne olduğunu bilmemiz gerekir. TCP/IP yapısında sık kullanılan protokeller şunlardır:

  • İnternet Protokolü (IPv4/IPv6), paketleri bir ağ üzerinde uçtan uca almak için kullanılan yönlendirilebilir ağ katmanı protokolü olarak işlev görür. Yönlendiriciler, yönlendirme kararları vermek için IP başlığında bulunan bilgileri kullanır. Katman 3 anahtarları da trafiği yönlendirebilir.
  • Kullanıcı Datagram Protokolü (UDP) ve İletim Kontrol Protokolü (TCP) sırasıyla bağlantısız ve bağlantı yönelimli taşıma katmanı hizmetleri sağlar. UDP ve TCP başlıklarındaki bağlantı noktası alanları kullanılan uygulamayı tanımlar. TCP başlıkları, sıralama ve onaylama hizmetleri de sunan alanlar içerir. UDP ve TCP, OSI Modelinin 4. Katmanı (Aktarım Katmanı) ile eşleştirilmiştir.
  • Yönlendirme Bilgi Protokolü (RIP) ve Open Shortest Path First (OSPF), yönlendirme cihazları arasında ağ ve yol bilgisi alışverişi sağlayan iki protokol örneğidir.
  • İnternet Kontrol Mesajı Protokolü (ICMP/ICMPv6) ağ bilgisi sağlamak için kullanılır ve genellikle ping için kullanılan protokol olarak tanınır. ICMPv6, bir IPv6 adresinin zaten kullanımda olup olmadığını kontrol etmek ve görmek için kullanılır (yinelenen adres algılama).
  • Etki Alanı Adı Sistemi (DNS) ana bilgisayar adından IP adresine çözümleme hizmetleri sağlar. telnet station3 yazdığınızda, DNS station3 adını IP adresine çözümler. Diğer ad öğeleri de (Posta Değişimi veya MX kayıtları gibi) DNS ile çözümlenebilir.
  • Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP), yalnızca IP adresi bilgisi değil, dinamik istemci yapılandırması ve hizmet bulma hizmetleri sağlar. DHCP ayrıca varsayılan ağ geçidi ayarları, DNS sunucu ayarları ve daha fazlasını da sağlayabilir.
  • Adres Çözümleme Protokolü (ARP) yerel bir cihaz için donanım adresi arama hizmetleri sağlar. ARP ayrıca bir IPv4 adresinin zaten kullanımda olup olmadığını kontrol etmemizi ve görmemizi sağlar (yinelenen adres testi).

TCP/IP iletişiminde her şey yolunda giderse, istemciler hizmetleri hızlı bir şekilde bulur. Bu hizmetler taleplere hızla yanıt verir ve istemci sistemlerin bir hizmeti birden fazla kez talep etmesi gerekmez. Bir analist, iletişimler arasındaki büyük gecikmeleri, isim çözümleme hatalarını, yinelenen istekleri ve yeniden iletimleri, güvensiz uygulamaları ve çok daha fazlasını ortaya çıkarabilir. Hataları belirlemek için trafiği analiz etmeden önce, neyin normal ağ iletişimi olarak kabul edildiğini bilmeniz gerekir.

İstemci â€" FTP Sunucu Senrayosu

TCP/IP, bir istemci bir sunucuyla iletişim kurarken çok adımlı bir çözümleme süreci kullanır. Örneğimizde, hem istemci hem de sunucu aynı ağ üzerindedir. Bu süreç aşağıdaki adımları içerir:

  • Uygulama tarafından kullanılan kaynak ve hedef portları tanımlayın (port numarası çözümlemesi).
  • Gerekirse hedef adını bir IP adresine çözümleyin (ağ adı çözümlemesi).
  • Hedef yerel ağ üzerindeyse, hedefin donanım adresini elde edin (yerel MAC adresi çözümlemesi).
  • Hedef uzaksa, hedefe ulaşmak için kullanılacak en iyi yönlendiriciyi belirleyin (rota çözümlemesi).
  • Hedef uzaksa, yönlendiricinin MAC adresini belirleyin (tekrar yerel MAC adresi çözümlemesi).

TCP/IP çözümleme süreçleri

Örneğimizde bir istemci ile FTP Sunucu arasında yapılan bağlantıyı ele alacağız.

İstemci CORPFS1'e bir FTP bağlantısı yapmak istiyor

Adım 1: Port Numarası Çözümleme

Örneğimizde, kullanıcı ftp CORPFS1 yazmıştır. FTP genellikle veri aktarımı için 20 numaralı bağlantı noktasını veya dinamik bir bağlantı noktasını, oturum açma ve parola gönderme işlevleri, USER ve PASS gibi komutlar için 21 numaralı bağlantı noktasını kullanır. Örneğimizde, istemci 21 numaralı bağlantı noktasını kullanarak FTP sunucusuna bağlanmaya çalışıyor. Bu port numarası istemcideki etc/services dosyasında bulunmaktadır. Bu numara giden paketin TCP başlığı hedef port alanına yerleştirilecektir. İstemci, kaynak bağlantı noktası alan değeri için dinamik (geçici) bir bağlantı noktası kullanır. Bu işlem ağ üzerinde trafik oluşturmaz. Dolayısıyla izleme dosyası(trace file) da bir bilgi göremeyiz.

Adım 2: Ağ Adı Çözümlemesi (İsteğe Bağlı)

İstemci tarafından açık bir hedef IP adresi tanımlanmışsa, ağ adı çözümleme işlemi gerekli değildir. İstemci bir hedef ana bilgisayar adı tanımlamışsa (örneğimizde CORPFS1), hedef ana bilgisayarın IP adresini elde etmek için ağ adı çözümleme işlemi gereklidir.

Ad çözümleme(name resolution) işlemini gerçekleştirirken belirli bir sırayı izlemeniz gerekir:

  1. Ad için DNS çözümleyici önbelleğine bakın.
  2. Giriş DNS çözümleyici önbelleğinde yoksa, yerel hosts dosyasını inceleyin (varsa).
  3. Yerel hosts dosyası yoksa veya istenen ad/adres hosts dosyasında yoksa, DNS sunucusuna istek gönderin (yerel sistem için bir tane yapılandırılmışsa).

Yapılandırılmış DNS sunucu listesindeki ilk DNS sunucusundan yanıt alınamazsa, istemci sorguyu yeniden deneyebilir ilk DNS sunucusuna yönlendirin veya bilinen bir sonraki DNS sunucusunu sorgulayın. Hala cevap yok mu? Bilinen başka DNS sunucusu yok mu? İstemci, hedef IP adresi alanına yerleştirilecek değeri çözemezse paketi oluşturamaz.

Örneğimizde, istemcinin yerel yapılandırmasında listelenen ilk DNS sunucusuna bir DNS sorgusu gönderdiğini görebiliriz. (Her şey yolunda giderse) bir DNS sunucusundan CORPFS1'in IP adresini içeren bir yanıt görmeliyiz.

Bu işlem, Şekil 181'de TX ile gösterildiği gibi ağ üzerinde trafik oluşturabilir. İsim çözümlemesi yerel hosts dosyasını kullanırsa veya istenen bilgiyi önbellekten alırsa, hiçbir paket gönderilmez. Bir DNS sorgusu gönderilmesi gerekiyorsa, bu sorgu izleme dosyasında görülecektir.

Adım 3: Rota Çözümlemesi-Hedef Yerel Olduğunda

Bu işlem sırasında istemci, hedef cihazın yerel (aynı ağ üzerinde) veya uzak (bir yönlendiricinin diğer tarafında) olup olmadığını belirler. İstemci, bir hedefin aynı ağda olup olmadığını belirlemek için kendi ağ adresini hedef ağ adresiyle karşılaştırır. Şekil 180'de gösterilen örnekte, istemcinin IP adresi 10.1.0.1/8'dir (ağ 10). Sunucunun IP adresi 10.2.99.99'dur. Hedef de ağ 10 üzerindedir.

İstemcinin IP adresine ve alt ağ maskesine bağlı olarak olası sonuçları göz önünde bulundurun.

  • Alt ağ maskesi 255.0.0.0 olan 10.1.22.4 kaynak adresi = CORPFS1 yereldir (4. adıma gidin)
  • Alt ağ maskesi 255.255.0.0 ile 10.1.22.4 kaynak adresi = CORPFS1 uzaktır (adım 5'e gidin)
  • Alt ağ maskesi 255.255.0.0 olan 10.2.22.4 kaynak adresi = CORPFS1 yereldir (adım 4'e gidin)

Bu süreç ağ üzerinde trafik oluşturmaz.

Adım 4: Yerel MAC Adresi Çözümlemesi

Hedef cihaz yerelse, istemci yerel hedefin MAC adresini çözümlemelidir. İstemci önce ARP önbelleğini bu bilgi için kontrol eder Eğer bu bilgi yoksa, istemci hedefin donanım adresini bulmak için bir ARP yayını gönderir. Bir ARP yanıtı alındığında, istemci ARP önbelleğini günceller.

Bu işlem, TX ile belirtildiği gibi ağ üzerinde trafik oluşturabilir. MAC adresi önbellekteyse, hiçbir paket gönderilmeyecektir. Bir ARP sorgusu gönderilmesi gerekiyorsa, bu sorgu izleme dosyasında görülecektir.

Adım 5: Rota Çözümlemesi-Hedef Uzak Olduğunda

Hedef cihaz uzaksa, istemci uygun nexthop yönlendiriciyi belirlemek için rota çözümlemesi yapmalıdır. İstemci, hedef için bir ana bilgisayar veya ağ yolu girişi olup olmadığını belirlemek için yerel yönlendirme tablolarına bakar. Hiçbir giriş yoksa, istemci varsayılan bir ağ geçidi girişi olup olmadığını kontrol eder. Bu işlem ağ üzerinde trafik oluşturmaz.

Varsayılan ağ geçidi(Default Gateway) bir "kör inanç" yolu sunar â€" istemcinin hedefe giden bir rotası olmadığından, paketi varsayılan ağ geçidine gönderir ve varsayılan ağ geçidinin paketle ne yapacağını bulabileceğini umar.

Varsayılan ağ geçitleri genellikle ya paketi iletir (hedefe giden en iyi rotaya sahiplerse), hedefe giden en iyi rotaya sahip başka bir yerel yönlendiriciye işaret eden bir ICMP yeniden yönlendirme yanıtı gönderir ya da paketi nereye gönderecekleri konusunda hiçbir fikirleri olmadığını belirten bir yanıt verir (ICMP Destination Unreachable).

Adım 6: Bir Ağ Geçidi için Yerel MAC Adresi Çözümlemesi

Son olarak, istemci bir sonraki atlama yönlendiricisinin veya varsayılan ağ geçidinin MAC adresini çözmelidir. İstemci önce ARP önbelleğini kontrol eder. Bilgi önbellekte yoksa, istemci bilgiyi almak için bir ARP yayını gönderir.
Sonraki yönlendiricinin MAC adresi ve ARP önbelleğini günceller.
Bu işlem, TX ile belirtildiği gibi ağ üzerinde trafik oluşturabilir. İstenen bir yönlendiricinin MAC adresi önbellekte ise, hiçbir paket gönderilmeyecektir. İstenen yönlendirici için bir ARP sorgusu gönderilmesi gerekiyorsa, bu sorgu izleme dosyasında(trace file) görülecektir.

Paket Analizi

Her şey yolunda giderse (ve bu durumda hedef yerelse), bu işlem sırasında aşağıdaki bilgileri çözmüş olmamız gerekir:

  • Hedef MAC adresi
  • Hedef IP adresi
  • Kaynak ve hedef bağlantı noktası numaraları

Ethernet üzerinden TCP/IP paketi için keşfedilen bilgiler

TCP/IP Trafik Analizi

Bu kısımda, http-riverbed-one.pcapng ve http-riverbed-two.pcapng dosyasını inceleyeceğiz. Kaynakça bölümünden erişebilirsiniz.

Bu iki dosya www.riverbed.com adresine 89 saniye aralıkla erişim sağlayan bir istemciye aittir.

http-riverbed-one.pcapng dosyasında doğal olarak başta DNS sorgularının olduğunu görüyoruz. İstemcinin paketleri oluşturması için domaini çözümlemesi ve hedef IP bilgisini elde etmesi gerekir.

http-riverbed-one.pcapng dosyasında domain çözümlemesi için yapılan DNS sorguları

http-riverbed-two.pcapng dosyasına başlangıçta DNS sorgularının olmadığını fark ediyoruz. Bu, istemcinin istenen IP adreslerinden bazılarına DNS önbelleğinde sahip olduğunu, dolayısıyla bu isimler için DNS sorgusu oluşturmaya gerek olmadığını gösterir.

http-riverbed-two.pcapng dosyasında DNS sorguları görünmüyor.

http-riverbed-one.pcapng dosyasındaki DNS yanıtlarının çoğu, istemcinin ad çözümleme bilgilerini önbellekte kısa bir süre için tutmuş yeniden DNS sorgusu göndermemiştir.

Ancak oturum süresinin aşılması tarayıcımızın bu adları yeniden çözümlemek için DNS sorguları gönderdiğini http-riverbed-two.pcapng dosyasında görebiliriz.

http-riverbed-two.pcapng dosyasında yenilenen DNS çözümlemeleri

Ayrıca http-riverbed-two.pcapng dosyasındaki toplam paket sayısının sadece 319 olduğunu fark edeceksiniz. Tarayıcı, DNS bilgilerinin bir kısmını önbellekten almanın yanı sıra çok sayıda sayfa öğesini de önbellekten görüntülemiştir.

http-riverbed-one.pcapng dosyasında protokol istatistiklerine baktığımızda (Statistic | Protocol hierarchy) trafiğin büyük oranda TCP kullandığını görürüz. Çünkü HTTP protokolü TCP'yi kullanır. UDP trafiğine baktığımızda ise Domain Name System(DNS) protokolünün kullandığını görürüz.

http-riverbed-one.pcapng Protokol İstatistikleri

http-riverbed-one.pcapng dosyasındaki dominant trafiği görmek için Statistic| Conversations penceresini açabiliriz. Burda IPv4 sekmesini açtığımızda paketlere göre sıralama yaparsak dominant trafiğin hostlar arasında giden 1140 paketle 24.61.173.220 ile 208.70.196.59 IPleri arasında olduğunu söyleyebiliriz.

conversations

http-riverbed-one.pcapng dosyasında Statistic| Endpoints penceresinde trafikte geçen IP adreslerini görebiliriz. Buradai IP adreslerinnin hepi public IP adresi gibi görünüyor. Dolayısıyla trafik dış bir networkde yakalanmış diyebiliriz.

endpoints

http-riverbed-one.pcapng dosyasında Statistic| HTTP| Requests penceresinde pcap dosyası içerisinde gidilen web adreslerini görüntüleyebiliriz.

Requests

http-riverbed-one.pcapng dosyasında 
ip.addr == 24.6.173.220 && ip.addr == 208.70.196.59 
fltresini yazarak daha önce bulduğumuz dominant trafiği inceleyelim.

Dominant Trafik

HTTP paketinin üzerine tıklayıp follow HTTP Stream seçeneğini seçersek tüm HTTP trafiğini görüntüleyebiliriz.

Follow HTTP Stream

Karşımıza uzun bir akış çıkıyor. Burada www.riverbed.com adresine giden-gelen trafiği bulmuş olmuş. Bu adresle kurulan HTTP bağlantılarını request (kırmızı yazı) ve response (mavi yazı) olarak görebiliriz.

www.riverbed.com HTTP Stream

Kaynakça

DNS Wireshark Analizi

Merhaba bu yazımda Domain Name System(DNS) protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

DNS Nasıl Çalışır?

DNS, www.wiresharktraining.com gibi sembolik ana bilgisayar adlarını IP adreslerine dönüştürmek için kullanılır. DNS ayrıca ad bilgilerini DNS sunucuları arasında aktarmak, bir IP adresiyle ilişkili ana bilgisayar adını belirlemek (ters veya işaretçi sorgusu) ve MX (posta alışverişi) kaydı gibi diğer ad öğelerini aramak için de kullanılabilir.

DNS ağ üzerindeki en önemli uygulamalardan biridir. Bir DNS sorunu, bilgisayarların hostname bilgilerini kullanırken birbirlerini bulmalarını engelleyecektir.

DNS paketi

DNS UDP veya TCP üzerinden çalışabilir. Yaygın olarak UDP kullanan DNS sorguları ve yanıtları görürsünüz. Bölge aktarımları TCP üzerinden çalışır. DNS için varsayılan port numarası 53dür.

RFC 1035, Domain Names â€" Implementation and Specification, UDP paket yükü üzerinden DNS'yi 512 bayt ile sınırlar. Bu genellikle bir DNS sorgusu için yeterlidir. Ancak bir yanıt 512 bayttan fazla alan gerektirdiğinde, yanıtta bir kesme bayrağı biti gönderilir. Bu, çözümleyicinin DNS sorgusunu daha büyük bir paket boyutuna izin veren TCP kullanarak tekrar göndermesini tetikler.

RFC 2671, DNS için Uzatma Mekanizmaları (EDNS0), UDP üzerinden 512 bayttan daha fazlasına izin verir.

DNS Query/Response Analizi

Domain çözümlemesi DNS sorgu ve yanıt işlemleri çok basittir. Bir istemci DNS sunucusuna bir DNS sorgusu göndererek genellikle bir domain karşılığında bir IP adresi ister. DNS sunucusu ya doğrudan sahip olduğu bilgilerle yanıt verir ya da istemciler adına diğer DNS sunucularına sorar.

A kaydı DNS Sorgusu

Şekilde www.winpcap.org için A kaydına (CNAME) yönelik standart bir DNS isteğini göstermektedir. Bu DNS sorgusu, kullanıcının domaini tarayıcı URL bölümüne girip Enter tuşuna bastığında otomatik olarak oluşturulmuştur.

Bir istemcinin talep ettiği ad, hedefin gerçek adı olmayabilir. Bu durumda, www.winpcap.org için bir canonical name(CNAME) veya gerçek ad döndürülmüştür. CNAME winpcap.orgdur ve bu ana bilgisayarın adresi 128.121.79.138'dür.

DNS Hataları Analizi

En yaygın DNS sorunu, bir adın ad namse server veritabanında bulunmaması nedeniyle oluşan hatadır. Bunun nedeni yanlış bir ad girilmesi veya henüz İnternet name serverlarına yayılmamış yeni bir name girilmesi olabilir.

Bulunamayan Domain Sorgusu

Şekilde bir kullanıcı 2.26.64.24.in-addr.arpa adresine erişmeye çalışmaktadır. Name Server böyle bir domain olmadığını belirterek yanıt verir. Kullanıcı domain çözümleyemezse, hedef adrese ulaşamaz.

Sunucu hatası yanıtları, name serverın bir hata nedeniyle istemci için bilgileri çözümleyemediğini gösterir. Bu, name serverın başka bir name servera bir sorgu göndermesi (özyinelemeli bir sorgu yoluyla) ve yanıt beklerken zaman aşımına uğraması veya bir tür dahili hata nedeniyle yanıtın anlaşılamaması veya bir sorguyla bağlantılı olmaması olabilir.

DNS Hataları Sonucu IP Çözümlemesi Yapılamıyor

Şekilde www.nmap.org adresine ulaşmaya çalışırken alınan sunucu hatası yanıtı gösterilmektedir. Bunun geçerli bir adres olduğunu biliyoruz, ancak DNS bunu çözümleyemiyor. Bir DNS sorunu nedeniyle siteye ulaşamıyoruz. Zaman sütununa dikkat edin; istemcinin bir DNS sorgusu gönderdiğini, ardından sorguyu yeniden göndermeden önce yanıt için 1 saniye beklediğini görebiliriz. İstemci üçüncü sorgudan önce 1 saniye daha beklemiş, ancak dördüncü DNS sorgusundan önce bu bekleme süresini iki katına çıkararak yaklaşık 2 saniyeye çıkarmıştır.

DNS sorunlarının nedenini bulmak için Wireshark'ı DNS sunucusunun yukarısına taşıyarak bu konumdaki arama işlemini izlemeniz gerekebilir.

ICMP cevabı hedefde 53 portuun açık oladığını belirtir.

Şekilde istemcimiz DNS sorguları göndermekte ve bu sorgular ICMP Destination Unreachable/Port Unreachable yanıtlarıyla yanıtlanarak 53 numaralı portun bu hostta açık olmadığını göstermektedir.

Bu durumda hatanın nerde olduğu, istemcinin DNS sunucusunun doğru IP adresine sahip olup olmadığına ya da DNS sunucusu servisinin istek atılan IP üzerinde çalışıyor olup olmadığına bağlıdır. Bu durumda, istemci tekrar dener â€" yapılandırılmış yalnızca bir DNS sunucusu vardır(genelde 2 tane olur), bu nedenle aramayı tekrar dener. Sunucu bu portun dinlemediğini belirttiği için istemcinin isteği yine reddedilir.

DNS Paket Yapısı

Tek bir transport protokolü (UDP veya TCP) kullanan diğer uygulamaların aksine, DNS hem UDP hem de TCP kullanır. DNS genellikle name resolution istekleri ve yanıtları için UDP-53'ü, zone transferleri ile daha büyük name resolutionlar ve yanıtları için TCP-53'ü kullanır.

www.winpcap.com adresine yapılan DNS name reqestleri

Tüm DNS paketleri Şekilde gösterildiği gibi dört ana bölümden oluşan tek bir temel yapı kullanır.

Transaction ID

İşlem Kimliği alanı, DNS sorgularını yanıtlarla ilişkilendirir. Bu alana ve değere filtre uygulayabilirsiniz (örneğin, dns.id==0x05b5) tüm ilişkili DNS sorgularını/yanıtlarını görüntülemek için.

Flags

Bayraklar baytı, sorgu özelliklerini tanımlayan çok sayıda alandan oluşur.

Query/Response

Sorgu/Yanıt biti paketin bir sorgu mu (0) yoksa bir yanıt mı (1) olduğunu gösterir. DNS sorgularını (dns.flags.response==0) veya yanıtlarını (dns.flags.response==1) görüntülemek için bir Wireshark filtresi oluşturabilirsiniz.

Opcode

Opcode alanı sorgu türünü belirtir. En yaygın olarak, bu alan standart sorgular için 0000 içerir ve yanıtlarda alan 0000 olarak bırakılır.

Authoritative Answer

Yanıtlarda kullanılan Yetkili Yanıt alanı, yanıtın alan adı için yetkili bir sunucudan geldiğini gösterir.

Truncation

Kesme alanı, DNS yanıtının uzunluk nedeniyle kesildiğini gösterir. Bir istemci kesilmiş bir DNS yanıtı görürse, sorguyu TCP üzerinden yeniden denemelidir. TCP tabanlı sorgular/yanıtlar görmek çok yaygın değildir.

Recursion Desired

Sunucunun özyinelemeli sorgu işlemlerini kullanıp kullanamayacağını belirtmek için DNS sorgularında özyineleme tanımlanabilir. Yineleme, bir DNS sunucusunun istemci adına başka bir sunucudan yanıt istemesine olanak tanır. Yerel ad sunucusu yanıta sahipse, doğrudan yanıt verecektir. Cevaba sahip değilse, istemci adına arama işlemine başlayacaktır.

Recursion Available

Yanıtlarda tanımlanan bu ayar, DNS sunucusunda yinelemenin kullanılabilir olup olmadığını belirtir.

Reserved

Bu alan 0 olarak ayarlanmıştır.

Rcode (Response Code)

Rcode alanı yanıtta bir hata durumu olup olmadığını gösterir. Aşağıdaki tabloda olası Rcode değerleri listelenmektedir.

  • Kod 0: Hata durumu yok.
  • Kod 1: Biçim hatası-sorgu yorumlanamadı.
  • Kod 2: Sunucu hatası-sunucu, ad sunucusundaki bir sorun nedeniyle sorguyu işleyemedi.
  • Kod 3: Ad hatası-alan adı mevcut değil.
  • Kod 4: Uygulanmadı.
  • Kod 5: Reddedildi-ad sunucusu ilke nedeniyle işlevi gerçekleştirmeyi reddediyor.

Question Count

Bu alan Soru bölümündeki soru sayısını gösterir. Genellikle sorgu paketi başına yalnızca bir soru görürsünüz.

Answer Resource Record (RR) Count

Bu alan, Yanıt RR'leri bölümündeki yanıtların sayısını gösterir. Bir yanıt CNAME bilgisi içeriyorsa, Yanıt RR Sayısı alanında muhtemelen iki sayı göreceksiniz â€" biri CNAME için diğeri CNAME kaydının IP adresi için.

Authority RRs Count

Bu alan Yetki RR'leri bölümündeki yanıtların sayısını gösterir. Bu yanıtlar, adlandırma hiyerarşisinde hedef ada daha yakın olan sunuculardan gelir.

Additional RRs Count

Bu alan, Ek RR'ler bölümündeki yanıt sayısını gösterir. Bu bölümde, Yetki RR bölümündeki sunucular için A kayıtları bulabilirsiniz.

Queries

Bu değişken uzunluktaki alan, çözümlenmekte olan adı ve istenen bilgi türünü tanımlar.

Name

Bu alan çözümlenmekte olan adı içerir. Biçim, addaki alfanümerik bayt sayısını belirtmek için sayısal bir sınırlayıcı kullanan değişken uzunluktadır. Aşağıda bazı örnekler verilmiştir:

  • 3www9wireshark3org0
  • 3www4iana3org0

Type

Bu alan sorgu türünü gösterir. Kayıtlı tip numaralarının tam listesi için www.iana.org/assignments/dns-parameters adresine bakın.

  • Type A: Host addres
  • Type NS: Authoritative name server
  • Type CNAME: Canonical name for an alias
  • Type SOA: Start of Zone Authority
  • Type PTR: Pointer record
  • Type HINFO: Host information
  • Type MX: Mail exchange
  • Type AAAA: IPv6 address

Class

Bu alan, TCP/IP iletişimleri için bir İnternet sınıfı adresini belirtmek üzere 1 olarak ayarlanır.

Answer RRs

Bu alan, Sorular alanındaki bu bölümle aynı formatı kullanır.

Authority RRs

Bu alan, Questions alanındaki bu bölümle aynı formatı kullanır.

Additional RRs

Bu alan, Questions alanındaki bu bölümle aynı formatı kullanır.

Resource Record Time to Live (TTL) Value

Bu alan DNS yanıtlarının Yanıt bölümünde yer alır ve alıcının DNS bilgilerini önbellekte ne kadar süre tutabileceğini gösterir. DNS'deki her yanıt, o DNS bilgisi için bir TTL değeri içerecektir.
RR bilgileriyle yanıt veren DNS sunucuları, kalan TTL değerini sürekli olarak geri sayar; aynı DNS sorgusunu on saniye arayla yapmak, sunulan TTL değerinde on saniyelik bir fark gösterecektir.

DNS/mDNS Trafiği Filtreleri

DNS trafiği için capture filter port numarasını temel alır çünkü tcpdump filtre biçimi dns protokolünü algılayamıyor. Libpcap ve WinPcap güncellendikçe bu durum değişebilir.

UDP veya TCP üzerinden standart DNS trafiği için yakalama filtresi 53 numaralı bağlantı noktası iken mDNS 5353 numaralı portu kullanır.

Görüntüleme filtresi sözdizimi basitçe dns'dir. Bu filtre hem DNS hem de mDNS trafiğini görüntüler. Aşağıda ek DNS görüntüleme filtreleri listelenmektedir.

  • dns.flags.response==0 : DNS query
  • dns.flags.response==1 : DNs response
  • dns.flags.rcode != 0 : Hata içeren DNS responselar
  • dns.count.answers > 5 : 5den fazla response içeren DNS responselar
  • dns.qry.name=="www.abc.com" : www.abc.com için DNS query
  • dns contains "abc" : "abc içeren" DNS query ya da responselar
  • dns.qry.type==0x0001 : Bir hostname için olan DNS sorguları.
  • dns.qry.type==0x000c : Bir alan adı işaretçisi sorgusu(inverse query) için DNS sorguları.
  • dns.resp.type==0x0005 : CNAME değeri içeren DNS responselar (canonical name)
  • dns.resp.type==0x0006 : SOA (Start of Authority) içeren DNS responselar
  • dns.flags.recdesired==1 : recursion desired olan DNS Queryleri
  • dns.flags.recavail==1 : recursion availabl ile başlayan DNS responselar

Daha fazla Display filter seçeneği Wireshark'ın şu adresteki Referansında bulunabilir www.wireshark.org/docs/dfref/d/dns.html.

Kaynakça

ARP Wireshark Analizi

Merhaba bu yazımda Address Resolution Protocol (ARP) protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

ARP Nasıl Çalışır?

ARP, bir donanım adresini(fiziksel adres, MAC adresi) yerel ağdaki bir IP adresiyle ilişkilendirmek ve yinelenen IPv4 adreslerini test etmek için kullanılır. ARP ne kadar basit olursa olsun, ağ adresleme veya yapılandırmalarla ilgili sorunları işaret eden protokol olabilir. ARP, RFC 826, Ethernet Adres Çözümleme Protokolü'nde tanımlanmıştır ve IPv6 iletişiminde kullanılmaz.

ARP Protokolü

**ARP protokolü sadece yerel ağda(internal network) kullanılabilir!**Bu nedenle ARP konuşmalarını analiz etmek için sizinde trafiğin aktığı yerel ağa bağlı olmanız gerekir.

ARP, MAC ve IP adres katmanları arasında adres çözümlemesi sunar

ARP paketleri, bir IP başlığı içermedikleri için TCP ağındaki trafiğin çoğuna kıyasla benzersizdir(internet katnanında çalışan bir protokol değildir). Bu özellik ARP paketlerinin yönlendirilemeyen(data-link katmanı protokolü olduğu için) paketler olduğu anlamına gelir.

ARP Requests/Responses Analizi

Normal ARP iletişimleri basit bir istek ve basit bir yanıttan oluşur. Bir host, hedef IP adresini içeren bir ARP yayını gönderir (ancak hedef MAC adresi yoktur â€" ARP MAC adresi çözümlemesi için kullanılır).

ARP isteği

Şekilde 00:23:54:69:8f:58 MAC adresine ve 24.6.170.101 IP adresine sahip bir host 24.6.168.1 için MAC adresini aramaktadır. Broadcast yayınlarda MAC adresi şekilde görüldüğü 00:00:00:00:00:00 olur. Bunun nedeni, switchlerin unicast trafikte paketleri hedef MAC adresine göre iletmesidir. 0lı MAC adresi broadcast iletimi tesmil eder.

ARP Yanıtı

Şekilde gösterilen yanıt paketi artık 24.6.168.1 gönderici IP adresini ve bu cihazın MAC adresini içerir. Gönderen ve hedef adreslerinin ARP isteklerinde ve yanıtlarında geçerli paket göndericisiyle ilişkilendirilir. Yani yanıt unicast olarak döner.

ARP Sorunlarının Analizi

Cevapsız ARP istekleri ağdaki başka bir hostun göndericiyle aynı IP adresine sahip olup olmadığını belirlemek için kullanılır. IP adreslerinin statik veya dinamik olarak atanmış olmasına bakılmaksızın tüm hostlara ARP istekleri gönderir. Cevap gelmemesi durumunda bu IP adresinin ağda kullanılmadığı ve boş olduğu tespit edilir. Wireshark cevapssız ARP paketlerini belirleyebilir.

ARP Duyurusu

Şekilde bir hostun ağdaki başka bir cihazın 24.6.170.101 IP adresini kullanıp kullanmadığını kontrol etmektedir.

ARP trafiğini inceliyor, ancak ARP yayınlarına yanıt göremiyorsanız 
(a) unicast yanıtlarını görebileceğiniz bir konuma bağlanmamış olabilir â€" veya 
(b) ARP yayını cevapsız bir ARP'dir ve yanıt alınamaması bir IP adresi çakışması olmadığını gösterir.

Yanlış Yapılandırmalar

Ağ adresleme sorunları da ARP sorunlarına neden olabilir.

Yanlış yapılandırılmış bir host subnet değerinden kaynaklanan bir ARP sorunu

Şekilde, İstemci A yanlış alt ağ maskesiyle yapılandırılmıştır. İstemci A, 10.2.99.99 adresindeki hedef Sunucu A'nın yerel mi yoksa uzak mı olduğunu belirlemek için çözümleme sürecinden geçtiğinde, İstemci A(client A) sunucunun yerel olduğunu belirler. İstemci A, sunucunun 10.0.0.0/8 ağında olduğuna inanır. İstemci A, sunucunun da 10.0.0.0/8 ağında bulunduğuna inanır. Bunun nedeni, İstemci A'nın alt ağ maskesinin 255.0.0.0 olarak ayarlanmış olmasıdır.

Proxy ARP

Proxy ARP'i destekleyen yönlendiriciler (RFC 1027, Using ARP to Implement Transparent Subnet Gateways'de tanımlanmıştır) diğer ağlardaki cihazlar adına yanıt verebilir. Proxy ARP kullanmanın, genel ARP trafiğindeki artış da dahil olmak üzere çok sayıda dezavantajı vardır.

ARP Zehirlemesi

ARP zehirleme trafiği de wireshark üzerinde benzersiz bir şekilde görünmektedir.

ARP Poisoning

Şekilde Wireshark mükerrer adres kullanımının gerçekleştiğini tespit etmiştir. 00:d0:59:aa:af:80 adresindeki bir hostun hem 192.168.1.103 hem de 192.168.1.1 adreslerine arp yanıtı gönderdiğini görebiliriz. Bu, ARP tabanlı MITM(Man-in-the-Middle) saldırısının ilk aşamasıdır.

ARP Paket Yapısı

İki temel ARP paketi vardır: ARP istek paketi ve ARP yanıt paketi. Her iki paket de aynı biçimi kullanır. ARP'ın en kafa karıştırıcı kısmı gönderici ve hedef adres bilgilerinin yorumlanmasıdır. Bir hosttan ARP yayını gönderildiğinde, gönderen host gönderen adresi alanlarına donanım ve IP adreslerini koyar.

Hedef protokol adresi alanı, aranan cihazın IP adresini içerir. Hedef donanım adresi alanı, bilginin bilinmediğini belirtmek için tüm 0'lara ayarlanır. Bir ARP yanıtında, ARP yanıtlayıcısının artık gönderen olduğunu göstermek için hedef ve gönderen bilgileri tersine çevrilir. Aramayı gerçekleştiren orijinal istasyon artık hedeftir.

Hardware Type

Bu, kullanılan donanım veya veri bağlantısı türünü tanımlar. Donanım tipi 1 Ethernet'e atanır ve 6 baytlık bir donanım adresi uzunluğu tanımlar. Donanım Tipi alan değer listesinin tamamı www.iana.org adresinde mevcuttur.

Protocol Type

Bu alan kullanılan protokol adres tipini tanımlar. Bu alan, Ethernet II çerçeve yapılarında da kullanılan standart protokol kimliği değerlerini kullanır. Bu protokol tipleri www.iana.org/assignments/protocol-numbers adresinde tanımlanmıştır.

Length of Hardware Address

Bu alan, bu pakette kullanılan donanım adreslerinin uzunluğunu (bayt cinsinden) tanımlar.

Length of Protocol Address

Bu alan, bu pakette kullanılan protokol (ağ) adreslerinin uzunluğunu (bayt cinsinden) tanımlar.

Opcode

Opcode, paketin bir istek mi yoksa yanıt paketi mi olduğunu ve gerçekleşen adres çözümleme türünü tanımlar.

Aşağıda ARP ve RARP (ters ARP) işlem kodları listelenmektedir:

  • Opcode 1: ARP request
  • Opcode 2: ARP reply
  • Opcode 3: RARP request
  • Opcode 4: RARP reply

Bir cihazın bir MAC adresinden ağ adresini öğrenmesini sağlayan bir süreç. RARP, RFC 903, A Reverse Address Resolution Protocol'de tanımlanmıştır. RARP'ın erken bir adres atama protokolü olarak kullanıldığı çok eski ağ ortamları dışında RARP'ın kullanıldığını görmeyiz.

Sender's Hardware Address

Bu alan, bu isteği veya yanıtı gönderen cihazın donanım adresini gösterir.

Sender's Protocol Address

Bu alan, bu isteği veya yanıtı gönderen cihazın protokol (ağ) adresini gösterir.

Target Hardware Address

Bu alan, biliniyorsa, istenen hedef donanım adresini gösterir. ARP isteklerinde bu alan genellikle tüm 0'larla doldurulur. ARP yanıtlarında, bu alan ARP isteğini gönderen aygıtın donanım adresini içerir.

Target Protocol Address

Bu alan, bir istekte istenen hedef protokol (ağ) adresini gösterir. Yanıtta, isteği yayınlayan cihazın adresini içerir.

ARP Trafiğini Filtreleme

ARP trafiği için capture filter ve display filter basitçe arp 'dır. Aşağıda ek ARP display filterları listelenmektedir:

  • arp.opcode==0x0001 â€" ARP request
  • arp.opcode==0x0002 â€" ARP reply
  • arp.src.hw_mac==00:13:46:cc:a3:ea â€" ARP kaynak fiziksel adresi 00:13:46:cc:a3:ea (istek veya yanıt)
  • (arp.src.hw_mac==00:21:97:40:74:d2) && (arp.opcode==0x0001) â€" Kaynak fiziksel adresi 00:21:97:40:74:d2 olan ARP isteği
  • (arp.src.hw_mac==00:d0:59:aa:af:80) && !(arp.src.proto_ipv4==192.168.1.1)
    ARP paketinde 00:d0:59:aa:af:80 adresindeki bir ana bilgisayar kendi IP adresi (192.168.1.1) harici IP adresleri için yolladığı ARP reply paketleri (arp poisoning).
  • (arp.opcode==0x0002) && !(arp.src.proto_ipv4==192.168.0.1/16) â€" Çözümlenen IP adresinin uzak cihaz için olduğu ARP paketi (ARP proxy yanıtı)-proxy ARP.

Kaynakça

IPv4/IPv6 Wireshark Analizi

Merhaba bu yazımda IPv4 ve IPv6 protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

IP Nedir?

IP (v4/v6 â€" topluca "IP" olarak anılır), ağa bağlı sistemler için teslim hizmetlerinin yanı sıra düşük MTU (Maximum Transmission Unit) ağları için parçalama ve yeniden birleştirme sağlar. IP ayrıca belirli trafiğin diğer trafiğe göre önceliklendirilmesini sağlamak için hizmet kalitesi belirleme özelliği de sunar.

IP bağlantısız ve güvenilmezdir, IP ana bilgisayarları arasında datagramların en iyi şekilde teslim edilmesini sağlar. IP'nin kendisi, bir paketin hedef konuma ulaşıp ulaşmadığını belirlemenin hiçbir yolunu sunmaz. Garantili teslimata ihtiyaç duyan bir uygulama IP üzerinden TCP (TCP over IP) kullanmalıdır.

IP, UDP ve TCP tabanlı uygulamalar ve ICMP için teslim hizmetleri sağlar

IPv4 başlığı tipik olarak 20 bayt uzunluğundadır, ancak IP başlık uzunluğunu (4 baytlık artışlarla) uzatabilen bir alan içerir.

IPv4 Analizi

IPv4 RFC 791'de ele alınmıştır. Normal IPv4 iletişimi, en verimli paket boyutunu kullanarak paketleri bir konumdan diğerine götürür.

IPv4 paketleri yönlendiriciler tarafından iletilirken, yönlendirme kararları vermek için hedef IP adresi incelenir, MTU boyutu bir sonraki bağlantının MTU boyutuna göre kontrol edilir (parçalanmanın gerekli olup olmadığını ve izin verilip verilmediğini belirlemek için), MAC başlığı çıkarılır ve bir sonraki ağ için yeni bir tane uygulanır ve IP başlığındaki yaşam süresi (TL) değeri azaltılır. IP başlığı ayrıca yönlendirme önceliklendirmesi için de kontrol edilir.

Bir IPv4 iletişiminde her şey yolunda giderse, trafik IP adreslerine ve IP adreslerinden akmalıdır. Bir NAT/PAT cihazı trafiği kesip adresi değiştirmediği sürece başlıktaki IPv4 adresi değişmemelidir.

Bir paket yoldaki bir sonraki bağlantıya iletilemeyecek kadar büyükse, yönlendirici IP başlığının parçalanma ayarını inceler. Don't Fragment biti ayarlanmışsa, paket iletilemez. Yönlendirici, paketi oluşturan kişiye MTU sınırlamasını tanımlayan bir ICMP Tip 3, Kod 4 mesajı (Hedefe Ulaşılamıyor/Parçalanma Gerekli, ancak Parçalama Biti Ayarlandı) göndermelidir. Gönderen, paketi daha küçük bir paket boyutunda yeniden iletmelidir. Parçalanmaya izin veriliyorsa, yönlendirici tek büyük paketi iki (veya daha fazla) küçük pakete bölmeli, parça ofsetini tanımlamalı ve paketlerin parça olduğunu belirtmeli ve iletmelidir.

IP, bir bağlantının MTU'su datagram boyutunu desteklemediğinde paketleri parçalayabilir

Şekilde, İstemci A'dan Sunucu A'ya giden 1500 baytlık bir MTU paketi yol boyunca gidemez. Sınırlama Yönlendirici B ve Yönlendirici C arasındaki bağlantıdadır. Yönlendirici B paketi parçalara ayırmalı (izin veriliyorsa) ve parçaları iletmeli veya ICMP Tip 3, Kod 4 mesajını İstemci A'ya geri göndermelidir.

Parçalanma, veri akışının verimliliğini azalttığı için bir ağda arzu edilen bir durum değildir. Bununla birlikte, kaçınılmaz olabilir. Olası MTU sorunlarını wirehsarkda belirlemek için;
İstatistikler | Paket Uzunluklarını inceleyin veya ICMP Tip 3/Kod 4 paketleri için bir filtre uygulayın (icmp.type==3 && icmp.code==4).

IPv4 sorunları genellikle parçalanma, olağandışı IP adresleri ve aşırı yayınlarla ilgilidir. Birkaç örnek aşağıda verilmiştir.

  • ICMP Tip 3, Kod 4 paketleri engellendiğinde parçalanma sorunları ortaya çıkabilir, bu da bir ana bilgisayarın paketlerinin neden hedefe ulaşmadığını öğrenmesini engeller. ICMP Tip 3, Kod 4 paketi kara delik tespiti için kullanılır.

Kaynak IP adresinin 127.0.0.1 olması şüphelidir

  • Olağandışı IP adresleri, yinelenen adresler veya Şekilde gösterilen adres gibi ağda izin verilmeyen adresler olabilir. IP kaynak adresi loopback adresi (127.0.0.0/8), çok noktaya yayın adresi veya yayın adresi olamaz.
  • Bir ağ boyunca akan aşırı yayınlar(broadcast), Wireshark'ı bir switche bağlayarak kolayca tespit edilebilir.

Şekilde ağda asla bulunmaması gereken bir paket gösterilmektedir â€" kaynak 127.0.0.1 loopback adresidir.

IPv6 Analizi

IPv6 sadece katman 3 yönlendirilmiş bir protokoldür.

IPv6 Başlığı

Şekilde bir IPv6 başlığı gösterilmektedir. Ethernet başlık Tipi alanının 0x86dd olduğuna dikkat edin, bu da bir IPv6 başlığının sırada olduğunu gösterir.

RFC 2460, İnternet Protokolü, Sürüm 6 (IPv6) Spesifikasyonu, IPv6 başlık spesifikasyonunu tanımlar. IPv6 adresleme RFC 4291, IP Sürüm 6 Adresleme Mimarisi'nde ele alınmıştır. IPv6 ana bilgisayarlarının diğer yerel hedefleri nasıl bulduğuna ilişkin ayrıntılar için RFC 4861, IP sürüm 6 (IPv6) için Komşu Bulma bölümüne bakın.

IPv6 ile ilgili bu kısa bölüm, yalnızca çift yığınlı ana bilgisayarlarda göreceğiniz en yaygın IPv6 trafiğine bir göz atmanız için tasarlanmıştır.

IPv6 iletişiminde üç farklı adres türü vardır:

  • Unicast â€" tek interface adresi
  • Multicast â€"arayüzler grubu
  • Anycast â€" bir grup arayüzün en yakını

IPv6'da yayın(broadcast) adresi yoktur-çoklu yayınlar ağ yayınlarının yerine kullanılır.

IPv6 adresleri on altı bayt uzunluğundadır (128 bit) ve x:x:x:x:x:x:x şeklinde yazılır; burada x bir ila dört onaltılık basamağı temsil eder. Gösterimi kısaltmak için tek bir alanda baştaki sıfırları atabilirsiniz.

Multicast yayınlar ff02 ile başlar

RFC 4291, IPv6 adresleri için aşağıdaki örneği sağlar:

  • Address 2001:0DB8:0:0:8:800:200C:417A (bir unicast adres)
    Shortened Version 2001:DB8::8:800:200C:417A
  • Address FF01:0:0:0:0:0:0:101 (bir multicast adres)
    Shortened Version FF01::101
  • Address 0:0:0:0:0:0:0:1 (bir loopback adres)
    Shortened Version ::1
  • Address 0:0:0:0:0:0:0:0 (unspecified adres)
    Shortened Version ::

:: bir adreste yalnızca bir kez kullanılabilir ve 16 bitlik sıfırlardan oluşan bir veya daha fazla grubu temsil eder. :: bir adresteki baştaki veya sondaki sıfırları temsil etmek için de kullanılabilir. Wireshark, yukarıdaki şekilde gösterildiği gibi IPv6 adreslerinin kısaltılmış sürümünü kullanır.

IPv6 ağ öneklerini temsil ederken Sınıfsız Alanlar Arası Yönlendirme (CIDR) gösterimi kullanılır. Örneğin, 2001:DB8:0:CD30::/64, 2001:DB8:0000:CD30:: ağını temsil eder.

Unicast adresler 2xxx ile başlar. Multicast adresler FFxx ile başlar. Link-Local Unicast adresleri FE80 ile başlar.

Link-Local adresler tek bir bağlantı üzerinde adresleme için kullanılır ve yönlendirilmez. IPv6, otomatik adres yapılandırması ve komşu keşfi için Link-Local adresleri kullanır.

Yukarıdaki şekilde görülen ilk paket bir ICMPv6 İsteği'dir â€" bu protokol ARP'ın yerini alır. Kaynak adres :: olduğunda, paketin amacı Yinelenen Adres Algılama (DAD)dır.

Yönetilen Adres Yapılandırması ve Diğer Yapılandırma bitleri DHCPv6 istemcisinin bir IPv6 adresini ve diğer parametreleri nasıl alacağını tanımlar

IPv6 hostu, başlangıç işlemi sırasında IPv6 hostuna gönderilen Yönlendirici Reklam paketi tarafından tanımlanan çeşitli yöntemlerden birini kullanarak bir adres alabilir. Şekilde iki bite dikkat çektik:

  • Yönetilen Adres Yapılandırması (M) biti
  • Diğer Yapılandırma (O) biti.

DHCPv6 istemci adresi ve diğerparametreler bu iki bitin ayarına göre yapılandırılacaktır. Bir IPv6 istemcisi, ICMPv6 Yönlendirici paketindeki M ve O bitlerine başvurarak üç farklı şekilde bir adres alabilir:

  • Stateless Address AutoConfiguration (SLAAC)
  • stateful DHCPv6
  • stateless DHCPv6

6to4 Tunneling(IPv4 İçinde Tünellenmiş IPv6)

IPv6'ya geçişin bir parçası olarak, mevcut TCP/IP ana bilgisayarları çift yığınları ve IPv4 içinde IPv6 tünelleme yeteneğini destekler. Bu paketler bir IPv4 ağı üzerinden hedef IPv6 ana bilgisayarına yönlendirilebilir. Üç farklı kapsülleme yöntemi vardır-6to4, Teredo ve ISATAP.

Protokol değeri 41, bir IPv6 başlığının daha sonra geldiğini gösterir

RFC 3056, IPv6 Etki Alanlarının IPv4 Bulutları Üzerinden Bağlanması, 6to4 tünellemeyi tanımlar. Wireshark bir IPv6 başlığının bir IPv4 başlığını takip ettiğini tespit ettiğinde, pakete iki not ekler:

  • Source 6to4 Gateway IPv4 (ipv6.src_6to4_gw_ipv4)
  • Source 6to4 SLA ID (ipv6.src_6to4_sla_id)

Kaynak adresin ilk 2 baytı 0x2002 olacaktır. 6to4 Ağ Geçidi adresi, kapsülleyen ana bilgisayarın IPv4 adresidir (IPv6 başlığını yerleştiren istemci veya IPv6 başlığını yerleştiren bir yönlendirici). Şekil 209'da, kaynak IPv6 adresi 24.6.173.220'ye (ana bilgisayarın IPv4 adresi) dönüşen 0x1806addc'yi içerir. Kaynak 6to4 SLA Kimliği (Site Level Aggregation Identifier) bir alt ağ tanımlamak için kullanılır.

Teredo

Teredo, bir IPv6 başlığını bir UDP paketi içinde kapsülleyen başka bir tünelleme yöntemidir. Bu teknoloji, Protokol 41'i işlemeyen Ağ Adresi Çevirisi (NAT) cihazlarını geçmeye yardımcı olmak için geliştirilmiştir. Teredo, RFC 4380, Ağ Adresi Çevirileri (NAT'lar) aracılığıyla UDP üzerinden IPv6 Tünelleme'de ele alınmıştır.

Teredo, IPv6'yı bir UDP paketi içinde tüneller

Şekilde, bir Teredo istemcisinden Teredo sunucusuna giden bir paketi göstermektedir. Wireshark, Teredo port udp-3544'ü kullanır ve UDP tünelleme disektörü üzerinden Teredo IPv6yı sağlar.

Burada üç Wireshark notasyonu görebiliriz:

  • Source Teredo Server IPv4 (ipv6.src_ts_ipv4)
  • Source Teredo Port (ipv6.src_tc_port)
  • Source Teredo Client IPv4 (ipv6.src_tc_ipv4)

Site İçi Otomatik Tünel Adresleme Protokolü (ISATAP)

Hem 6to4 hem de ISATAP IPv6'yı IPv4 içinde kapsüller, ancak paket bir IPv4 ağı üzerinden farklı şekilde gönderilir. Wireshark ISATAP'ın kullanımda olduğunu tespit edebilir (tıpkı Teredo'nun kullanımda olduğunu tespit ettiği gibi).

6to4 tünellemenin aksine, ISATAP 64 bit arayüz tanımlayıcısı oluşturmak için yerel olarak atanmış bir IPv4 adresi (genel veya özel) kullanır. Örneğin, ISATAP'ta 24.6.173.220 IPv4 adresi ::0:5EFE:1806:addc olur. Bir 6to4 tünel yapılandırmasında, aynı IPv4 adresi Şekil 210'da görüldüğü gibi 2002:1806:addc::/48 olur.

ISATAP, ISATAP yönlendiricilerinin IPv6 trafiği için bir site içi tünel yapılandırmasını gerektirir ve bilgilendirici RFC 5214'te ele alınmıştır.

IPv4 Paket Yapısı

Bu kısımda başlık alanları ve işlevleri ayrıntılı olarak açıklanmaktadır. Her alanla ilgili daha fazla ayrıntı için RFC 791'e bakabilirsiniz.

IPv4 Başlığı

Şekilde, kabul edilebilir IPv4 adreslemesine sahip standart bir IPv4 başlığını göstermektedir.

Version Field

IP başlığındaki ilk alan sürüm alanıdır. Şekilde, tamamen genişletilmiş bir IPv4 başlığını göstermektedir. Bu bölümde IPv4 ile başlayacağız ve daha sonra IPv6'yı inceleyeceğiz.

Header Length Field

Bu alan aynı zamanda İnternet Başlık Uzunluğu alanı veya IHL(Internet Header Length) olarak da adlandırılır. Bu alan sadece IP başlığının uzunluğunu belirtir. Bu alan gereklidir çünkü IP farklı başlık uzunluklarını destekler. Bu alan değeri 4 baytın katları olarak sağlanır. Örneğin, bu alanın gerçek ondalık kodu 5 olacaktır. Wireshark, 20 baytlık gerçek IP başlık uzunluğu değerini bulmak için bu değeri 4 baytla çarpar. Şekilde IPv4 başlığı 20 bayt uzunluğundadır. Bu IP başlığında farklı bir başlık uzunluğu kullanılmamıştır.

Differentiated Services Field and Explicit Congestion Notification

Altı bitlik Farklılaştırılmış Hizmetler Alanı (DiffServ) trafiği önceliklendirmek ve belirli bir Hizmet Kalitesi (QoS) düzeyi sağlamak için kullanılır.

Alan, paketin nasıl işleneceğini (atlama başına davranış) belirlemek için kullanılan bir Farklılaştırılmış Hizmetler Kod Noktası (DSCP) değeri içerir.

Assured Forwarding and Expedited Forwarding Per-Hop Behavior

RFC 2597, Assured Forwarding PHB Group, Assured Forwarding'i bir DiffServ sağlayıcısının bir DiffServ müşterisinden aldığı IP paketleri için farklı düzeylerde yönlendirme güvenceleri sunması için bir araç olarak tanımlar.

RFC 2598, bir Hızlandırılmış Yönlendirme PHB'si, Hızlandırılmış Yönlendirmenin "DS (DiffServ) alanları aracılığıyla düşük kayıplı, düşük gecikmeli, düşük titreşimli, garantili bant genişliği, uçtan uca hizmet oluşturmak için kullanılabileceğini tanımlar. Böyle bir hizmet uç noktalara noktadan noktaya bağlantı veya 'sanal kiralık hat' gibi görünür. Bu hizmet aynı zamanda Premium hizmet olarak da tanımlanmaktadır."

İki bitlik Açık Tıkanıklık Bildirimi (ECN) alanı, yol boyunca ağ tıkanıklığını tanımlamak için gönderen ve/veya yol boyunca yönlendiriciler tarafından kullanılır.

Total Length Field

Bu alan IP başlığının ve geçerli verilerin uzunluğunu tanımlar (buna herhangi bir veri bağlantısı dolgusu dahil değildir).
Şekilde gösterilen örnekte, toplam uzunluk alanı değeri 1500 bayttır. Bunun ilk 20 baytı IP başlığıdır â€" bu, kalan paket uzunluğunun (herhangi bir veri bağlantısı dolgusu dahil değil) 1480 bayt olduğunu gösterir.

Identification Field

Her bir IP paketine gönderilirken benzersiz bir ID değeri verilir. Paketin daha küçük bir paket boyutunu destekleyen bir ağa sığması için parçalanması gerekiyorsa, bu parçaların aynı orijinal paketin parçası olduğunu belirtmek için her parçaya aynı kimlik numarası yerleştirilecektir.

Flags Field

Bayraklar alanı aslında üç bit uzunluğundadır ve aşağıdaki bit değeri atamalarına sahiptir:

  • Bit 0: Rezerve edilmiş-0 olarak ayarlanmıştır.
  • Bit 1: Parçalama Biti (0=parçalayabilir; 1=parçalama yapmaz)
  • Bit 2: Daha Fazla Parça Biti (0=son parça; 1=daha fazlası gelecek)

Bir uygulama(application katmanı protokolleri) parçalanmaya izin vermeyecek şekilde yazılabilir. Eğer öyleyse, uygulama Don't Fragment bitini ayarlayacaktır 1. Parçalanmaya izin veriliyorsa ve bir paketin daha küçük bir paketi destekleyen bir ağı geçmek için parçalanması gerekiyorsa MTU, Parçalama biti 0 olarak ayarlanacaktır. Paket birden fazla parçaya bölündüğünde -üç Örneğin, birinci ve ikinci parçalarda More Fragments to Come biti 1 olarak ayarlanacaktır. Son parçanın More Fragments (Daha Fazla Parça) biti 0 olarak ayarlanır ve bu da onun setteki son parça olduğunu gösterir. Tümü fragmanlar aynı IP ID değerini kullanacaktır. Parçalanma yeniden birleştirme işlemi uç noktada gerçekleşir.

Fragment Offset Field

Paket bir parçaysa, bu alan, parçalar tekrar tek bir pakette birleştirilirken (hedef ana bilgisayarda) bu paketin verilerinin nereye yerleştirileceğini gösterir. Bu alan, 8 baytlık değerler halinde ofseti sağlar. Örneğin, ilk parçanın ofseti 0 olabilir ve 1400 bayt veri içerebilir (herhangi bir başlık dahil değildir). İkinci parçanın ofset değeri 175 olacaktır (175 x 8 = 1400). Bu alan yalnızca paket bir parça ise kullanılır, aksi takdirde 0 olarak ayarlanır.

Wireshark'ın IP parçalarını görüntülemesi

Time to Live Field

Bu alan, paketin kalan ömrünü (saniye ve yönlendiriciler üzerinden atlama sayısı olarak) gösterir.

Tipik başlangıç TTL değerleri 32, 60, 64 ve 128'dir. Varsayılan TTL değerleri satıcının TCP/IP yığınına dahil edilmiştir. Uygulamalar (traceroute gibi) bu varsayılan değerleri istenildiği gibi geçersiz kılabilir. Bir paket yönlendirici tarafından her iletildiğinde, yönlendirici TTL alanını 1 azaltmalıdır. Yönlendiricinin paketi kuyruğunda uzun bir süre (bir saniyeden uzun) tutması gerekiyorsa, bu TTL değerini paketin kuyrukta tutulduğu saniye sayısı kadar azaltmalı ve atlama için TTL'yi azaltmalıdır.

Yönlendirilecek bir paket bir yönlendiriciye TTL=1 ile ulaşırsa, yönlendirici TTL'yi 0'a düşüremeyeceği ve paketi iletemeyeceği için paketi atmalıdır. Yönlendirici, göndericiye bir ICMP Tip 11, Kod 0 yanıtı (Time Exceeded, Time to Live Exceeded in Transit) oluşturarak paketin Time to Live değeri nedeniyle iletilmediğini belirtebilir.

Eğer TTL=1 olan bir paket bir ana bilgisayara ulaşırsa, ana bilgisayar ne yapmalıdır? Elbette paketi işler. Ana bilgisayarların paketleri aldıktan veya yönlendirdikten sonra TTL değerini düşürmesi gerekmez.

Düşük TTL değerleri bazen olağandışı olarak kabul edildiğinden, Wireshark'ın bu paketleri bir izleme dosyasında tanımlamaya yardımcı olan TTL low ya da unexpected adlı bir renklendirme kuralı vardır. Renklendirme kuralı sözdizimi (!ip.dst==224.0.0.0/4 && ip.ttl < 5 && !pim) || (ip.dst==224.0.0.0/24 && ip.ttl != 1) şeklindedir.

Bir paket parçalandığında, tüm parçalara aynı TTL değeri verilir. Bir ağ üzerinden farklı yollar izlerlerse, hedefe farklı TTL değerleriyle ulaşabilirler. Ancak ilk parça hedefe ulaştığında, hedef ana bilgisayar bu paketin TTL değerinden saniye cinsinden geri saymaya başlar. Bu zamanlayıcı sona ermeden önce tüm parçaların ulaşması gerekir, aksi takdirde parça kümesi 'tamamlanmamış' ve kullanılamaz olarak kabul edilir. Hedef, yeniden birleştirme işlemi sırasında paketin ömrünün dolduğunu belirtmek için kaynağa bir ICMP Tip 11, Kod 1 yanıtı (Zaman Aşıldı, Parça Yeniden Birleştirme Süresi Aşıldı) gönderir. Bu, istemciden orijinal parçalanmamış paketi yeniden iletmesini ister.

Protocol Field

Tüm başlıklar, bir sonraki adımın ne olduğunu tanımlayan bir alana sahiptir. Örneğin, bir TCP/IP paketinde, Ethernet II başlığının bir sonraki adımın IP olduğunu belirten bir Tip alanı vardır. IP başlığında bir sonraki adımın ne olduğunu belirten bir Protokol alanı vardır. Protokol alanında daha sık görülen değerler aşağıda listelenmiştir:

  • Protocol 1: ICMP
  • Protocol 2: IGMP
  • Protocol 6: TCP
  • Protocol 8: EGP
  • Protocol 9: Cisco'nun IGRP'si gibi herhangi bir özel iç ağ geçidi
  • Protocol 17: UDP
  • Protocol 45: IDRP
  • Protocol 88: Cisco EIGRP
  • Protocol 89: OSPF

Protokol alanı değerlerinin en güncel listesini edinmek için www.iana.org/assignments/protocol-numbers adresini ziyaret edin.

Header Checksum Field

IP başlığı Sağlama Toplamı alanı yalnızca IP başlığının içeriğine ilişkin hata tespiti sağlar; bu alan paketin IP başlığı dışındaki içeriğini kapsamaz. Bu sağlama toplamı, sağlama toplamı alanının kendisini hesaplamaya dahil etmez.

IPv4 Source Address Field

Bu, paketi gönderen cihazın IP adresidir. DHCP önyükleme işlemi gibi bazı durumlarda, istemci IP adresini bilmeyebilir, bu nedenle bu alanda 0.0.0.0 kullanabilir. Bu alan bir çok noktaya yayın veya yayın adresi ya da geri döngü adresi içeremez.

IPv4 Destination Address Field

Bu alan tek noktaya yayın, çok noktaya yayın, yayın adresi içerebilir. Bu adres paketin son hedefini tanımlar.

Options Field

IP başlığı bir dizi seçenekle genişletilebilir (bu seçenekler sıklıkla kullanılmasa da). Başlık seçeneklerle genişletilirse, bu seçenekler 4 baytlık bir sınırda bitmelidir, çünkü İnternet Başlık Uzunluğu (IHL) alanı başlık uzunluğunu 4 baytlık sınırlarla tanımlar.

Aşağıdaki liste yalnızca kısmi bir seçenek kümesini göstermektedir. Listenin tamamı için www.iana.org adresine bakın.

  • Option 0: Seçenek Listesi Sonu (IP seçeneklerinin ne zaman sona ereceğini tanımlar))
  • Option 3: Loose Source Route (bazı yol bilgileri sağlar)
  • Option 4: Time Stamp (Yol boyunca zaman damgası)
  • Option 7: Record Route (bir yol boyunca geçen yönlendiricileri işaretler)
  • Option 9: Strict Source Route (özel yol bilgisi sağlayın)

IPv4 Broadcast/Multicast Traffic

Ağ üzerinde iki temel yayın/çoklu yayın türü vardır: aramalar ve duyurular. Bir DHCP istemcisinin açıldığında ve bir DHCP sunucusu bulması gerektiğinde gönderdiği keşif yayını bir arama örneği olabilir. Bir başka arama yayını örneği de ARP MAC-IP adres çözümleme yayınıdır.

  • General Broadcast: 255.255.255.255
  • Subnet Broadcast: 10.2.255.255
  • Multicast: 224.x.x.x â€" 239.x.x.x

Duyuruya örnek olarak OSPF reklam çok noktaya yayını verilebilir. Bu paketler, bilinen bağlantı durumu yönlendirme girdileri hakkında istenmeyen duyurulardır.

Günümüzün yüksek kapasiteli ağ bağlantılarında değerli bant genişliğini kaplayan yayınlar ve çoklu yayınlar konusundaki endişeler aşırı vurgulanmış olabilir. Diğer bir endişe ise bu paketlerin ileten veya alan cihazlarda ihtiyaç duyduğu işlem gücüdür. Bir anahtar veya yönlendirici aşırı yüklenmişse ve paketleri düşürüyor veya uzun süre kuyrukta tutuyor gibi görünüyorsa, ağdaki yayın/çoklu yayın oranını incelemeyi düşünün.

IPv6 Paket Yapısı

Her bir alanın amacını tanımlamak için bir IPv6 başlığının içine bakalım. Bazı alanlar IPv4 alanlarına çok benzer.

Version Field

Bu dört bitlik alan 0110 (ondalık 6) olarak ayarlanır.

Traffic Class Fields (DiffServ, ECT and ECN-CE)

Şekilde yakından bakın. Bazı alanların nasıl örtüştüğüne dikkat edin; 8 bitlik Trafik Sınıfı alanı Farklılaştırılmış Hizmetler (DiffServ) alanı, ECN-Yetkin Aktarım alanı ve ECN-CE alanından oluşur.

6 bitlik DiffServ alanı, IPv4 başlığındaki DiffServ alanlarıyla aynı işlevselliği sağlar. Bu alan, trafiğe öncelik vermek ve belirli bir düzeyde Hizmet Kalitesi (QoS) sağlamak için kullanılır. Alan, paketin nasıl işleneceğini (perhop davranışı) belirlemek için kullanılan bir Farklılaştırılmış Hizmetler Kod Noktası (DSCP) değeri içerir.

ECN Özellikli Aktarım (ECT) biti, ECN'nin desteklendiğini belirtmek için bir gönderen tarafından ayarlanır.

ECN-CE (Tıkanıklık Yaşandı) biti, yaklaşan tıkanıklığı tespit eden bir yönlendirici tarafından ayarlanır. Yönlendiricinin ECN-CE bitini kullanabilmesi için ECT bitinin ayarlanmış olması gerekir.

Flow Label Field

Bir "akış", bir kaynaktan hedefe giden ve bir küme olarak etiketlenen paketlerin bir dizisidir. Bir IPv6 akışı, 20 bitlik Akış Etiketi alanı ile kaynak ve hedef IPv6 adres alanları tarafından tanımlanır. Akış Etiketi alan değerinin sıfır olması, paketin herhangi bir akışın parçası olmadığını gösterir. Akış Etiketi alan değeri yol boyunca değiştirilmez. Akış Etiketi alanının kullanımı hakkında daha fazla bilgi için bkz. RFC 3697, IPv6 Akış Etiketi Belirtimi.

Payload Length Field

Bu alan, IPv6 yükünün uzunluğunu (IPv6 başlığını izleyen ancak paket dolgusunu içermeyen baytlar) tanımlar. IPv6 uzantı başlıkları yükün bir parçası olarak kabul edilir.

Next Header Field

Bu alan, pakette bir sonraki adımın ne olduğunu gösterir (tıpkı IPv4 Protokolü alanı gibi). Geçerli protokol numaralarının tam listesi için www.iana.org/assignments/protocol-numbers/protocol-numbers.xml adresine bakın. Bir IPv6 paketi, IPv6 başlığını takip eden birden fazla Uzantı Başlığına sahip olabilir.

Aşağıdaki tabloda IPv6 Uzantı Başlıkları ve bunların Sonraki Başlık alanı değerleri listelenmektedir. Bunlar önerilen kullanım sırasına göre listelenmiştir.

  • Next Header Field Value 0: Hop-by-Hop Seçenekleri
  • Next Header Field Value 60: Destination Options (Yönlendirme Seçenekleri ile)
  • Next Header Field Value 43: Routing Header
  • Next Header Field Value 44: Fragment Header
  • Next Header Field Value 51: Authentication Header
  • Next Header Field Value 50: Encapsulation Security Payload Header
  • Next Header Field Value 60: Destination Options
  • Next Header Field Value 135: Mobility Header
  • Next Header Field Value 59: No next header

Hop Limit Field

Bu alan, paketi ileten her cihaz tarafından 1 azaltılır. Değer 1'e ulaştığında paket yönlendirilmez.

Source IPv6 Address Field

128 bit IPv6 kaynak adresi. IPv6 adresleme hakkında ayrıntılar için bkz: RFC 4291, IP Sürüm 6 Adresleme Mimarisi

Destination IPv6 Address Field

128 bit IPv6 hedef adresi.

IPv4 Trafiğini Filtreleme

IPv4 trafiği için capture ve display filter basitçe ip'dir.

  • ip.src==192.168.1.1 â€" Kaynak IP adresi alanında 192.168.1.1 içeren IPv4 paketleri
  • ip.dst==192.168.1.103 â€" Hedef IP adresi alanında 192.168.1.103 içeren IPv4 paketleri
  • ip.addr==192.168.1.103 â€" Kaynak veya hedef IP adresi alanlarında 192.168.1.103 içeren IPv4 paketleri
  • !ip.addr==192.168.1.103 â€" Kaynak veya hedef IP adresi alanlarında 192.168.1.103 içermeyen paketler
  • ip.hdr_len > 20 â€" Seçenekli IPv4 başlığı (başlık uzunluğu 20 bayttan uzun)
  • (ip.flags.mf==1) || !(ip.frag_offset==0) && ip â€" Parçalanmış paket â€" IP parça ofseti alanında daha fazla parça biti ve sıfır olmayan değer arar. ARP dahil tüm IP dışı protokollerle başa çıkmak için "&& ip" eklendi. ip-fragments.pcapng üzerinde test edin.
  • ip.ttl < 10 â€" IP Yaşam Süresi(TTL) değerleri 10'dan az

IPv6 Trafiğini Filtreleme

IPv6 için yakalama filtresi basitçe ip6'dır. Tek bir hosttan gelen trafiği yakalamak için host[IPv6 adresi] kullanın â€" örneğin, ana bilgisayar fe80::708d:fe83:4114:a512.

Belirli bir IPv6 alt ağından gelen trafik için bir yakalama filtresi uygulamak için aşağıdaki sözdizimini kullanın:
ip6 net [network]::/[net bits],

Örneğin, ip6 net fe00::/8, 0xfe ile başlayan adreslere giden veya gelen tüm IPv6 paketlerini yakalar. Tüm IPv6 trafiği için display filter ipv6'dır. Aşağıdaki tabloda çok sayıda diğer IPv6 görüntüleme filtresi gösterilmektedir.

  • ipv6.nxt==0x06 â€" Bir TCP başlığından önce gelen IPv6 paketleri
  • ipv6.src_6to4_gw_ipv4==24.6.173.220â€"24.6.173.220 tarafından kapsüllenmiş 6to4 paketleri
  • ipv6.hlim < 10 â€" Atlama Sınırı alan değeri 10'dan düşük olan IPv6 paketi
  • ipv6.src==2002:1806:addc::1806:addc â€" Belirli bir adresten gelen IPv6 paketleri
  • ipv6.src >= fe80:: && ipv6.src <= fec0 â€" Çeşitli ağlardan gelen IPv6 paketleri

Kaynakça

ICMPv4/ICMPv6 Wireshark Analizi

Merhaba bu yazımda ICMPv4 ve ICMPv6 protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

ICMP Nedir?

ICMP, bir IP ağındaki hatalar, uyarılar ve genel bildirimler için bir mesajlaşma sistemi olarak kullanılır. Aşağıdakiler de dahil olmak üzere birçok ICMP mesaj türü vardır:

  • Echo Message: ping ve traceroute tarafından uçtan uca bağlantıyı test etmek için kullanılır. Bunların çok fazla olması bir keşif işlemine veya muhtemelen bir Hizmet Reddi saldırısına işaret edebilir.
  • Redirect Message: Yönlendiriciler tarafından kaynağa bir hedefe giden daha iyi bir yol olduğunu bildirmek için kullanılır. Bu paket bir yönlendirici tarafından gönderilmemişse, şüpheli olarak değerlendirilmelidir.
  • Destination Unreachable messages: Kaynak ana bilgisayara paketlerinin bir nedenden dolayı teslim edilemediğini söylemek için kullanılır â€" nedeni Hedefe Ulaşılamıyor mesajında belirtilir. Bu yanıt paketlerinin çok sayıda olması, başarısız bir UDP bağlantı noktası taramasının devam ettiğini veya bir hizmetin düzgün çalışmadığını gösterebilir.

Ağınızdaki ICMP trafiğini birkaç saat veya gün boyunca inceleyerek, ağın ne kadar verimli bir şekilde tasarlandığını belirleyebilir ve çok sayıda yapılandırma hatasını, işlevsel sorunu veya güvenlik ihlalini tespit edebilirsiniz. ICMPv4 RFC 792'de tanımlanmıştır.

ICMP, IP ağlarında mesajlaşma hizmetleri sunar

RFC 4443, ICMPv6'nın amacını ve işlevselliğini tanımlar. ICMPv6 paket yapısı ICMPv4 paket yapısı ile aynıdır.

ICMP Trafik Analizi

ICMP trafiğini tanımlamak zordur çünkü bu her ağ için özeldir. Bazı ağ personeli bağlantı testleri için ping kullanırken, bazı şirketler ICMP Echo İsteklerini/Yanıtlarını kısıtlar. Bu ping testlerinden gelen ICMP trafiğini ve traceroute testlerinden gelen ICMP trafiğini "normal ICMP trafiği" olarak tanımlayabiliriz. ICMP tabanlı pingler echo İstekleri için ICMP Tip 8 ve echo reply için ICMP Tip 0 kullanır.

ICMP Echo Request

ICMP Echo Reply

Şekiller ICMPv4 echo request ve echo reply paketlerini göstermektedir.

ICMPv6

Şekilde bir ICMPv6 echo request paketi gösterilmektedir. Bu tracedeki paketler 6to4 paketleridir.

Traceroute'un üç çeşidi vardır-ICMP tabanlı, TCP tabanlı ve UDP tabanlı. ICMP tabanlı traceroute, ICMP echo İsteklerini kullanır ve IP başlığındaki Yaşam Süresi (TTL) değerini değiştirir. Paketler yol boyunca yönlendiricilere ulaştığında, gelen TTL değeri incelenir. Gelen TTL değeri 1 ise, yönlendirici bir ICMP Time Exceeded/Time to Live Exceeded in Transit (Tip 11, Kod 0) ile yanıt verir (bu yanıt yönlendiricide devre dışı bırakılmamışsa). Bu, yönlendiricinin IP adresini bulmanızı sağlar.

Traceroute'un üç çeşidi vardır-ICMP tabanlı, TCP tabanlı ve UDP tabanlı. ICMP tabanlı traceroute, ICMP echo İsteklerini kullanır ve IP başlığındaki Yaşam Süresi (TTL) değerini değiştirir. Paketler yol boyunca yönlendiricilere ulaştığında, gelen TTL değeri incelenir. Gelen TTL değeri 1 ise, yönlendirici bir ICMP Time Exceeded/Time to Live Exceeded in Transit (Tip 11, Kod 0) ile yanıt verir (bu yanıt yönlendiricide devre dışı bırakılmamışsa). Bu, yönlendiricinin IP adresini bulmanızı sağlar.

ICMP Ping Request â€" no response

ICMP Time-to-live-exceed

Şekillerde, bir traceroute işlemi sırasında varsayılan renklendirme etkinleştirildiğinde Wireshark'ın gösterdiği tipik şeritlemeyi göstermektedir.

ICMPv4 Problemleri

Yaygın bir ICMP sorunu, bir hedefe bağlantı olmadığını gösteren yanıt almayan bir echo testidir. ICMP trafiğinin düştüğü noktayı belirlemek için Wireshark sistemini paket kaybının meydana geldiği noktaya ulaşana kadar yol boyunca hareket ettirmeniz gerekir.

Bununla birlikte, ICMP'nin kendisi diğer birçok ağ sorununu ve güvenlik sorununu tespit etmeye yardımcı olabilir. Örneğin, bir DNS sorgusu Hedefe Ulaşılamıyor/Port Erişilemiyor (Tip 3/Kod 3) sonucunu veriyorsa, ya istemci DNS sorgularını yanlış hedefe gönderiyordur ya da sunucuda ad hizmeti çalışmıyordur.

Başka bir örnek de aşırı yönlendirmeler olabilir.

ICMP Redirect

Şekilde, 10.2.99.98 adresindeki başka bir ağ geçidini(gateway) işaret eden bir ICMP Yönlendirme paketini göstermektedir. Bu paket, alıcı yönlendirici gönderici için daha iyi bir yönlendirici belirlediğinde gönderilir. Alıcı yönlendirici, kullanılması önerilen yönlendiriciyi içeren bir ICMP Yönlendirme (Tip 5/Kod 1) paketi oluşturur. Alındığında, bir host yönlendirme tablosunu güncellemelidir. Yönlendirmeler yalnızca yönlendiriciler tarafından gönderilmelidir.

ICMP Redirect ve ICMP Destination Unreachable paketleri gibi bazı ICMP paketleri, ICMP yanıtını tetikleyen orijinal paketin bir bölümünü içerir. Şekilde, ICMP başlığını ICMP yanıtını tetikleyen paketin orijinal IP başlığı takip eder.

TCP bağlantı istekleri ya bir TCP SYN/ACK ya da bir TCP Sıfırlaması ortaya çıkarması gerektiğinden, TCP el sıkışma bağlantı isteklerine ICMP Hedefe Ulaşılamıyor yanıtları olağandışıdır. Bu TCP el sıkışma bağlantı isteklerine verilen ICMP yanıtı, bir hostun güvenlik duvarının bir portu engellediğinin muhtemel bir göstergesidir.

ICMPv4 Paket Yapısı

ICMP paketleri UDP veya TCP başlığı içermez-port filtreleme ayarları ICMP trafiğini etkileyemez(çünkü port kullanmaz). ICMP paketleri IP başlığından sonra yalnızca üç gerekli alan içerir: tür, kod ve sağlama toplamı(checksum). Bazı ICMP paketleri, mesaj hakkında bilgi veya ayrıntı sağlamak için ek alanlar içerir. Örneğin, bir ICMP Yönlendirme paketinin, bir hostun kullanması için yönlendirildiği ağ geçidinin(gateway) adresini içermesi gerekir. Bu paketin alınmasının ardından, bir host yönlendirme tablolarına dinamik bir rota girişi eklemeli ve yeni yönlendirme bilgilerini hemen kullanmaya başlamalıdır.

Type

Aşağıdaki liste, ağ üzerinde gönderilebilecek ICMP mesajlarının türlerini tanımlar. Bu liste, en son 23 Nisan 2012 tarihinde güncellenen IANA belgelerine dayanmaktadır. Bu listenin en güncel sürümünü edinmek için www.iana.org/assignments/icmp-parameters adresini ziyaret edin.

  • Type 0: Echo Reply [RFC 792]
  • Type 1: Unassigned
  • Type 2: Unassigned
  • Type 3: Destination Unreachable [RFC 792]
  • Type 4: Source Quench [RFC 792]
  • Type 5: Redirect [RFC 792]
  • Type 6: Alternate Host Address
  • Type 7: Unassigned
  • Type 8: Echo [RFC 792]
  • Type 9:Router Advertisement [RFC 1256]
  • Type 10:Router Solicitation [RFC 1256]
  • Type 11: Time Exceeded [RFC 792]
  • Type 12: Parameter Problem [RFC 792]
  • Type 13: Timestamp [RFC 792]
  • Type 14: Timestamp Reply [RFC 792]
  • Type 15: Information Request [RFC 792]
  • Type 16: Information Reply [RFC 792]
  • Type 17: Address Mask Request [RFC 950]
  • Type 18: Address Mask Reply [RFC 950]
  • Type 19: Reserved (for Security)
  • TypeS 20â€"29: Reserved (for Robustness Experiment)
  • Type 30: Traceroute [RFC 1393]
  • Type 31: Datagram Conversion Error [RFC 1475]
  • Type 32: Mobile Host Redirect
  • Type 33: IPv6 Where-Are-You
  • Type 34: IPv6 I-Am-Here
  • Type 35: Mobile Registration Request
  • Type 36: Mobile Registration Reply
  • Type 37: Domain Name Request
  • Type 38: Domain Name Reply
  • Type 39: SKIP
  • Type 40: Photuris
  • Types 41â€"252: Unassigned
  • Type 253: RFC3692-style Experiment 1
  • Type 254: RFC3692-style Experiment 2

Code

Birçok ICMP paket tipinin birkaç olası Kod alanı değeri vardır. Aşağıdaki listede daha yaygın kod alanlarının açıklamaları yer almaktadır.

Type 3 Destination Unreachable kodları

  • Kod 0: Ağa Erişilemiyor â€" ICMP göndericisi ağı biliyor, ancak şu anda açık olmadığına inanıyor â€" belki de çok uzakta veya yalnızca bilinmeyen bir rota üzerinden erişilebilir.
  • Kod 1: Ana Bilgisayara Ulaşılamıyor â€" ICMP göndericisi ana bilgisayarı biliyor, ancak bir ARP yanıtı almıyor, bu da ana bilgisayarın şu anda çalışmadığını gösteriyor.
  • Kod 2: Protokol Erişilemez â€" IP başlığında tanımlanan protokol bir nedenden dolayı işlenemez â€" bu yanıt bir IP taramasında görülür.
  • Kod 3: Port Ulaşılamıyor â€" ICMP göndericisi ulaşmaya çalıştığınız port numarasını desteklemiyor â€" bu paketlerin çok sayıda olması bir yapılandırma sorununa veya muhtemelen bir UDP port taramasına işaret eder; bu paketler bir TCP el sıkışma girişimine yanıt olarak gönderiliyorsa, hedef portun muhtemelen güvenlik duvarına sahip olduğunu gösterir.
  • Kod 4: Parçalama Gerekli ve Parçalama Yapma Ayarlandı â€" Yönlendiricinin paketi daha küçük bir MTU boyutunu destekleyen bir bağlantı üzerinden iletmek için parçalaması gerekiyordu, ancak uygulama Parçalama Yapma bitini ayarladı.
  • Kod 5: Kaynak Rotası Başarısız â€" ICMP göndericisi orijinal pakette belirtilen katı veya gevşek kaynak yönlendirme yolunu kullanamaz.
  • Kod 6: Hedef Ağ Bilinmiyor-ICMP göndericisinin hedef ağ için bir rota girişi yoktur, bu da hedef ağın hiçbir zaman kullanılabilir bir ağ olmadığını gösterir.
  • Kod 7: Hedef Ana Bilgisayar Bilinmiyor-ICMP göndericisinin bağlı ağda hiç bulunmamış olabileceğini gösteren bir ana bilgisayar girişi yoktur.
  • Kod 8: Kaynak Ana Bilgisayar İzole Edildi-ICMP göndericisi (yönlendirici) kaynaktan gelen paketleri iletmeyecek şekilde yapılandırılmıştır. Çoğu yönlendirici bu yanıt kodunu üretmez â€" hangisi uygunsa 0 (ağa ulaşılamıyor) ve 1 (ana bilgisayara ulaşılamıyor) kodlarını üretirler.
  • Kod 9: Hedef Ağ ile İletişim İdari Olarak Yasaklanmıştır â€" ICMP göndericisi (yönlendirici) istenen hedef ağa erişimi engelleyecek şekilde yapılandırılmıştır.
  • Kod 10: Hedef Ana Bilgisayarla İletişim İdari Olarak Yasaklandı â€" ICMP göndericisi (yönlendirici) istenen hedef ana bilgisayara erişimi engelleyecek şekilde yapılandırılmıştır.
  • Kod 11: Hedef Ağ Hizmet Türü için Erişilemez-orijinal gönderici tarafından kullanılan Hizmet Türü (TOS) göstergesi söz konusu ağ için bu yönlendirici aracılığıyla kullanılamaz-daha güncel ağların TOS veya Öncelik kullanmayabileceğini unutmayın-bunun yerine DiffServ kullanabilirler.
  • Kod 12: Hedef Ana Bilgisayara Hizmet Türü için Ulaşılamıyor â€" orijinal gönderici tarafından kullanılan TOS göstergesi bu yönlendirici aracılığıyla söz konusu ana bilgisayar için kullanılamaz â€" daha güncel ağların TOS veya Öncelik kullanmayabileceğini unutmayın â€" bunun yerine DiffServ kullanabilirler.
  • Kod 13: İletişim İdari Olarak Yasaklandı â€" ICMP göndericisi şu anda iletişim için uygun değil; bu, ayrıntılı bir güvenlik duvarı tarafından gönderiliyor olabilir.
  • Kod 14: Ana Bilgisayar Öncelik İhlali â€" gönderenin orijinal IP başlığında tanımlanan Öncelik değerine izin verilmez (örneğin, Flash Override önceliği kullanılarak) â€" daha güncel ağların TOS veya Öncelik kullanmayabileceğini unutmayın â€" bunun yerine DiffServ kullanabilirler.
  • Kod 15: Öncelik Kesintisi Yürürlükte â€" Ağ yöneticisi bir yönlendirici tarafından hizmet verilmesi için minimum öncelik düzeyi belirlemiştir, ancak daha düşük öncelikli bir paket alınmıştır.

Type 5 Redirect Kodları

  • Kod 0: Ağ (veya alt ağ) için Datagramı Yeniden Yönlendir â€" ICMP göndericisi (yönlendirici) istenen ağa ulaşmanın en iyi yolu değildir. Yanıt, hedefe giden en iyi yönlendiricinin IP adresini içerir. Orijinal göndericinin rota tablolarına dinamik olarak bir ağ girişi ekler
  • Kod 1: Ana Bilgisayar için Datagramı Yeniden Yönlendir â€" ICMP göndericisi (yönlendirici) istenen ana bilgisayara ulaşmanın en iyi yolu değildir. Yanıt, hedefe giden en iyi yönlendiricinin IP adresini içerir. Orijinal göndericinin rota tablolarına dinamik olarak bir ana bilgisayar girişi ekler
  • Kod 2: Hizmet Türü ve Ağ için Datagramı Yeniden Yönlendir â€" ICMP göndericisi (yönlendirici) talep edilen TOS'u kullanarak hedef ağa bir yol sunmaz. Orijinal göndericinin rota tablolarına dinamik olarak bir ağ girişi ekler â€" daha güncel ağların TOS veya Öncelik kullanmayabileceğini unutmayın â€" bunun yerine DiffServ kullanabilirler
  • Kod 3: Hizmet Türü ve Ana Bilgisayar için Datagramı Yeniden Yönlendir â€" ICMP göndericisi (yönlendirici), talep edilen TOS'u kullanarak hedef ana bilgisayara bir yol sunmaz. Orijinal göndericinin rota tablolarına dinamik olarak bir ana bilgisayar girişi ekler â€" daha güncel ağların TOS veya Öncelik kullanmayabileceğini unutmayın â€" bunun yerine DiffServ kullanabilirler

Type 11 Time Exceeded Kodları

  • Kod 0: Aktarımda Yaşam Süresi Aşıldı â€" ICMP göndericisi (yönlendirici), göndericinin paketinin 1 TTL ile geldiğini belirtir. Yönlendiriciler TTL değerini 0'a düşüremez ve bir paketi
  • Kod 1: Parça Yeniden Birleştirme Süresi Aşıldı â€" ICMP göndericisi (hedef ana bilgisayar), alınan ilk parçanın TTL değerinin süresi dolmadan (bekletme süresi saniye cinsinden) önce tüm parça parçalarını almadı.

Checksum

Sağlama toplamı alanı yalnızca ICMP başlığını kapsar.

ICMPv6 Paket Yapısı

ICMP paketleri UDP veya TCP başlığı içermez-port filtreleme ayarları ICMP trafiğini etkileyemez(çünkü port kullanmaz). ICMP paketleri IP başlığından sonra yalnızca üç gerekli alan içerir: tür, kod ve sağlama toplamı(checksum).

Type

Aşağıdaki liste, ağ üzerinde gönderilebilecek ICMPv6 mesaj türlerini tanımlar. Bu liste, en son 28 Mart 2012 tarihinde güncellenen IANA belgelerine dayanmaktadır. Bu listenin en güncel sürümünü edinmek için www.iana.org/assignments/icmpv6-parameters adresini ziyaret edin.

  • Type 0 Reserved
  • Type 1 Destination Unreachable [RFC4443]
  • Type 2 Packet Too Big [RFC4443]
  • Type 3 Time Exceeded [RFC4443]
  • Type 4 Parameter Problem [RFC4443]
  • Type 100 Private Experimentation [RFC4443]
  • Type 101 Private Experimentation [RFC4443]
  • Type 102â€"126 Reserved
  • Type 127 Reserved for Expansion of ICMPv6 error messages [RFC4443]
  • Type 128 Echo Request [RFC4443]
  • Type 129 Echo Reply [RFC4443]
  • Type 130 Multicast Listener Query [RFC2710] â€" sent by an IPv6 router to locate general or specific multicast listeners on the local network
  • Type 131 Multicast Listener Report [RFC2710] â€" sent by IPv6 hosts to indicate they are listening for a particular multicast address on an interface
  • Type 132 Multicast Listener Done [RFC2710] â€" can be sent by an IPv6 node to indicate that it has stopped listening to a multicast address on an interface
  • Type 133 Router Solicitation [RFC4861] â€" can be sent when an interface becomes enabled, to request routers to generate Router Advertisements immediately rather than at their next scheduled time
  • Type 134 Router Advertisement [RFC4861] â€" used by IPv6 routers to advertise their presence together with various link and Internet parameters either periodically, or in response to a Router Solicitation
    message
  • Type 135 Neighbor Solicitation [RFC4861] â€" sent by a node to determine the link-layer address of a neighbor or to verify that a neighbor is still reachable via a cached link-layer address. Neighbor solicitations are also used for Duplicate Address Detection as seen in Figure 207.
  • Type 136 Neighbor Advertisement [RFC4861] â€" a response to a Neighbor Solicitation message. A node may also send unsolicited Neighbor Advertisements to announce a link-layer address change.
  • Type 137 Redirect Message [RFC4861]
  • Type 138 Router Renumbering [Crawford]
  • Type 139 ICMP Node Information Query [RFC4620]
  • Type 140 ICMP Node Information Response [RFC4620]
  • Type 141 Inverse Neighbor Discovery Solicitation Message [RFC3122]
  • Type 142 Inverse Neighbor Discovery Advertisement Message [RFC3122]
  • Type 143 Version 2 Multicast Listener Report [RFC3810]
  • Type 144 Home Agent Address Discovery Request Message [RFC6275]
  • Type 145 Home Agent Address Discovery Reply Message [RFC6275]
  • Type 146 Mobile Prefix Solicitation [RFC6275]
  • Type 147 Mobile Prefix Advertisement [RFC6275]
  • Type 148 Certification Path Solicitation Message [RFC3971]
  • Type 149 Certification Path Advertisement Message [RFC3971]
  • Type 150 ICMP messages utilized by experimental mobility protocols such as Seamoby [RFC4065]
  • Type 151 Multicast Router Advertisement [RFC4286]
  • Type 152 Multicast Router Solicitation [RFC4286]
  • Type 153 Multicast Router Termination [RFC4286]
  • Type 154 FMIPv6 Messages [RFC5568]
  • Type 155 RPL Control Message [RFC-ietf-roll-rpl-19.txt]
  • Types 156â€"199 Unassigned
  • Type 200 Private experimentation [RFC4443]
  • Type 201 Private experimentation [RFC4443]
  • Type 255 Reserved for expansion of ICMPv6 informational messages [RFC4443]

Code

Aşağıdaki liste, kod alanlarını destekleyen veya ilginç bir kullanıma sahip olan daha yaygın ICMPv6 Türlerinin açıklamalarını sunmaktadır.

Type 1 Destination Unreachable Codes

  • Kod 0: No route to destination -bir yönlendiriciye kadar ulaştınız, ancak paketinizi iletmek için mevcut bir yönlendirme girişi yok (RFC bunun bir güvenlik duvarı filtresi nedeniyle de gönderilebileceğini söylese de, muhtemelen güvenlik duvarının bu kadar ayrıntılı olmak yerine paketleri sessizce attığını görmeyi tercih ederiz)
  • Kod 1: Hedefle iletişim idari olarak yasaklandı â€" korumalı bir ağa giden yetkisiz paketleri sessizce atmak istiyorsanız görmemeyi tercih edeceğiniz bir şey
  • Kod 2: Kaynak adresin kapsamı dışında â€" bu, bir paketin bağlantı yerel kaynak adresine ve küresel kapsamda bir hedefe sahip olması durumunda oluşturulur
  • Kod 3: Adrese ulaşılamıyor â€" bu, başka herhangi bir kod numarasına sığmayan tüm sorunlar için genel bir hata mesajıdır
  • Kod 4: Bağlantı noktasına ulaşılamıyor â€" normal ICMP ile aynı
  • Kod 5: Kaynak adresi giriş/çıkış ilkesinde başarısız oldu â€" yine â€" muhtemelen ağ üzerinden göndermek istemediğiniz bir şey
  • Kod 6: Hedefe giden yolu reddet â€" trafiğinizin hedefine ulaşamadığını gösteren genel bir gösterge
  • Kod 7: Kaynak Yönlendirme Başlığında Hata [RFC-ietf-roll-rpl-19.txt]

Type 2 Packet Too Big Code

  • Kod 0: Bu, şu anda tanımlanan tek kod değeridir. Bu paket bir MTU değeri içerir ve Yol MTU keşfi için kullanılır.

Type 3 Time Exceeded Codes

  • Kod 0: Aktarım sırasında atlama sınırı aşıldı-bu standart ICMP mesajıyla eşleşir.
  • Kod 1: Parça yeniden birleştirme süresi aşıldı-bu standart ICMP mesajıyla eşleşir.

Type 4 Parameter Problem Codes

  • Kod 0: Hatalı başlık alanıyla karşılaşıldı â€" IPv6 başlığındaki bir şey mantıklı gelmedi
  • Kod 1: Tanınmayan Sonraki Başlık türüyle karşılaşıldı â€" Sonraki Başlık alanı olağandışı bir şey içeriyordu â€" atanmış IPv6 Sonraki Başlık/IPv4 Protokolü alan değerlerinin listesi için www.iana.org/assignments/protocol-numbers/protocol-numbers.xml adresine bakın
  • Kod 2: Tanınmayan IPv6 seçeneğiyle karşılaşıldı-bu paket, içinde geçersiz bir seçenek bulunan bir veya daha fazla Uzantı Başlığı olan bir IPv6 paketine yanıt olarak gönderilebilir.

Type 128 Echo Request Code

  • Kod 0: Bu, şu anda tanımlanan tek kod değeridir. Bu paketin eşleştirmek için kullanılan bir Tanımlayıcı alanı vardır bu Yankı İsteğini bir Yankı Yanıtına.

Type 129 Echo Reply Code

  • Kod 0: Bu, şu anda tanımlanan tek kod değeridir. Bu pakette, ilgili Yankı İsteği paketinden alınan bir Tanımlayıcı alanı vardır

Type 138 Router Renumbering Codes

  • Kod 0: Yönlendirici Yeniden Numaralandırma Komutu
  • Kod 1: Yönlendirici Yeniden Numaralandırma Sonucu
  • Kod 255: Sıra Numarası Sıfırlama

Type 139 ICMP Node Information Query Codes

  • Kod 0: Veri alanı, bu Sorgunun Konusu olan bir IPv6 adresi içerir â€" tahmin edebileceğiniz gibi, bu tür bir paket keşif için kullanılabilir. Daha fazla ayrıntı için RFC 4620, "IPv6 Düğüm Bilgisi Sorguları" bölümünü okuyun.
  • Kod 1: Veri alanı bu Sorgunun Konusu olan bir ad içerir veya birNOOP durumunda olduğu gibi boştur.
  • Kod 2: Veri alanı, bu Sorgunun Konusu olan bir IPv4 adresi içerir.

Type 140 ICMP Node Information Response Codes

  • Kod 0: Başarılı bir yanıt. Yanıt Verisi alanı boş olabilir veya olmayabilir.
  • Kod 1: Yanıtlayıcı yanıt vermeyi reddediyor. Yanıt Verisi alanı boş olacaktır.
  • Kod 2: Sorgunun Q tipi Yanıtlayıcı tarafından bilinmiyor. Yanıt Verisi alanı boş olacaktır.

ICMPv6 türü ve kod numaraları hakkında daha fazla bilgi için www.iana.org/assignments/icmpv6-parameters adresine bakın.

Kaynakça

UDP Wireshark Analizi

Merhaba bu yazımda UDP protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

UDP Nedir?

Yakaladığınız trafikte çokça broadcast/multicast yayın görüyorsanız fazla sayıda UDP tabanlı iletişiminiz var demektir. UDP bağlantı kurmadan aktarım sağlar. Broadcast ve multicast trafiği UDP üzerinden akar. UDP başlığında port alanları, aktarımı kullanan uygulamayı tanımlar. UDP dört alandan oluşan 8 baytlık basit bir başlık(header) kullandığından, UDP'nin kendisi nadiren problem üretir. UDP, RFC 768, Kullanıcı Datagram Protokolü'nde tanımlanmıştır.

UDP bağlantısız taşıma hizmeti sunar

UDP kullanan yaygın uygulamalar DHCP/BOOTP, SIP, RTP, DNS, TFTP ve çeşitli video stream uygulamalarıdır.

UDP Trafik Analizi

DHCP Discover paketleri gibi normal UDP iletişimleri, istenen hizmetin hedef port numarası ile gönderilir. Şekilde bir DHCP paketindeki UDP başlığı gösterilmektedir. DHCP, aktarım protokolü olarak UDP kullanır. DHCP iletişimleri, istemci portnumarası olarak 68 numaralı bağlantı noktasını ve sunucu port numarası olarak 67 numaralı bağlantı noktasını kullanır.

UDP tabanlı bir DHCP başlatma sırası

Çoğu uygulama, iletişimin istemci tarafı için varsayılan port numarası kullanır. Örneğin, bir DNS sorgusu tipik olarak 53 numaralı porta gönderilir. Kaynak bağlantı noktası geçici bir port numarasıdır.

Doğrudan UDP ile ortaya çıkan çok az sorun vardır. Olası bir sorun, UDP port numarası değerine bağlı olarak engellenen trafiktir. Belirli port numaralarına gönderilen trafiği iletmeyen bir güvenlik duvarından oluşan bir ağdaki UDP trafiğini yakalama sonuçlarını göstermektedir. Bu durumda, güvenlik duvarı 161 (SNMP) ve 5060 (SIP) portlara giden trafiği engellemektedir. ICMP Destination Unreachable/Port Unreachable (Type 3/Code 3) paketleriyle yanıt vermek yerine, güvenlik duvarı paketleri sessizce atar. PCAP dosyanız yalnızca UDP trafiğini gösterir; yanıt görülmez.

SNMP eksiklerine bir cevap görülmez, port filtreleyen bir güvenlik duvarından kaynaklanmaktadır

UDP taramaları, Wireshark'ın varsayılan renklendirme kurallarını kullanarak UDP paketlerinin ve ICMP yanıtlarının sıralanmasını gördüğünüzde belirgindir. Yine, bir güvenlik duvarı port filtreleme yaparak trafiği engelliyorsa ICMP yanıtlarını göremeyebilirsiniz.

UDP taraması bir dizi ICMP Hedefe Ulaşılamıyor/Port Ulaşılamıyor yanıtını tetikler

Şekilde 192.168.1.123 adresini hedef alan bir UDP taraması gösterilmektedir. Her UDP paketi bir ICMP Hedefe Ulaşılamıyor/Port Ulaşılamıyor yanıtı tetiklediğinden, UDP taraması henüz açık bir UDP portu bulamamıştır.

UDP Paket Yapısı

UDP başlığı, IP başlığı Protokol alanında 17 (0x11) değeri ile tanımlanır.

UDP başlığı yalnızca dört alan içerir ve her zaman 8 bayt uzunluğundadır.

Source Port Field

Kaynak port alanı TCP ve UDP'de aynı amaca sahiptir â€" yanıt paketleri için bir dinleme portu açmak ve bazı durumlarda paketi gönderen uygulama veya protokolü tanımlamak.

Destination Port Field

Bu alan değeri, paket için hedef uygulamayı veya işlemi tanımlar. Bazı durumlarda kaynak ve hedef port numaraları istemci ve sunucu işlemleri için aynıdır. Diğer durumlarda, istemci ve sunucu işlemleri için ayrı ve benzersiz bir numara bulabilirsiniz (DHCP örneğinde olduğu gibi). Bir başka varyasyon da, istemcinin iletişimin kendi tarafı için geçici port numaraları ve iletişimin sunucu tarafı için iyi bilinen bir bağlantı noktası numarası kullanmasına izin vermektir.

Length Field

Uzunluk alanı, paketin UDP başlığından geçerli verinin sonuna kadar olan uzunluğunu tanımlar. Bu gereksiz bir alandır ve tüm iletişim sürecinde gerçekten oldukça gereksizdir. Aşağıdaki üç uzunluk alanını ve bunların yorumlarını göz önünde bulundurun:

  • IP Header Length = 5 (denoted in 4 byte increments)
  • The IP header is 20 bytes long.
  • IP Total Length Field = 329 bytes
  • The data after the IP header is 309 bytes â€" remember that 20 bytes is the IP header.
  • UDP Length Field = 309

IP başlığından sonraki veri (UDP başlığı dahil) 309 bayttır. Bunu IP başlığındaki Toplam Uzunluk Alanından bulduk. 8 baytlık UDP başlığını çıkardığınızda 301 baytlık veri olduğunu görürsünüz.

Checksum Field

Sağlama toplamı, UDP başlığının içeriği, veri ve IP başlığından türetilen bir sözde başlık üzerinde gerçekleştirilir. Sözde başlık IP başlığı kaynak adres alanı, hedef adres alanı, protokol alanı ve UDP uzunluk alanından oluşur. UDP tabanlı iletişimler her zaman bir sağlama toplamı gerektirmez â€" bazen bu alanın alıcıya sağlama toplamının doğrulanmaması gerektiğini söyleyen tüm sıfırlara (0x0000) ayarlandığını görürsünüz.

UDP Traffiği Filtreleri

UDP trafiği için yakalama filtresi sözdizimi basitçe udp'dir. Görüntüleme filtresi sözdizimi basitçe udp'dir. Aşağıda ek UDP görüntüleme filtreleri listelenmektedir.

  • udp.srcport==161 â€" SNMP response (port 161a dayanır)
  • udp.dstport==137 â€" NetBIOS Name Service (port 137 dayanır)
  • udp.length > 248 â€" 240 data bytedan daha fazla içeren UDP paketleri (8 byte UDP headerı için rezerve edilmiştir.)

UDP, TCP'nin heyecan verici, karmaşık dünyasına kıyasla nispeten sıkıcıdır.

Kaynakça

TCP Wireshark Analizi

Merhaba bu yazımda TCP protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

TCP Nedir?

TCP, iki cihaz arasında üçlü el sıkışma ile başlayan bir bağlantı üzerinden bağlantılı taşıma sağlar. Veriler sıralanır ve kayıp paketleri otomatik kurtarma sağlamak için onaylanır. UDP bir mektup veya kartpostal için standart posta dağıtım sistemine benzetilebilirken, TCP mektubunuzun veya kartpostalınızın teslimatını takip eden ve size alındığına dair bildirim gönderen bir ekspres taşıyıcıya benzetilebilir.

TCP, araya giren bir onay beklemeden çok sayıda veri paketini sırayla gönderme işlemi olan pencerelemeyi destekler. Pencerenin boyutu, ağın kaldırabileceği trafik miktarına (ağ tıkanıklık oranı), alıcının kullanılabilir tampon alanına ve göndericinin iletim tampon kapasitesine bağlıdır. Çoğu dosya aktarım protokolü, verilerin güvenilir bir şekilde teslim edilmesini sağlamak için TCP kullanır.

TCP, HTTP, HTTPS, e-posta, FTP ve daha fazlası gibi uygulamalar için aktarım sunar

TCP RFC 793'te ele alınmıştır, ancak orijinal TCP protokolünde TCP davranışını incelerken akılda tutulması gereken birçok geliştirme yapılmıştır.

TCP Trafik Analizi

Normal TCP iletişimi, bağlantı kurma, sıra izleme, veri kaybı kurtarma ve bağlantı kesme işlemlerini içerir.

TCP Bağlantıları

TCP bağlantıları üç yönlü bir el sıkışma yoluyla kurulur. Temel el sıkışma süreci üç paket gerektirir â€" SYN, SYN/ACK ve ACK.

SYN paketleri, her iki tarafın da birbirlerinin başlangıç sıra numaralarını (İlk Sıra Numarası veya ISN) bilmelerini sağlamak için sıra numaralarını senkronize eder. Aralarında değiş tokuş edilen veri sırasını bu şekilde takip edilir.

Üç yönlü TCP el sıkışması bir FTP bağlantısı kurar

Şekilde, 24.6.173.220 hostu 74.125.224.81 adresine bir TCP bağlantısı kurar. Paket 1, Info sütununda [SYN] tanımını içerir, paket 2 [SYN, ACK] ve paket 3 [ACK] listeler. Bu tanınabilir model, bir bağlantı kurmak için kullanılan TCP üç yönlü el sıkışmasıdır.

TCP bağlantıları çeşitli şekillerde sonlandırılabilir. Açık bir sonlandırma TCP Sıfırlamalarını kullanır. Örtük bir sonlandırma TCP FIN paketlerini kullanır.

FIN kullanıldığında, bir host bir FIN paketi gönderir ve FIN'i onaylanana ve eş kendi FIN'ini geri gönderene kadar FIN-WAIT durumuna girer. RFC 793'e göre, FIN bir bağlantıyı dolaylı olarak sonlandırmak için kullanıldığında aslında mümkün olan birkaç durum vardır.

Bir Windows veya Linux ana bilgisayarındaki TCP bağlantılarının mevcut durumunu öğrenmek için netstat -a yazın. Aşağıda bir Windows ana bilgisayarındaki bağlantı durumuna ilişkin bir örnek verilmiştir.

TCP 24.6.173.220:1035 poll:https ESTABLISHED
TCP 24.6.173.220:1071 egw1:https ESTABLISHED
TCP 24.6.173.220:9497 163â€"166:http CLOSE_WAIT
TCP 24.6.173.220:9699 nuq04s07-in-f11:http CLOSE_WAIT
TCP 24.6.173.220:9702 ec2â€"204â€"236â€"130â€"101:http CLOSE_WAIT
TCP 24.6.173.220:9703 ec2â€"204â€"236â€"131â€"42:http CLOSE_WAIT
TCP 24.6.173.220:9706 a184â€"84â€"222â€"33:http CLOSE_WAIT
TCP 24.6.173.220:9798 163â€"166:http CLOSE_WAIT
TCP 24.6.173.220:14717 nuq04s07-in-f5:http CLOSE_WAIT
TCP 24.6.173.220:15582 163â€"166:http CLOSE_WAIT
TCP 24.6.173.220:22167 66â€"151â€"158â€"187:https TIME_WAIT
TCP 24.6.173.220:22168 216â€"115â€"209â€"254:https TIME_WAIT
TCP 24.6.173.220:22169 probe-cgnt-sjc:https TIME_WAIT
TCP 24.6.173.220:22170 probe-cgnt-sjc:https TIME_WAIT
TCP 24.6.173.220:22171 216â€"115â€"209â€"254:https TIME_WAIT

FIN "Kapa Çeneni" Demek Değildir
RFC 793, FIN bitinin amacını göndericiden daha fazla veri gelmeyeceğini belirtmek olarak tanımlar. Bu, FIN paketinin alıcısının ek veri göndermesini engellemez, buna izin verilir.

TCP Sıfırlama, bir TCP bağlantısını açıkça kapatmak için kullanılır

Bir TCP bağlantısını açıkça sonlandırmak için kullanılan bir Sıfırlama da görebilirsiniz. Sıfırlamadan önce FIN'ler gelebilir veya Sıfırlama kendi başına olabilir. Şekilde, 24.6.173.220 tarafından kurulan bir HTTP bağlantısını göstermektedir. FIN paketinde sunucu, gönderecek başka verisi olmadığını belirten FIN biti ayarlı bir paket gönderir. İstemci yanıtı onaylar ve FIN biti ayarlanmış bir paket gönderir. Son olarak sunucu, son pakette bağlantıyı açıkça sonlandırmak için bir TCP Sıfırlama gönderir.

TCP Paket İzleme ve Kurtarma

Sıralama/onay süreci paketlerin sırasını izler ve eksik bölümleri tespit edip kurtarır.

El sıkışma işlemi sırasında bağlantının her iki tarafı da kendi başlangıç sıra numarasını (İlk Sıra Numarası) seçer. Her iki taraf da bu sıra numarasını her pakette bulunan veri miktarı kadar artırır. Sıralama/onay sürecini analiz ederken şu basit denklem kullanılır:

Sıralı bir iletişimin basit terimler/sayılarla nasıl gerçekleşebileceğine dair kısa bir örnek:

Onay Numarası alanı yalnızca veri alındığında artar. Varsayılan olarak Wireshark, daha kolay okunabilirlik için sıra numarası değerlerini 0'dan başlatan Göreceli Sıra Numaralandırmayı kullanır. Wireshark, 402691989 gibi bir sıra numarası görüntülemek yerine sıfır sıra numarasıyla başlar çünkü daha küçük sayılarla çalışmak daha kolaydır. Gerçek sıra numaralarını görmek istiyorsanız TCP tercihlerinde TCP Göreli Sıra Numaralarını ve Pencere Ölçeklendirmeyi devre dışı bırakın.(unutmayın, Onay Numarası alanı diğer taraftan beklenen bir sonraki sıra numarasının değerini içerir).

Anlaşma sağlandıktan sonra sıra numaraları yalnızca gönderilen gerçek veri baytlarının sayısı kadar artar. Bu örnekte, istemci veri gönderen ilk eştir (bir web sunucusundaki ana sayfayı alma isteği).

TCP Sırası ve Onay numaraları, değiştirilen verileri izler

İlk Bağlantı

Şekilde gösterilen TCP iletişimleri http-espn2011.pcapng adlı dosyada görülebilir. Bu dosyada kullanıcı www.espn.com'a bağlanır ve içeriğin kalıcı olarak go.espn.com'a taşındığı konusunda bilgilendirilir. İstemci daha sonra go.espn.com'a bağlanır.

İkinci Bağlantı

Bu ikinci bağlantının başlangıcı ve Sıra/Onay Numarası alan değerleri Şekilde gösterilmektedir.

TCP, paket kaybını belirleme (eksik sıra numaralarına dayalı olarak) ve eksik veri bölümlerini talep ederek (alıcı tarafı) veya zaman aşımına uğrayarak ve onaylanmayan bölümleri yeniden göndererek (gönderen taraf) kurtarma yeteneğine sahiptir.

Alıcı, beklenen sıra numarasının pakette olmadığını fark ettiğinde paketin kaybolduğunu varsayar. Bu noktada alıcı, Onay Numarası alanını eşten beklenen bir sonraki sıra numarasına ACK olarak ayarlar.

Yüksek gecikmeli yollar üçten fazla aynı ACK'nin nedeni olabilir

Üçten fazla AC'in alınması yeniden iletimi tetikleyecektir. Örneğin alıcı Şekildeki gibi dizi atlandığında Onay Numarası alanına 112750 ile ACK gönderir. Sıra numarası 112750 değil, ek veriler alındığında, ek ACK'ler (Onay Numarası alanında 112750 ile birlikte) gönderilecektir. Wireshark bunları Yinelenen ACK'ler olarak işaretler.

TCP göndericileri, bir TCP eşi tarafından onaylanmayan bir paketin ne zaman yeniden iletilmesi gerektiğini belirlemek için bir TCP Yeniden İletim Zaman Aşımı (RTO) değerini korur. Bir veri paketi gönderilirse ve RTO zamanlayıcısının süresi dolmadan onaylanmazsa, TCP göndericisi orijinal paketin sıra numarasını kullanarak paketi yeniden iletebilir.

Yeniden iletim zaman aşımı değerine ulaşıldığında HTTP sunucusu bir paketi yeniden iletir

Şekilde, bir ACK'i bekledikten sonra veri paketini yeniden gönderen ve RTO'nun süresi dolmadan önce onu almayan bir sunucuyu göstermektedir. Yaklaşık 600 ms sonra başka bir yeniden iletim gönderilir. TCP'nin geri çekilme algoritmasını kullanarak, paket onaylanana veya gönderen TCP hostu beş yeniden iletimden sonra vazgeçene kadar her yeniden iletim girişiminde araya giren süre iki katına çıkar.

TCP, yoğun trafiğin olduğu bilinen bir bağlantı üzerinden veya overload olmuş bir hosta gönderilmemesini sağlamak için bir akış kontrolü yöntemi sunar.

TCP iletişimlerinin aktarım hızı, network congestion'a bağlıdır. congestion, bir seferde bekleyen (onaylanmayan) bayt sayısını tanımlar. Bu aslında gönderici tarafından uygulanan bir akış kontrol mekanizmasıdır. congestion bir ayar değildir; iki temel faktöre göre dinamik olarak belirlenir:

  • Alıcının TCP arabellek alanı bildirildi
  • Gönderenin iletim arabelleği kapasitesi
  • Ağda izin verilen trafik miktarı (ağ tıkanıklığı/paket kaybına göre)

congestion her zaman bu üç değerden düşük olacaktır. Örneğin, bir Ethernet ağında, bir alıcının 65.535 baytlık bir frame tanıttığını, ancak bağlantının, eşin 65.535 alma arabelleğinden hiç faydalanmadan önce düzenli olarak paket kaybı yaşadığını varsayalım.

Gerçek congestion 65.535 bayt değildir ancak ağın neyi destekleyeceğine bağlı olarak daha düşük bir değerdir. Paket kaybından sonra congestion belirleme süreci RFC 2001'de ayrıntılı bir şekilde tanımlanmıştır.

TCP Sorunları Analizi

El sıkışma sürecindeki sorunlardan paket kaybına, TCP bağlantı kopmalarına, donmuş pencerelere kadar TCP katmanında oluşabilecek çok sayıda sorun vardır.

TCP bağlantısı RST/ACK ile reddedildi

TCP el sıkışma sorunlarıyla başlıyoruz. Şekilde bir TCP bağlantı reddi gösterilmektedir. Şekil 235'te, el sıkışmanın (SYN) ilk paketi bir Sıfırlama (RST/ACK) yanıtı alır. Bağlantı kurulamıyor. El sıkışma işlemi başarıyla tamamlanmazsa hostlar arasında veri alışverişi yapılamaz.

Aşırı sayıda başarısız TCP bağlantı denemesi bir TCP taramasına işaret edebilir.

Paket kaybı nedeniyle başarısız bir TCP bağlantısı

Şekilde, el sıkışma işlemiyle ilgili başka bir sorunu göstermektedir. Şekili incelediğimizde aşağıdakileri görebiliriz:

  • El sıkışma normal görünüyor; 3â€"5 paketlerinde SYN, SYN/ACK, ACK. El sıkışmanın (SYN) ilk paketinde istemcinin sıra numarası olan 67.161.32.69'un, Wireshark tarafından tanımlanan göreceli bir sıra numarası olan 0 olarak gösterildiğine dikkat edin. Bu istemciden gönderilen bir sonraki paket (paket numarası 5), istemci SYN paketinde herhangi bir veri göndermemiş olmasına rağmen istemcinin sıra numarasının artık 1 olduğunu gösterir. TCP spesifikasyonu (RFC 793, İletim Kontrol Protokolü), SYN paketlerinden sonraki ilk veri paketinin Başlangıç Sıra Numarasını (ISN) 1 artırması gerektiğini tanımlar.
  • Handshake işleminin ardından istemci, sunucuya 14 byte veri içeren bir paket gönderir ve paket 6 üzerinde Push (PSH) ve ACK bitlerini ayarlar.
  • Paket 7 bir şeylerin ters gittiğinin ilk göstergesidir. İstemcinin RTO değerinin süresi, paket 6'ya ACK gelmesini beklerken doldu. Paket 7, paket 6'nın yeniden iletimidir.
  • Paket 8 de bir yeniden iletimdir. Sunucu, TCP el sıkışmasından gelen SYN/ACK paketini yeniden göndermiştir. Sunucu el sıkışma sürecinin üçüncü paketini almamış gibi görünüyor. Sunucu, istemciden el sıkışma ACK paketini talep etmek için Acknowledgment Number alan değerini 1 olarak ayarlar.
  • Sunucu sürekli olarak el sıkışmanın üçüncü paketini ister. Ancak istemci, Sıra Numarası 1 olan iki paket göndermiştir. İstemci, el sıkışmanın son paketi yerine ilk veri paketini yeniden iletir.

Bu sorun kendi kendine çözülemez. Sunucu, el sıkışma işleminin düzgün bir şekilde çözüldüğünü görene kadar 14 baytlık veriyi kabul etmeyecektir. Yeni bir bağlantı denemesi oluşturmak için 4321 numaralı portunda RWhois (Yönlendirme Whois) hizmetine TCP bağlantısı başlatan uygulamanın yeniden başlatılması gerekir.

TCP Paket Yapısı

TCP üstbilgisi genellikle 20 bayt uzunluğundadır ancak TCP üstbilgisi, başlık uzunluğunu artırabilen bir Seçenekler alanını destekler.

Source Port Field

TCP kaynak portu, göndericide açık olan dinleme port numarasıdır.

Destination Port Field

TCP hedef bağlantı noktası, alıcıda açık olan hedef port numarasıdır.

Stream Index [Wireshark Field]

Akış İndeksi, TCP başlığındaki gerçek bir alan değildir. Akış İndeksi değeri Wireshark tarafından tanımlanır ve bir TCP konuşmasını hızlı bir şekilde filtrelemek için kullanılabilir.

Sequence Number Field

Bu alan, TCP segmentini benzersiz şekilde tanımlayan bir sayı içerir (TCP başlığını takip eden verilere TCP 'segment' adı verilir). Bu sıra numarası, TCP segmenti için bir tanımlayıcı sağlar ve alıcıların, bir iletişim akışının parçalarının ne zaman eksik olduğunu belirlemesine olanak tanır. Sıra numarası, her pakette bulunan veri baytlarının sayısına göre artar.

Next Expected Sequence Number [Wireshark Field]

Bu alan yalnızca veri içeren paketlerde görünür â€" bu alan SYN paketlerinde veya basit ACK paketlerinde görülmez. Wireshark mevcut paket Sıra Numarasını inceler ve bu numarayı sağlamak için veri baytlarının sayısını ekler.

Acknowledgment Number Field

Onay Numarası alanı iletişimin diğer tarafından beklenen bir sonraki sıra numarasını gösterir. Bir ana bilgisayar tarafından hiçbir zaman artırılmayan bir Onay Numarası alanı, yalnızca o ana bilgisayar tarafından hiçbir veri alınmadığını gösterir.

Data Offset Field

Bu, TCP başlığının uzunluğunu tanımlar. 4 baytlık artışlarla tanımlanır, dolayısıyla bu alandaki 5 değeri, TCP başlığının 20 bayt uzunluğunda olduğunu gösterir. TCP başlık uzunluğu kullanılan TCP başlık seçeneklerine göre değişebileceği için bu alana ihtiyacımız var. TCP seçenek alanı, TCP bağlantı kurulumu sırasında Maksimum Segment Boyutunu (MSS) oluşturmak için sıklıkla kullanılır.

Flags Field

Aşağıdaki liste TCP başlığında kullanılan bayrakları açıklamaktadır:

  • Reserved: Bu üç bit sıfıra ayarlanmıştır.
  • Nonce: Nonce alanı, IP başlığındaki ECN alanlarıyla birlikte çalışır. Bu işlevsellik, RFC 3540, Nonces ile Sağlam Explicit Congestion Notification (ECN) Sinyali'nde açıklanmaktadır.
  • Congestion Window Reduced (CWR): gecikme, veri göndericisi tarafından, veri alıcısına Congestion azaldığını bildirmek için ayarlanır.
  • URG (Urgent): Acil İşaretçi alanının incelenmesi gerektiğini belirtir; Acil İşaretçi alanı, TCP Sağlama Toplamı(checksum) alanından sonra bulunur ve kullanılmadığında 0x0000 olarak ayarlanır. Acil İşaretçi alanı yalnızca bu bit ayarlandığında işlenir.
  • ACK (Acknowledgment): Onay paketi
  • PSH (Push): Arabelleğe almayı atlayın ve verileri doğrudan ağa aktarın Gelen verileri arabelleğe almayın â€" doğrudan uygulamaya aktarın
  • RST (Reset): Bağlantıyı açıkça kapatın
  • SYN (Synchronize): Sıra numaralarını senkronize edin â€" el sıkışma sürecinde kullanılır
  • FIN (Finish): İşlem tamamlandı, bağlantı sonlandırma

Window Field

Bu alan, bayt cinsinden TCP alıcı arabelleğinin boyutunu gösterir. 0 pencere boyutu, alıcının kullanılabilir arabellek alanı olmadığını gösterir. Bu iki bytelık alanda gösterilebilecek maksimum değer 65.535'tir. Pencere ölçeklendirme (TCP el sıkışma işlemi sırasında oluşturulur), ana bilgisayarların daha büyük pencere boyutları kullanmasını sağlar. Pencere Boyutu alanı değeri 65.535'ten küçük olan tüm paketler için görüntüleme filtresi tcp.window_size < 65535'tir.

Checksum Field

TCP sağlama toplamı, TCP başlığının ve verisinin içeriği üzerinde gerçekleştirilir (veri bağlantısı dolgusu dahil değildir) yanı sıra IP başlığından türetilen bir sözde başlık. Daha fazla bilgi için RFC 793'e bakın.

Urgent Pointer Field

Bu alan yalnızca URG biti ayarlanmışsa geçerlidir. URG biti ayarlanmışsa, alıcı pakette ilk olarak nereye bakacağını/okuyacağını görmek için bu alanı incelemelidir. Bu yaygın bir işlev değildir. Acil İşaretçi alanı içeren tüm paketler için görüntüleme filtresi tcp.urgent_pointer'dır. Acil biti 1 olarak ayarlanmadığı sürece Wireshark bu alanı görüntülemeyecektir.

TCP Trafiğini Filtreleme

TCP Trafiğinde capture ve display filter sözdizimi basitçe tcp'dir.

  • tcp.srcport==21 â€" FTP yanıtı (FTP'nin 21 numaralı bağlantı noktasında çalıştığını varsayarak)
  • tcp.dstport==80 â€" Port 80'e yönlendirilen trafik (HTTP çoğunlukla port 80 üzerinde çalışır)
  • tcp.hdr_len > 20 â€" Bir veya daha fazla seçenek içeren TCP üstbilgileri
  • (tcp.window_size < 1460) && (tcp.flags.fin==0) && (tcp.flags.reset==0) â€" RST biti ayarlanmamış bir pakette bir MSS'den daha küçük TCP pencere boyutu â€" bu veri aktarım sürecini yavaşlatır; kurtarmak için pencere güncellemeleri gerekir â€" örneğin, http-download-good.pcapng izleme dosyasında bu tür paketleri arayın.
  • !(tcp.flags.cwr==0) || !(tcp.flags.ecn==0) â€"Congestion Azaltıldı bayrağı veya ECN-Echo bayrağı ayarlanmış paketler.
  • tcp.options.mss_val < 1460 â€" TCP MSS ayarı 1.460 bayttan az (bu, el sıkışma sürecinde görülecektir)
  • tcp.options.wscale_val â€" TCP pencere ölçeği seçeneği TCP başlığında mevcuttur.
  • tcp.analysis.flags â€" Paketler TCP sorunları veya bildirimleri ile işaretlendi (TCP tercihlerinde TCP Sıra Numaralarını Analiz Et devre dışı bırakılmışsa çalışmaz)
  • tcp.analysis.lost_segment â€" Bu paketten önce kayıp bir segment tespit edildi- mevcut birçok bireysel TCP analiz bayraklarından biri. Diğer TCP analiz bayraklarını görüntülemek için otomatik tamamlama özelliğini (tcp.analysis.)-dönemi dahil edin- veya İfadeleri kullanın

Kaynakça

[TR] Hidden Tunnels (C&C) Wireshark ile Analizi

[TR] Hidden Tunnels (C&C) Wireshark ile Analizi

Merhaba bu yazımda HTTP tünelleme tekniklerinden bahsedeceğim.

Bilgisayar güvenliği alanında "Hidden Tunnels" terimi genellikle kötü amaçlar için kullanılan veri sızdırma, komuta ve kontrol (C&C) veya ağ tespitini atlama gibi çeşitli amaçlar için kullanılan gizli veya izinsiz ağ bağlantılarını ifade eder. Bu gizli tüneller, saldırganların faaliyetlerini gizlemelerine ve güvenlik önlemlerini aşmalarına yardımcı olur.

HTTP/HTTPS Tünelleme

HTTP/HTTPS tünellemesi, ağ güvenlik önlemlerini atlatmak için kullanılan bir tekniktir. Bu yöntem, HTTP veya HTTPS paketlerinin içine HTTP olmayan trafiği kapsüllenerek gerçekleştirilir. HTTP/HTTPS tünellemesi, kısıtlayıcı web filtreleme politikalarının olduğu ortamlarda sıkışmış web sitelerine veya hizmetlere erişim sağlamak gibi meşru amaçlar için kullanılabilir, ancak aynı zamanda veri sızdırma veya kompromize edilmiş sistemlerin uzaktan kontrolü gibi kötü amaçlı aktiviteler için de kullanılabilir.

  1. Kapsülleme: HTTP/HTTPS tünellemesinde, HTTP olmayan trafiği HTTP veya HTTPS paketleri içine kapsüllenir. Bu, başka bir uygulama veya protokolün verilerinin düzenli web trafiği gibi paketlenmesi anlamına gelir.
  2. Gönderim: Kapsüllenmiş veri daha sonra HTTP veya HTTPS bağlantısı üzerinden uzak bir sunucuya veya hedefe gönderilir. Hedef sunucu gelen HTTP/HTTPS isteklerini ve yanıtları normal web istekleri gibi işler, bu nedenle ağ güvenlik cihazlarının trafiğin gerçek doğasını tanımlaması zorlaşır.
  3. Kapsüllemenin Açılması: Alıcı tarafta, HTTP/HTTPS paketleri açılarak orijinal HTTP olmayan veriler çıkartılır. Bu veri daha sonra gerektiği gibi işlenir veya yürütülür.

Güvenlik perspektifinden bakıldığında, HTTP/HTTPS tünellemenin kullanımı, geleneksel güvenlik cihazlarının böyle gizli iletişim kanallarını tespit ve engelleme konusunda zorluklar yaşatabileceği anlamına gelir. Bu sorunla mücadele etmek için organizasyonlar genellikle trafiği daha derinlemesine inceleyebilen, anormallikleri ve şüpheli davranış belirtilerini arayan gelişmiş tehdit algılama ve önleme çözümleri kullanır. Ayrıca, güvenlik politikaları ve ağ izleme, HTTP/HTTPS tünelleme ile ilişkilendirilen riskleri tanımlamak ve azaltmak için önemlidir.

Siber suçlular, HTTP veya HTTPS protokollerini kullanarak web trafiği içinde gizli tüneller oluşturabilirler, böylece veri sızdırabilir veya enfekte sistemleri kontrol edebilirler.

HTTP/HTTPS tünelleme, bir ağ üzerinden HTTP (Hypertext Transfer Protocol) veya HTTPS (HTTP Secure) trafiğini başka bir sunucuya yönlendirmek veya tünellemek amacıyla kullanılan bir tekniktir. Bu tür bir tünelleme, özellikle ağ güvenliği açısından önemli bir sorun teşkil edebilir.

HTTP/HTTPS Tünelleme nasıl yapılır?

HTTP/HTTPS tünelleme, normalde web trafiği olarak kabul edilen HTTP veya HTTPS isteklerini veya yanıtlarını başka bir sunucuya iletmek veya yönlendirmek için kullanılır. Bunun için birkaç farklı yöntem kullanabilirler:

  1. HTTP Proxy Sunucuları: Kullanıcılar veya zararlı yazılım, bir HTTP proxy sunucusu aracılığıyla internete erişim sağlar. Bu proxy sunucusu, kullanıcıların isteklerini alır, hedef sunucuya iletir ve yanıtları geri kullanıcıya ileterek tünelleme yapar.
  2. VPN (Virtual Private Network): VPN'ler, kullanıcıların internet üzerinde gizlilik ve güvenlik sağlamak için kullandığı bir tür tünelleme teknolojisidir. VPN istemcisi ve sunucusu arasında şifreli bir tünel oluşturarak HTTP veya HTTPS trafiği tünel içinden geçebilir.
  3. SSH (Secure Shell): SSH ağdaki iki cihaz arasında güvenli bir iletişim kanalı oluşturmak için kullanılan bir yöntemdir. Bu, bilgisayarlar arasında veri iletimini şifrelemek ve güvenliğini sağlamak için kullanılır. SSH tunnel, özellikle internet üzerinden güvenli bir şekilde veri iletimi gerektiğinde yaygın olarak kullanılır.

HTTP/HTTPS Tünelleme Analizi

HTTP/HTTPS tünelleme, ağ güvenliği açısından dikkatle izlenmesi gereken bir konudur. Güvenlik duvarları, IDS/IPS (Intrusion Detection System/Intrusion Prevention System) sistemleri ve diğer güvenlik önlemleri, bu tür tünelleme trafiğini izlemek ve tespit etmek için kullanılabilir. Ayrıca, kullanıcı eğitimi ve güvenlik politikaları, HTTP/HTTPS tünelleme ile ilgili riskleri azaltmaya yardımcı olabilir.

DNS Tünelleme

DNS tünelleme, veri aktarımı için tasarlanmamış bir protokol olan DNS protokolü üzerinden veri göndermek için kullanılan bir yöntemdir. Bu, DNS paketleri içinde başka veri türlerini taşıma veya başka bir sunucu ile iletişim kurma amacıyla gerçekleştirilir. DNS tünelleme, özellikle ağ güvenliği açısından önemli bir sorun teşkil edebilir. Bunun bir nedeni, DNS paktlerinin firewall gibi güvenlik ürünlerine takılmadan geçebilmesidir.

DNS Tünelleme nasıl yapılır?

DNS tünelleme işlemi, DNS sorgularının ve cevaplarının normal DNS trafiği içinde gizlenmesiyle gerçekleştirilir.

  1. Saldırgan kötüsite.com gibi bir alan adı kaydeder. Alan adının sunucusu, tünelleme programının yüklü olduğu saldırganın sunucusuna işaret eder.
  2. Saldırgan, genellikle bir şirketin güvenlik duvarının arkasında bulunan bir bilgisayara zararlı yazılım bulaştırır. DNS isteklerinin güvenlik duvarına girip çıkmasına her zaman izin verildiğinden, virüs bulaşmış bilgisayarın DNS çözümleyicisine bir sorgu göndermesine izin verilir.
  3. DNS çözümleyici, IP adresi isteklerini kök ve üst düzey etki alanı sunucularına ileten bir sunucudur. Bu sorguyu tünelleme programının yüklü olduğu saldırganın komuta ve kontrol sunucusuna yönlendirir.
  4. Artık kurban ile saldırgan arasında DNS çözümleyicisi üzerinden bir bağlantı kurulmuştur. Bu tünel veri sızdırmak ya da diğer kötü niyetli amaçlar için kullanılabilir. Saldırgan ve kurban arasında doğrudan bir bağlantı olmadığından, saldırganın bilgisayarının izini sürmek daha zordur.

DNS Tünelleme

DNS Tünelleme Analizi

wireshark

DNS tünelleme, ağ güvenliği açısından ciddi bir tehdit oluşturabilir, bu nedenle güvenlik duvarları, IDS/IPS sistemleri ve DNS denetimleri, bu tür saldırılara karşı korunma amacıyla kullanılmalıdır. Ayrıca, iyi bir güvenlik politikası ve DNS trafiği izleme ve analiz etme yetenekleri bu tür tehditleri tespit etmeye yardımcı olabilir.

ICMP Tünelleme

ICMP tünelleme veya ICMP gizli kanallar, ICMP (Internet Control Message Protocol â€" İnternet Kontrol İleti Protokolü) paketleri içinde gizli iletişim kanalları oluşturmak için kullanılan bir yöntemdir. ICMP genellikle ağ sorun giderme ve hata raporlama için kullanılır, ancak saldırganlar bu protokolü veri iletimi için gizlice kullanabilirler. Bu teknik, ağ güvenlik kontrollerini atlatmak için ICMP paketleri içinde ICMP olmayan trafiği kapsüllenmesini içerdiği için "ICMP tünelleme" olarak da bilinir.

ICMP tünelleme nasıl çalışır:

  1. Kapsülleme: ICMP tünelleme, ICMP "ping" istekleri gibi genellikle ağ teşhis amaçları için kullanılan ICMP "echo request" ve "echo reply" paketleri içinde ICMP olmayan veri veya trafik kapsüllenmesini içerir.
  2. İletim: Kapsüllenmiş veri daha sonra gönderici ve alıcı arasında ICMP trafiği olarak iletilir. Gönderici ve alıcı genellikle bir saldırganın kontrolü altındaki kompromize edilmiş sistemler veya cihazlardır.
  3. Kapsüllemenin Açılması: Alıcı tarafta, ICMP paketleri açılarak orijinal ICMP olmayan veri çıkarılır, bu veri daha sonra işlenir veya gerektiği gibi kullanılır.

ICMP tünelleme, kötü amaçlı amaçlar için kullanılabileceği gibi, belirli senaryolarda ağ teşhisinde kullanıldığında meşru uygulamalara da sahip olabilir.

Güvenlik perspektifinden bakıldığında, ICMP tünelleme tespit ve önleme konusunda zorluklar yaşatabilir. Ağ güvenliği çözümleri, anormal veya yetkilendirilmemiş ICMP trafiği desenlerini tanımlamak için gelişmiş anormallik tespiti tekniklerini kullanmalıdır. Ayrıca, organizasyonlar ICMP trafiğinin kullanımını sınırlamak ve gizli kanalın kötüye kullanılma riskini azaltmak için ağ segmentasyonu ve erişim kontrolü uygulamalıdır.

ICMP (Internet Control Message Protocol) tünelleme, siber saldırganların ağ güvenlik önlemlerini atlayarak veri iletimi ve tarama yapmalarına olanak tanıyan bir tekniktir. ICMP, ağ cihazları arasında hata mesajlarını ve diğer kontrol mesajlarını iletmek için kullanılan bir protokoldür. ICMP tünelleme, bu kontrol mesajları üzerinden veri tünelleme amacıyla kullanılır.

ICMP tünelleme nasıl yapılır?

ICMP tünelleme, aşağıdaki temel adımları içerebilir:

  1. Tünel Başlatma: İlk olarak, siber saldırganlar genellikle bir hedef sunucuya veya ağa erişim sağlamak için ICMP tünelini başlatır. Bu, genellikle bir kötü amaçlı yazılım veya saldırı aracı kullanılarak yapılır.
  2. Veri Gönderme: Saldırganlar, ICMP paketleri içinde verileri gizlerler. Bu veriler, hedef sunucuya veya ağa iletilmesi gereken bilgileri içerebilir.
  3. ICMP Paketleri Gönderme: Veriler, ICMP paketleri içinde gizlendikten sonra, bu paketler hedef sunucuya veya ağa gönderilir. Bu paketler normal ICMP trafiği gibi görünebilir.
  4. Alıcı Taraf: Hedef sunucu veya ağ üzerindeki bir alıcı taraf, gelen ICMP paketlerini yakalar ve içlerinden gizlenmiş verileri çıkarır.

Siber saldırılar ve ICMP tünelleme:

Siber saldırganlar, ICMP tünelleme yöntemini kötü amaçlı amaçlar için kullanabilirler. İşte bazı örnekler:

  1. **Veri Sızdırma**: Saldırganlar, hedef sunucuya veya ağa sızdırmaları gereken verileri ICMP tünelleme kullanarak gizleyebilirler. Bu, hassas bilgilerin çalınmasını kolaylaştırabilir.

  2. **Engelleme ve Filtreleme Atlatma**: Bazı ağ güvenlik duvarları veya filtreler, ICMP trafiğini engellemek veya sınırlamak için kullanılabilir. ICMP tünelleme, bu tür engellemeleri atlamak için kullanılabilir.

  3. Tarama ve Keşif: Saldırganlar, hedef ağdaki güvenlik açıklarını tespit etmek ve hedefleri taramak için ICMP tünelleme kullanabilirler.

ICMP tünelleme, ağ güvenliği açısından ciddi bir tehdit oluşturabilir çünkü bu tür trafiği izlemek ve engellemek zor olabilir. Bu nedenle, ağ güvenlik duvarları ve IDS/IPS (Intrusion Detection System/Intrusion Prevention System) sistemleri, ICMP tünelleme trafiğini tespit etmek ve engellemek için iyi yapılandırılmalıdır. Ayrıca, düzenli güvenlik denetimleri ve güvenlik politikaları da bu tür tehditlere karşı önlem alınmasına yardımcı olabilir.

Kaynaklar

HTTP Wireshark Analizi

Merhaba bu yazımda HTTP protokolünü ve Wireshark ile analizini anlatmaya çalışacağım.

HTTP Nedir?

Hypertext Transfer Protocol (HTTP) "dağıtılmış hipermedya bilgi dağıtım uygulaması" olarak adlandırılır. HTTP, bir kişi internette gezinirken kullanılan uygulamadır. HTTP bir istek/cevap modeli kullanır.

HTTP ve HTTPS TCP aktarımını kullanır

HTTP v1.0, kullanımdaki mevcut sürüm olan HTTP v1.1 kadar sık kullanılmamaktadır. HTTP v1.1 RFC 2616, Hypertext Transfer Protocol â€" HTTP/1.1'de ele alınmıştır.

HTTP Trafik Analizi

Normal HTTP iletişimleri istek/cevap iletişim tarzını kullanır. İstemciler HTTP sunucularından istekte bulunur ve sunucular Durum Kodları ile yanıt verir.

HTTP bir istek/yanıt kalıbı kullanır

TCP bağlantısı başarıyla kurulduktan sonra, istemci "/" için bir HTTP GET isteği yapar. Sunucu 200 OK durum koduyla yanıt verir ve istemciye www.facebook.com ana sayfasının içeriğini göndermeye başlar.

http-facebook.pcapng'de görülen tüm HTTP Durum Kodları iyidir-hepsi 200 OK. HTTP Durum Kodu Registrysi www.iana.org/assignments/http-status-codes adresinde tutulmaktadır. Aşağıda mevcut Durum Kodları listelenmiştir.

1xx Informational

  • 100 Continue [RFC2616]
  • 101 Switching Protocols [RFC2616]
  • 102 Processing [RFC2518]

2xx Success

  • 200 OK [RFC2616]
  • 201 Created [RFC2616]
  • 202 Accepted [RFC2616]
  • 203 Non-Authoritative Information [RFC2616]
  • 204 No Content [RFC2616]
  • 205 Reset Content [RFC2616]
  • 206 Partial Content [RFC2616]
  • 207 Multi-Status [RFC4918]
  • 208 Already Reported [RFC5842]
  • 226 IM Used [RFC3229]

3xx Redirection

  • 300 Multiple Choices [RFC2616]
  • 301 Moved Permanently [RFC2616]
  • 302 Found [RFC2616]
  • 303 See Other [RFC2616]
  • 304 Not Modified [RFC2616]
  • 305 Use Proxy [RFC2616]
  • 306 Reserved [RFC2616]
  • 307 Temporary Redirect [RFC2616]
  • 308 Permanent Redirect [RFC-reschke-http-status-308â€"07]

4xx Client Error

  • 400 Bad Request [RFC2616]
  • 401 Unauthorized [RFC2616]
  • 402 Payment Required [RFC2616]
  • 403 Forbidden [RFC2616]
  • 404 Not Found [RFC2616]
  • 405 Method Not Allowed [RFC2616]
  • 406 Not Acceptable [RFC2616]
  • 407 Proxy Authentication Required [RFC2616]
  • 408 Request Timeout [RFC2616]
  • 409 Conflict [RFC2616]
  • 410 Gone [RFC2616]-
  • 411 Length Required [RFC2616]
  • 412 Precondition Failed [RFC2616]
  • 413 Request Entity Too Large [RFC2616]
  • 414 Request-URI Too Long [RFC2616]
  • 415 Unsupported Media Type [RFC2616]
  • 416 Requested Range Cannot be Satisfied [RFC2616]
  • 417 Expectation Failed [RFC2616]
  • 422 Unprocessable Entity [RFC4918]
  • 423 Locked [RFC4918]
  • 424 Failed Dependency [RFC4918]
  • 425 Reserved for WebDAV â€" see IANA list [RFC2817]
  • 426 Upgrade Required [RFC2817]
  • 428 Precondition Required [RFC6585]
  • 429 Too Many Requests [RFC6585]
  • 431 Request Header Fields Too Large [RFC6585]

5xx Server Error

  • 500 Internal Server Error [RFC2616]
  • 501 Not Implemented [RFC2616]
  • 502 Bad Gateway [RFC2616]
  • 503 Service Unavailable [RFC2616]
  • 504 Gateway Timeout [RFC2616]
  • 505 HTTP Version Not Supported [RFC2616]
  • 506 Variant Also Negotiates (Experimental) [RFC2295]
  • 507 Insufficient Storage [RFC4918]
  • 508 Loop Detected [RFC5842]
  • 510 Not Extended [RFC2774]
  • 511 Network Authentication Required [RFC6585]

Bir HTTP istemcisi yakın zamanda bir sayfayı ziyaret etmişse ve bu sayfa yerel olarak önbelleğe alınmışsa, istemci IfModified-Since parametresini gönderebilir ve önceki sayfanın indirildiği tarih ve saati sağlayabilir. Sunucu 304 Not Modified ile yanıt verirse, sunucu zaten önbelleğe alınmış olan sayfayı yeniden göndermeyecektir. Bu, HTTP performansını analiz ederken HTTP'nin anlaşılması gereken önemli bir parçasıdır.

HTTP İstatistikleri

Wireshark yük dağıtımı, paket sayaçları ve HTTP istekleri için HTTP istatistiklerini izler. İstatistik | HTTP öğesini seçin ve ilgilendiğiniz istatistik türünü seçin.

İstatistiklere bir display filter uygulamak için bir seçenek sunulur. Örneğin, çok sayıda hosta yönelik web tarama oturumlarını içeren bir trace dosyanız varsa, yalnızca www.wireshark.org adresine yönelik web tarama oturumlarına ilişkin istatistikleri incelemek için "http.host==www.wireshark.org" filtresini uygulayabilirsiniz.

İstatistikler

HTTP Load Distribution, HTTP isteklerini ve yanıtlarını sunucuya göre listeler. HTTP hostuna göre HTTP İstekleri bölümünün genişletilmesi, iletişim kurulan hostları ve her birine gönderilen istek paketlerinin sayısını listeler.

HTTP Yük Dağılımı istatistiği, web sitesi yönlendirmelerini ve bağımlılıklarını belirlemek için mükemmel bir kaynaktır.

HTTP yük dağılımı

Şekilde www.espn.com adresine göz attığımızda HTTP yönlendirmelerini ve bağımlılıklarını görüntülemekteyiz.

HTTP Paket Sayıcı

HTTP Paket Sayacı çok değerlidir çünkü Durum Kodunu listeler
yanıtları. 4xx İstemci Hatası veya 5xx Sunucu Hatası yanıtlarını tespit etmek basittir. Şekilde www.espn.com adresine yapılan başka bir tarama oturumu için HTTP Paket Sayacı gösterilmektedir (httpespn2007.
pcapng). Bazı HTTP 301 ve 302 yönlendirmelerini ve bir 404 Bulunamadı yanıtını görebiliriz.

HTTP İstekleri

HTTP İstekleri, her bir HTTP sunucusundan talep edilen her bir öğeyi listeler. Şekilde, HTTP İsteklerini inceliyoruz Web browser oturumumuz sırasında www.espn.com adresine gönderilen istekler.

HTTPS Trafik Analizi

Web analiziniz muhtemelen HTTPS iletişimlerinin analizini de içerecektir. Güvenli bir HTTP görüşmesinin başlangıcında, standart bir TCP el sıkışmasının ardından güvenli bir el sıkışma işlemi gerçekleştirilir.

RFC 2818, güvenli iletişim için Taşıma Katmanı Güvenliği (TLS) üzerinden HTTP kullanımını tanımlar. RFC 2246, SSL sürüm 3.0'ı temel alan Taşıma Katmanı Güvenliği sürüm 1.0'ı detaylandırmaktadır. TLS 1.0 ve SSL 3.0 arasında çok az fark olmasına rağmen, ikisi birlikte çalışabilir değildir

HTTPS iletişimi, güvenli iletişim için kullanılacak portta TCP el sıkışması ile başlar. Örneğimizde, 443 numaralı standart HTTPS bağlantı noktasını kullanıyoruz. SSL/TLS trafiği için başka bir port kullanıyorsanız, bu portları SSL/TLS portları için HTTP tercihleri ayarına ekleyin. Port 443 varsayılan olarak tanımlanmıştır.

FTP Nedir?TLS el sıkışmasını görüntülemek için ssl.record.content_type==22 görüntüleme filtresini kullanın

HTTPS iletişimlerinde, TCP el sıkışmasından sonra bir TLS el sıkışması gerçekleşir. TLS el sıkışması, içerik türü değeri 22 olan bir dizi paketten oluşur. TLS el sıkışma paketlerini Şekilde gösterildiği gibi görüntülemek için ssl.record.content_type==22 filtresini kullanın.

TLS el sıkışması, eşlerin veri alışverişi için güvenlik parametreleri üzerinde anlaşmalarını ve kimliklerini doğrulamalarını sağlar. Ayrıca, el sıkışma işlemi sırasındaki hatalar TLS el sıkışma paketlerinde iletilir.

Bu el sıkışma süreci aşağıdaki trafik türlerini içerir:

  • Session identifier: yeni veya devam eden bir oturumu tanımlar
  • Peer certificate: X509 sertifikası
  • Compression method: şifrelemeden önce veri için sıkıştırma yöntemi
  • Cipher spec: veri şifreleme algoritmasını tanımlar
  • Master secret: İstemci ve sunucu arasında paylaşılan 48 baytlık gizli bilgi

İstemci desteklenen 34 şifre paketini listeler; sunucu hangisinin kullanılacağını seçecektir

TLS el sıkışmasının ilk paketi olan Şekildeki Paket 4, el sıkışma protokolü alanında belirtildiği gibi bir İstemci Merhaba'dır. İstemci ayrıca TLS sürüm 1.0 kullandığını belirtir.

Random bölümünde, bu paket UNIX formatında sağlanan istemcideki Evrensel Koordineli Saati (UTC) içerir. Oturum Kimliği alanı, bunun yeni bir oturum olduğunu gösteren 0 değerine ayarlanmıştır. Oturum Kimliği alanı sıfır olmayan bir değer içeriyorsa, bu yeniden başlatılan bir oturumdur.

Bu paket ayrıca 28 rastgele bayt içerir. Bu rastgele bayt kümesi daha sonra el sıkışma sırasında tekrar gönderilecek, ancak daha sonra sunucunun açık anahtarı ile şifrelenecektir

İstemci, tarayıcı tarafından desteklenen şifre takımlarının listesini sağlar. Bu durumda, istemci 34 şifre paketini destekler ve hepsini Şekilde gösterildiği gibi client hello paketinde listeler. Nihayetinde, hangi şifre paketinin kullanılacağına sunucu karar verecektir, ancak listelenen en üst şifre istemcinin tercihidir.

Uzantılar TLS'ye işlevsellik katar. Uzantıların varlığı, İstemci Merhaba paketinin sonundaki Sıkıştırma Yöntemleri alanını takip eden baytlar olduğu için tespit edilir.

Bir uzantı, bu durumda www.bankofamerica.com olan sunucu adını sağlar. Sunucu adı uzantısı, istemcinin tek bir IP adresinde çok sayıda sunucuyu destekleyen bir makinede barındırılabilecek bir sanal sunucuya güvenli bir bağlantı oluşturmasını sağlar.

Paket 10

  1. pakette Sunucu üç fonksiyondan oluşan bir paketle yanıt verir: 
    Server Hello, Certificate ve Server Hello Done.

Random bölümünde, sunucu 28 rastgele bayt ve istemcinin daha sonra yeniden bağlanmasına izin vermek için 32 baytlık bir Oturum Kimliği değeri sağlar. Bu rastgele bayt kümesi daha sonra el sıkışma sırasında tekrar gönderilecek, ancak daha sonra istemcinin açık anahtarıyla şifrelenecektir. Bu rastgele baytlar anahtar üretimi için kullanılır.

Sunulan 34 şifre paketi arasından sunucu TLS_RSA_with_RC4_128_MD5'i (0x0004) seçmiştir, bu da şu anlama gelir:

  • Sertifika imzalarını doğrulamak ve anahtarları değiştirmek için RSA açık anahtar algoritması kullanılacaktır.
  • Değiş tokuş edilen verileri şifrelemek için RC4 şifreleme algoritması kullanılacaktır.
  • 128-bit MD5 hash fonksiyonu, değiş tokuş edilen mesajların içeriğini doğrulamak için kullanılacaktır.

El sıkışma sürecinin bu ikinci paketi sunucudan gelen sertifikayı da içerir. Aynı paketin içinde, sunucunun Merhaba işlemini tamamladığını belirtmek için Server Hello Done ifadesi yer alır.

Paket 12

Şekilde gösterilen Paket 12, istemciden gelen bir sonraki pakettir. Bu paket, istemcinin hem istemci hem de sunucu rastgele değerlerinden bir premaster sırrı hesapladığını gösterir. Change Cipher Spe ataması, istemciden gelecek tüm mesajların tanımlanan anahtarlar ve algoritmalar kullanılarak şifreleneceğini gösterir.

Paket 14

  1. pakette, el sıkışma sürecinin şifrelenmemiş kısmı, sunucunun göndereceği tüm mesajların da şifreleneceğini belirtmesiyle sona erer.

HTTPS Trafiğni Decrypt Etme

Wireshark'ın HTTPS trafiğinin şifresini çözebilmesi için RSA anahtarına sahip olmamız ve Wireshark'ı bunu kullanacak şekilde yapılandırmamız gerekir.

Bu verilerin şifresini çözmek için sunucu sertifikasının özel anahtarına(private-key) ihtiyacımız var. Özel anahtarı almak için sunucuya erişmeniz gerekir; özel anahtarı iletişimin istemci tarafından alamazsınız. Örneğimizde Bank of America'nın web sitesine bir göz atma oturumu kullanıldığından ve anahtarı elde etme imkanımız olmadığından, anahtarla birlikte sağlanan başka bir HTTPS trace dosyasına odaklanacağız.

Kasım 2009'da PhoneFactor'dan Steve Dispensa ve Marsh Ray, TLS yeniden müzakere sürecini çevreleyen güvenlik sorunlarına ilişkin 8 sayfalık bir genel bakış yazdı. Güvenlik sorunları son Microsoft IIS ve Apache HTTPD sürümlerine karşı gösterilmiştir. Özünde, tanımlanan yeniden müzakere saldırı yöntemi "güvenli" bağlantıya kötü amaçlı kod enjekte etmek için kullanılır.

Aşağıdaki örnekte, PhoneFactor belgesine ek olarak sağlanan client_init_renego.pcap dosyası ile çalışıyoruz. Ayrıca, PhoneFactor ws01.mogul.test.key adında bir RSA anahtarı sağlamıştır.

Trafiğin şifresini çözmek için RSA anahtar dosyasının yolunu girin

HTTPS trafiğinin şifresini çözmek için RSA anahtarını yerel Wireshark ana bilgisayarındaki bir \keys dizinine kopyaladık. Wireshark'ın anahtarı tanıması için SSL tercihlerini şifresini çözmek istediğimiz konuşmayı tanıyacak ve \keys dizinini işaret edecek şekilde yapılandırmalıyız. Wireshark'ın RSA anahtarları listesi ayarı, sunucunun IP adresini, şifrelenmiş iletişim için kullanılan bağlantı noktasını, şifrelenen uygulamanın adını ve anahtar adının yanı sıra anahtara giden yolu içerir.

Şekilde bu dosyanın şifresini çözmek için kullanılan ayarlar gösterilmektedir. Protokol sütununun TCP, SSL veya TLSv1'i gösterdiğine dikkat edin. Henüz şifresi çözülmüş trafiği göremiyoruz.

Anahtar yapılandırıldıktan ve uygulandıktan sonra, HTTP iletişimini net bir şekilde görebiliriz

Şekil, anahtarın uygulanmasının sonuçlarını gösterir. Protokol sütununda hala TCP ve TLSv1'i görüyoruz ancak şifresi çözülen trafik için HTTP'nin de listelendiğini görüyoruz. Buna ek olarak, artık Paket Listesi bölmesinde listelenen bir HTTP paketine sağ tıklayabilir ve iletişimi net bir şekilde görmek için Follow SSL Stream'i seçebiliriz

TLS trafiğinin şifresini çözdüğünüzde (tıpkı WLAN trafiğinin şifresini çözdüğünüzde olduğu gibi), Şekilde gösterildiği gibi Paket Baytları bölmesinin hemen altında bir sekme görünür. Şifresi çözülmüş trafiği Paket Baytları bölmesinde görüntülemek için Decrypted SSL data sekmesine tıklayın. Bu sekme yalnızca (a) trafiğin şifresini çözdüğünüzde ve (b) Paket Baytları bölmesini görünür hale getirdiğinizde görünecektir.

HTTP Hataları Analizi

HTTP iletişim sorunları, site adı çözümlemesindeki sorunlar, TCP bağlantı sürecindeki sorunlar, var olmayan sayfalar veya öğeler için HTTP istekleri, paket kaybı ve HTTP sunucusu veya istemcisindeki tıkanıklık nedeniyle ortaya çıkabilir.

Herkes bir zamanlar yanlış web sitesi adresi yazmıştır. Site adı çözümlenemiyorsa, siteye erişemezsiniz. Bu bir DNS Adı Hatası oluşturur. Web tarama sorunlarını analiz ederken DNS trafiğine dikkat etmek önemlidir.

Ayrıca, HTTP arka plan programı(backend) web sunucusunda çalışmadığında HTTP bağlantı sorunları ortaya çıkabilir. HTTP arka plan programı sunucuda çalışmadığında, sunucu istemcinin SYN'sine bir TCP RST/ACK ile yanıt verir. Bağlantı kurulamaz.

Ayrıca, HTTP Birden fazla başarısız HTTP bağlantı denemesi Wiresharkdaemon'da bir şerit deseni oluşturduğunda web sunucusunda HTTP bağlantı sorunları oluşabilir.

Şekilde gösterildiği gibi bir port tarama işlemi sırasında SYN â€" RST/ACK kalıbı görüldüğünden bu durum dikkatle izlenmelidir.

HTTP istemcisi HTTP sunucusuna başarıyla bağlanır, ancak daha sonra var olmayan bir sayfa isterse, web sunucusu tarafından HTTP 404 Not Found hataları oluşturulur.

Bazı yeniden yönlendirme hizmetleri standart 404 Not Found mesajını önerilen bağlantılarla değiştirir veya HTTP istemcisini tamamen başka bir siteye yönlendirir. HTTP istemci ve sunucu hataları için http.response.code >= 400 kullanarak bir renklendirme kuralı oluşturun.

frys.com sunucusu bir iç sunucu hatası ile yanıt veriyor

Şekilde, www.frys.com web sitesinde satılık dizüstü bilgisayarların bir listesini açarken yaşanan bir sorunu göstermektedir. Sitenin IP adresini çözebildik ve sayfa mevcut. TCP akışını takip ederek sunucunun sayfa başlığıyla yanıt verdiğini görebiliriz. Ancak dizüstü bilgisayar öğeleri sayfada görüntülenmiyor; sayfa boş.

trace dosyasına baktığımızda www.frys.com web sunucusunun bir dahili sunucu hatası bildirdiğini görebiliriz. Bu, müşterinin sisteminde veya ağında bir sorun değildir. Bu sorun büyük olasılıkla Fry'ın web hizmetleri altyapısındaki bir veritabanı sorunundan kaynaklanmaktadır.

http-fault-post.pcapng dosyasını açın ve Time sütununu Seconds Since Previous Displayed Packet olarak ayarlayın. Paket 29'dan önce büyük bir gecikme olduğuna dikkat edin. Burada dikkatli olun. 29. pakette FIN biti ayarlanmıştır. Bu, istemcinin sunucuya bilgi göndermeyi bitirdiğini gösterir. Bu paketler (ve Reset biti ayarlı paketler) kullanıcı gerekli verileri almayı bitirdikten çok sonra tetiklenebilir. Kullanıcı bu gecikmeyi fark etmez, bu nedenle FIN (veya Reset) biti ile işaretlenmiş paketlerden önceki gecikmeleri gidermek için zamanınızı harcamayın.

İstemcinin POST'u başarısızdır ve bir web sunucusu sorununa işaret eder

Şekilde çevrimiçi bir form doldurmaya çalışıyoruz (http-fault-post.pcapng). Ancak Gönder düğmesine tıklandığında, istemci sistemi kilitleniyor gibi görünüyor. Bu durumda HTTP trafiğine bakabilir ve sunucudan gelen 403 Yasak durum kodunu gözlemleyebiliriz. TCP akışını takip ettiğimizde, durum hakkında daha fazla bilgi içeren açık metin ve HTML etiketleri görürüz (HTML etiketlerini kaldırdık):

"Sayfa görüntülenemiyor â€" programların yürütülmesine izin vermeyen bir dizinden bir CGI, ISAPI veya başka bir yürütülebilir program yürütmeye çalıştınız."

Yine, sorun bir istemci sorunu gibi görünmüyor ve TCP aktarım hatalarını bir sorun olarak görmüyoruz. Sorun sunucuda.
Web'de gezinme sorunlarını giderirken, HTTP trafiğine odaklanmadan önce TCP hatalarını arayın.

HTTP Paket Yapısı

HTTP paketleri değişken uzunluktadır. Bu bölümde HTTP paket yapısındaki bazı önemli alanları listeliyoruz. HTTP istekleri, HTTP isteğinin amacını tanımlayan bir Yöntemden oluşur. HTTP yanıtları, Durum Kodu olarak adlandırılan sayısal bir yanıt kodu içerir.

Facebook ana sayfası için bir HTTP GET istek paketi

Şekilde, ana Facebook sayfası için bir GET isteğini göstermektedir. GET isteği, hedef ana bilgisayarın adını, bu GET isteğini gönderen tarayıcı hakkında ayrıntıları ve tarayıcının hangi veri türlerini ve biçimini kabul edeceği hakkında bilgileri içerir.

HTTP Metotları

HTTP metotları olarak da adlandırılan Yöntemler, HTTP paketinin amacını tanımlar.

  • GET: URI (Tekdüzen Kaynak Göstergesi) alanı tarafından tanımlanan bilgileri alır
  • HEAD: İstenen URI ile ilgili meta verileri alır
  • POST: HTTP sunucusuna veri gönderir
  • OPTIONS: Bir kaynakla ilişkili seçenekleri belirler
  • PUT: HTTP sunucusuna veri gönderir
  • DELETE: URI tarafından tanımlanan kaynağı siler
  • TRACE: İstemcinin sunucunun istemciden ne aldığını görebilmesi için bir uzak geri döngü çağırır; bu nadiren görülür çünkü birçok şirket Siteler Arası İzleme güvenlik açığına karşı koruma sağlamak için bunu devre dışı bırakır
  • CONNECT: Bir proxy cihazına bağlanır.

Host

Host alanı tüm HTTP/1.1 istek mesajlarında gereklidir. Host alanı, talep edilen kaynağın hedef internet ana bilgisayarını ve port numarasını tanımlar. Önceki örneğimizde, ana bilgisayar www.facebook.com'dur. Herhangi bir bağlantı noktası numarası belirtilmezse, hizmet için varsayılan bağlantı noktası (örneğin, HTTP için 80 numaralı bağlantı noktası) kullanılır.

Request Modifiers

HTTP istekleri ve yanıtları, istekle ilgili ayrıntıları sağlamak için istek değiştiricileri kullanır. Aşağıda daha yaygın olarak kullanılan istek değiştiricileri listelenmiştir:

  • Accept: Kabul edilebilir içerik türleri
  • Accept-Charset: Kabul edilebilir karakter setleri
  • Accept-Encoding: Kabul edilebilir kodlamalar
  • Accept-Language: Kabul edilebilir diller
  • Accept-Ranges: Sunucu aralık isteklerini kabul edebilir
  • Authorization: HTTP kimlik doğrulaması için kimlik doğrulama bilgileri
  • Cache-Control: Önbelleğe alma yönergeleri
  • Connection: Kullanıcı aracısı tarafından tercih edilen bağlantı türü
  • Cookie: HTTP cookie
  • Content-Length: Length of the request body (bytes)
  • Content-Type: Gövdenin Mime türü (POST ve PUT istekleri ile kullanılır)
  • Date: Mesajın gönderildiği tarih ve saat
  • Expect: İstemci tarafından beklenen sunucu davranışını tanımlar
  • If-Match: İstemci tarafından sağlanan bilgiler eşleşirse eylem gerçekleştirin
  • IfModified-Since: Önbelleğe alınan verilerin tarih/saatini sağlayın; güncelse 304 Değiştirilmedi
  • If-Range: Eksik bilgi aralığı için talep
  • If-Unmodified-Since: Yalnızca belirli tarih/saatten beri değiştirilmemişse gönderin
  • Max-Forwards: Proxy'ler veya ağ geçitleri üzerinden iletim sayısını sınırlayın
  • Proxy-Authorization: Proxy bağlantısı için yetkilendirme kimlik bilgileri
  • Range: Bir varlığın yalnızca bir kısmını talep edin
  • Referer: Mevcut web sitesine bağlantı veren önceki web sitesinin adresi
  • TE: Aktarım kodlamaları kabul edildi
  • UserAgent: Kullanıcı aracısı â€" tipik olarak tarayıcı ve işletim sistemi
  • Via: Geçilen vekiller

HTTP/HTTPS Trafiğinin Filtrelenmesi

HTTP veya HTTPS trafiği için filtreleme sözdizimi tcp port http veya tcp port https'dir.

  • http.request.method=="GET" or http.request.method=="POST" â€" HTTP GET veya POST istekleri
  • http.response.code > 399 â€" HTTP 4xx veya 5xx (istemci veya sunucu hataları)
  • http contains "IfModified-Since" â€" Bir istemcinin bir sayfayı zaten önbelleğe alıp almadığını belirleme.
  • http.host=="www.wireshark.org" â€" Hedef host www.wireshark.org
  • http.user_agent contains "Firefox" â€" HTTP istemcisi Firefox tarayıcısını kullanıyor.
  • http.referer contains "wireshark.org" â€" HTTP istemcisi wireshark.org'daki bir bağlantıdan geçerli konuma ulaştı
  • tcp.port==443 â€" SSL-Secure Socket Layer (güvenli oturum)
  • ssl.record.content_type==22 â€" TLSv1 el sıkışması
  • ssl.handshake.type==1 â€" El sıkışmada TLSv1 Client Hello
  • ssl.handshake.type==16 â€" TLSv1 Client Key exchange
  • ssl.record.content_type==20 â€" TLSv1 Change Cipher Spec
  • http.content_type contains "ocsp" â€" Çevrimiçi Sertifika Durum Protokolü (OCSP) kullanılır

HTTP Objelerini Dışa Aktarma

HTTP kullanırken indirilen nesneleri kaydetmek için Dosya | Nesneleri Export| HTTP öğesini seçin. HTTP nesnelerini dışa aktardığınızda, orijinal nesne adı korunur.

Bir siteden indirilen nesneleri dışa aktarabiliriz

Bu menü üzerinden objeleri bilgisayarmıza kaydetebiliriz.