Bu yazıda ağ trafiği analizi için kullanılabilecek bir çok ücretli/ücretsiz araç olmasına rağmen defacto olarak nitelendirilebilecek tcpdump aracı ile temel ağ trafiği analizinin nasıl gerçekleştirilebileceğine değinilecektir.
Analiz yöntemlerinin temelinde pcap verisi yer almaktadır. 1987 yılında Lawrence Berkeley National Laboratory tarafından ortaya konulan bu format, bir çok farklı ağ tabanlı uygulama tarafından okunabilmekte/yazılabilmektedir.

Sistem üzerinde tcpdump bulunmuyorsa 

# apt-get install tcpdump

komutu ile kurulum gerçekleştirilebilir.
Tcpdump çıktısının temel olarak yapısı aşağıdaki gibidir:

[zaman_damgası] [protokol] [kaynak IP].[kaynak port] > [hedef IP].[hedef port]

-w parametresi ile dosyaya yazmak için

# tcpdump -w kayit.pcap

Görsel gösterim için Wireshark'tan yararlanılabilir.
Pcap dosyası içindeki paket sayısını bulmak için:

# tcpdump -nn -r kayit.pcap | wc -l

I/O yönlendirme ile cut aracı ile dosya içerisindeki kaynak IP adresi ve portu aşağıdaki gibi süzülebilir:

# tcpdump -nn -r kayit.pcap | cut -d " " -f3

Çıktıdan 2.katman trafiğini hariç tutmak için tcpdump'a protokol süzgeci girilebilir.

# tcpdump -nn -r kayit.pcap 'tcp or udp' | cut -d " " -f3

Port bilgisini de hariç tutarak sadece IP adresini görmek için

# tcpdump -nn -r kayit.pcap 'tcp or udp' | cut -d " " -f3 | cut -d "." -f1-4

Bu noktada sadece IP adreslerini süzmek için aşağıdaki gibi bir düzenli ifade ile grep komutu kullanılabilir:

grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

Çıktıdaki birbirini tekrar eden kayıtları gözardı etmek ve sıralamak için sort ve uniq komutları kullanılabilir.

# tcpdump -nn -r kayit.pcap 'tcp or udp' | cut -d " " -f3 | cut -d "." -f1-4 | sort | uniq

sort komutu -u parametresi ile uniq'in yaptığı işlevi görebilmektedir.
Belirlenen IP adreslerine dair kaç adet kayıt bulunduğunu görmek için -c parametresi ile uniq komutu çalıştırılır ve çıktı büyükten küçüğe tekrar sıralanır.

# tcpdump -nn -r kayit.pcap 'tcp or udp' | cut -d " " -f3 | cut -d "." -f1-4 | sort | uniq -c | sort -nr

Sadece bağlantı kurmaya çalışan (SYN bayrağı ayarlanmış) IP adreslerinin hedef aldığı portların belirlenmesi için tcp[13]=2 filtresinden yararlanılabilir:

# tcpdump -nn -r kayit.pcap 'tcp[13]=2' | cut -d " " -f5 | cut -d "." -f5 | sort | uniq -c | sort -nr

SMTP, FTP, DNS gibi yükünü düz metin olarak ileten protokollerin içeriklerinin gösterimi için -A parametresi kullanılabilir.

# tcpdump -Ann -r kayit.pcap 'dst port 21 or dst port 25 or dst port 53 or dst port 80'

Çıktı üzerinden istenilen içerik grep ile aranabilir. Örneğin 80.port süzüldükten sonra 

grep -Ei 'user-agent | sort | uniq -c | sort -nr | head 10

komutuna yönlendirilirse en fazla GET isteğinde bulunan 10 User-Agent'ı görülebilir.

Bazı sık kullanılan tcpdump filtreleri

# tcpdump net 1.2.3.0/24
# tcpdump icmp
# tcpdump port 3389
# tcpdump udp and src port 53 //udp port 53 filtrele
# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'
# tcpdump -ni eth1 -w file.cap not port 22
# tcpdump -ni eth1 -s 150 -c 10 not port 22
# tcpdump -r file.cap
# tcpdump -e -n not port 22 //Ethernet başlığını görüntüle

Tcpdump için faydalı bir cheatsheet bağlantıdan temin edilebilir.

0 comments:

Post a Comment

 
Top