25 Aralık 2016

Kali Linux - Bölüm 12: Ağ Paketleri İzleme (Sniffing) Araçları

Sunucumuzun ağ arayüzüne ulaşan paketleri inceleyebilmek ve bunları protokol analiziyle “parse” edebilmek için 2 güçlü aracımız mevcuttur:

  • “tcpdump”: Grafik arayüzü olmayan ve headless (bir masaüstü bağlanma durumu veya imkanı olmayan) Linux kullanımlarında en önde gelen paket dinleme ve kaydetme aracıdır. Paket dinleme araçları ağ iletişimi ile ilgili sorunların çoğunda ve sızma testlerinde hedef belirleme aşamalarında bize son derece faydalı araçlardır. Paket dinleme araçları sadece çalıştıkları bilgisayarın ağ arayüzüne gelen paketleri dinleyebilirler. Bu yüzden switch kullanılan ortamlarda (ki bu hemen hemen tüm ortamlar demektir) ağdaki diğer kullanıcıları da dinlemek istiyorsanız onların trafiğinin de sizin arayüzünüze gelmesini sağlamanız gerekir. Bu trafik yönlendirmesini eğer kullanılan switch yönetilebilir bir switch ise port mirroring gibi yöntemlerle veya uç noktaları aldatmaya dayalı ARP poisoning gibi “man in the middle” yöntemleri ile gerçekleştirebilirsiniz. Paket dinleme araçları kullandıkları arayüzleri “promiscuous” (monitor mode olarak da anılabilir) moduna geçirmelidir, aksi takdirde arayüzler sadece kendilerine yönelik ve broadcast paketleri kendilerini kullanan uygulamalara iletirler, diğer paketleri görmezden gelirler. Linux işletim sisteminde monitor mod desteklenmektedir, ancak Windows işletim sistemi için aynı durum söz konusu değildir. Bu nedenden ve normal kullanımdan farklı bir durum olan dinleme işleminin kendine has ihtiyaçlarından dolayı paket dinleme araçları bu amaçla geliştirilmiş sürücüler ve kütüphaneler kullanmayı tercih ederler (“libpcap” ve “winpcap” gibi).
  • “Wireshark”: Wireshark’ın tcpdump’tan en temel farkları grafik arayüzü ve Windows’u da destekliyor olmasıdır. Grafik arayüzünün paket incelemesinde sağladığı katkıyı göz ardı etmek mümkün değildir. Hem tcpdump hem de wireshark aracında dinlenecek paketler filtrelenebilir. Ancak wireshark’ın arayüzü üzerinde görüntülenecek paketler de filtrelenebilir. Wireshark ayrıca (özel anahtarı vermeniz ve anahtar değişimi için DH protokolü kullanılmaması şartıyla) SSL trafiğini çözme, TCP oturumlarını oluşturma gibi daha ileri analiz ihtiyaçlarını da pratik bir biçimde karşılamaktadır. Wireshark’ın da “tshark” adında bir komut satırı aracı bulunmaktadır.

Yukarıdaki örnek “tcpdump”un yazma opsiyonu “-w” kullanılarak gerçekleştirildi. Ancak yazma işlemi bir dosyaya değil de standart output’a, yani ekrana gerçekleştirildi. Bu örneği vermemin amacı “tcpdump”ın veriyi dosyaya yazma formatının “binary” bir format olduğunu gösterebilmek. Ağ paketlerinin her bir alanını (ki bu alan sadece 1 bit’lik bir bayrak da olabilir) bir metin açıklama ile yazdığımızda veri miktarı çok artacağından hem performans hem de saklama alanı olarak daha fazla kaynak tüketecektik.


Yukarıdaki örnek özellikle headless (yani bir desktop arayüzü olmadan) olarak Linux sunucuya bir SSH bağlantısı ile bağlandığımızda bizim bağlantımızla ilgisi olmayan (“port not 22”) paketleri izlemek için kullanılabilecek tipik bir örnek. “-n” opsiyonu “tcpdump”a IP adresleri için reverse lookup ve port numaraları için sembolik isim çevrimleri yapmamasını ve gördüğü değerleri aynen raporlamasını, “-i eth0” opsiyonu dinlenecek arayüzün “eth0” isimli arayüz olduğunu, “-s 1514” opsiyonu ise dinlenen paketlerin ne kadarlık kısmının yazmak için okunacağını (gerçi bu örnekte bir yazma işlemi gerçekleştirmiyoruz, ancak gerçekleştirirsek paketlerin veri alanlarında bir kayba uğramamak için bu opsiyonu kullanmalıyız) belirtiyor.


Wireshark’ın grafik arayüzü okunabilirlik açısından net biçimde daha avantajlı “tcpdump”ın metin tabanlı raporlamasına nazaran. Bu örnekte ayrıca yakalanan paketler içinde bir filtreleme örneği de görüyoruz. Bu filtreleme syntax’ı hem tcpdump’ta hem de Wireshark’ta yakalanacak paketlerin filtrelenmesi için kullanılan BPF (Berkeley Packer Filter) syntax’ından farklı. Kullandığımız basit filtre ile kaynak veya hedef portu 80 olan TCP paketlerini listeliyoruz. Wireshark listeleme filtrelerini oluşturmak için destek de sağlıyor.


Wireshark’ın en güçlü özelliklerinden birisine örnek olarak yukarıdaki “follow TCP stream” özelliğini görebilirsiniz. Bu özellik sayesinde bir TCP oturumu içinde iletilen ve alınan tüm paketleri diğer paketlerin içinden otomatik olarak ayıklayabiliriz.

<<Önceki Bölüm                                                                                               Sonraki Bölüm>>