TSHARK

Uygulama Sınıfı

Information Gathering (Bilgi Toplama)

Uygulamanın Amacı

Network traffic analyzer

Açıklama Tshark network analizinde kullanılan komut satırı üzerinden çalışan açık kaynaklı bir programdır. Wireshark’ın komut satırı hali dersek yanlış söylemiş olmayız. Tshark komut satırı üzerinden çalıştığı için hem çok esnek hem de yüksek performansa sahip bir programdır.

Örnek Kullanım

Tshark kurulumu oldukça basittir. Birçok depoda bulunmasından dolayı

sudo apt-get install

tshark yazmanız yeterli olacaktır.

Tshark versiyonunu öğrenmek için tshark -v komutunu verebilirisiniz.

Detaylı çıktılar için -V parametresi kullanılabilir.

Tshark isim çözümlemesi yapar(TCP, UDP port isimleri, hostname gibi). Bazen performans için çözümleme yapılmaması gerekir. Bunun için -n parametresi kullanılır.

-D parametresi ile dinleyebileceğiniz arayüzleri listeler. -i parametresi ile dinlemek istediğiniz arayüzü seçebilirsiniz.

Tshark -i eth1
Tshark -i 3

NOT: Eğer ki root kullanıcısı olarak -D parametresi kullanılmazsa aşağıda ki gibi bir çıktı alabilirsiniz. Bunun nedeni ise normal kullanıcıların arayüzlere direkt erişimi bulunmamasıdır.

Tshark’ı herhangi bir parametre kullanmadan çalıştırırsanız yakalayabildiği tüm paketleri ekranda gösterecektir. Aşağıda iki farklı ip adresineping atılmıştır. -w parametresi ile bir pcap dosyasına paketleri kayıt edersiniz. Buna ek olarak -c parametresi ile birlikte kullanılırsa belirttiğimiz sayıda ki paketi bir pcap dosyasına kayıt eder.

tshark -c 500 -w ornek.pcap

ile kayıt yapıp,

tshark -r ornek.pcap

ile de kayıt ettiğimiz dosyayı okuyabiliriz.

Kaydettiğimiz dosyayı bu şekilde görmek pek hoş durmuyor. Hangi paket nerede, kim kime ne göndermiş, kim kimden ne almış belli değil. Bunun için filtreler kullanabiliriz.

tshark -r ornek.pcap ip.addr==93.184.220.29

komutunu vererek ip filtrelemesi yapalım.

Belirli bir port üzerinden akan trafiği izlemek istersek

tshark -r ornek.pcap -R “tcp.port==80”

kullanılabilir. Eğer ki bu port dışında gelen trafiği dinlemek istersek !(tcp.port==80) yazmamız yeterli olur.

Filtreleme yaparken -R ya da -f parametresi kullanılması daha sağlıklı sonuçlar verir. -f parametresi eğer -i parametresinden önce kullanılırsa varsayılan olarak ayarlanır ve daha sonra aynı komut içinde verdiğiniz tüm arayüzler için aynı filtreyi kullanır. Eğer her arayüz için farklı filtreler kullanılması gerekiyorsa -f parametresi -i parametresinden sonra kullanılmalıdır.

R ve f arasında ki fark nedir biraz bundan bahsedelim. Bunları incelerken iki farklı kavram karşımıza geliyor. “Live capture filter” ve “Reading capture filter”.

Live Capture Filter: -f parametresi kullanılarak uygulanır. Burada ki amaç sadece belirli özelliklere sahip paketlerin yakalanmasını sağlayarak yakalanan verinin daha fazla büyümesini engellemek. Yani size sadece 80. porttan geçen tcp verileri gerekiyorsa tshark -f tcp.port==80 yazarak 443,53,21 gibi diğer kullanılan portlarında kaydedilmesini engellemiş oluyorsunuz.

Reading Capture Filter: -R parametresi kullanılarak uygulanır. Burada ise paket yakalama esnasında değil paket yakalama işlemi bittikten sonra size lazım olan paketleri incelerken kullanabilirsiniz. Filtreyi kaldırdığınızda verilerinize herhangi bir şey olmadan tekrar tekrar kullanabilirsiniz. Bu filtreyi paket yakalama esnasında çalıştırabilirsiniz ancak bir dosyaya hem yazıp hemde istediğiniz filtreyi uygulamaya çalışacağı için fazladan RAM ve işlemci gücü kullanacağından dolayı paket kaçırma şansınız var, bunun için pek tavsiye edilmez.

Burada bir noktaya değinilmesi gerekiyor. -R ve -Y parametrelerini incelediğimizde two-pass analysis ve singel-pass analysis kavramları karşımıza çıkıyor. İnternette çok fazla kaynak bulanmamasına karşın birkaç örnek ile anlaşılabileceğini düşünüyorum.

Burada görüldüğü üzere -Y parametresi kullanıldığında paketleri sıralı olarak değil kendi sırasında (bağımsız) olarak basıyor ancak -R parametresi (two-pass) uygulandığında paketler bağlı oldukları sıra ile gelmektedir. Örnek vermek gerekirse bir istek atıyorsunuz bunu buffera kaydediyor ve cevabın gelmesini bekliyor. Cevap geldiğinde iki paketi birbirine bağlayıp kaydediyor dersek yanlış olmaz. Kısacası singel-pass filter kullanıyorsanız -Y, two-pass filter kullanıyorsanız -R parametresini vermelisiniz. Kendimce anlatmaya çalıştım daha fazla teknik detay için wireshark’ın sitesini kullanabilirsiniz.

Paketleri daha detaylı görmek için -O parametresi kullanılabilir. Paket içeriğini, paket bilgilerini tüm detayları ile incelemek için kullanılır.

Tshark’ı farklı parametreler, filtreler ve programlar ile kullanarak trafik analizini kolaylaştırabilirsiniz. -e parametresi kullanarak paket bilgisinden istediğiniz kısımları seçebilirsiniz. Birden fazla bilgi için her seferinde -e parametresini kullanarak istediklerinizi getirebilirsiniz.

Kısaca -T parametresinide söyleyip örnek üzerinden devam edelim. -T parametresi fields, pdml, ps, psml, text ek parametreleri ile kullanılır. Bunlar çıktının nasıl olacağı ile ilgilidir.

pdml ile detaylı bir çıktı alırsınız neredeyse -V parametresi gibi bir çıktı verir.

ps tek satırlık özet bilgiler içeren bir çıktı verir. Eğer önceden -V parametresi kullanıldıysa detayları artacaktır. psml xml formatında çıktı verir. text psml gibi bir çıktı verir. -V parametresi ile kullanılırsa girintili olarak daha rahat okunabilir bir çıktı verir.

Tshark’ı python ile kullanarak farklı özellikler ekleyebilirisiniz. Örnek olarak hazır bir script olan checkIP.py ile kullanımına bakalım. Bu script ip testi yapıyor.

tshark -r ornek.pcap -T fields -e ip.src | python checkIP.py

Tshark ile dosyada ki paket istatistiklerini görebiliriz. İstatistikleri görebilmek için -z parametresi kullanılmalıdır.

Tshark -r ornek.pcap -qz io,stat,10,ip,tcp,udp

q parametresi bütün paketlerin ekrana bastırılmamasını sağlamakta. z ile istatist iklerin getirilmesi istenmekte. io girdi/çıktı, stat,10 en çok kullanılan 10, ip,tcp,udp ile de önümüze getirilmesini istediğimiz protokolleri listelemiş olduk.

-z parametresi io,phs ile kullanılırsa protokol hiyerarşisini görürüz. Sonrasına farklı filtreler ekleyerek sadece uyuşan paketler üzerinde işlem yapmasını sağlayabiliriz.

-qz conv,tcp yazarak tcp paketleri hakkında bilgi almış olduk. -qz dns,tree yazarak dns hakkında ki istatistik bilgileri elde ettik.

Hangi sitelere girilmiş görebilmek için dns.qry.name filtresi kullanılabilir.

Tshark IPv6 takibi yapabilir bunun için ipv6 yazmamız yeterli olacaktır.

hping3 kullanarak bir dos saldırı gerçekleştirdim ve bunun analizini inceleyelim. Basit bir saldırı yapıp önce onu izleyelim.

hping3 -S -flood 172.16.80.160

Saldırgan makinemizin ip adresi 172.16.80.162. Kurbanımız 172.16.80.160 adresi. Paket takibine baktığımızda SYN paketi geliyor ve RST dönüşü yapıyor. Bunu tek makineden yaptığımız için çok büyük bir etkisi olmayacak. Bunu daha çok makine ile yaptığımızda çıktı aşağıdakine benzer ve gelen paket sayısı daha fazla olduğu için makine herhangi bir tepki veremez hale gelecektir.

Şimdi farklı bir saldırı deneyelim ve birçok ip üzerinden istek geliyormuş senaryosu yapalım. Bu durumda rastgele gelen ip adreslerinden gelen paketlerin durumlarını inceleyeceğiz. FTP portuna gerçekleştireceğimiz bu saldırı sonunda ftp üzerinde ki paket sayısına dikkat edelim. Bir önceki örnekte ki istatistiklerle karşılaştırma yapalım.

hping3 -c 10000 -d 120 -S -w 64 -p 21 —flood —rand-source 172.16.80.160

Şimdi SYN bayrağı dışında başka paketlerin olduğu bir saldırı yapıp onu inceleyelim. XMAS adlı bir tarama yapacağız. XMAS paketinin içeriğinde URG,PSH,FIN bayrakları bulunur. Bayrakların anlamlarına bakarsak

URGent acil, PuSH belleğe almadan işlem yap, FINish bitir anla

mlarına gelir. Burada saldırımızın amacı bir cümle gibi kaşımıza çıkıyor. Belleğe almadan acilen bitir. Bayrakları daha detaylı incelemek için; (*).

Not:> Son resim farklı ip ve farklı bir bilgisayardan alınmıştır. Bunun nedeni ise daha önce koyulmuş resimde bayraklarda hata olmasıdır. Doğru hali ile güncellenmiştir. F (FIN), P (PUSH), U (URG) bayrak kısaltmalarıdır.

 

 

KAYNAKÇA

Man page

http://www.linuxjournal.com/content/using-tshark-watch-and-inspect-network-traffic?page=0,2

https://www.wireshark.org/docs/man-pages/tshark.html

http://halilozturkci.com/tshark-ile-network-uzerinden-adli-analiz/

(*) http://packetlife.net/blog/2011/mar/2/tcp-flags-psh-and-urg/

Yazar

Ahmet Derviş