Tcpdump ile trafiği ip, port , protokole vb göre izole etme yöntemlerini aşağıda inceleyeceğiz.
Not: Tcpdump'ın çalıştırabilmesi için yüksek yetkiler gerekiyor.Bu yüzden komutların önünde sudo bulunmaktadır.
Not: Tcpdump çıktısını sonlandırmak için Ctrl+C'yi kullanınız.
Temeller:
-i : En küçük interface numarasına sahip olanı dinler.(eth0 ve eth1 varsa eth0'ı dinler.)
-i any : Tüm interface'leri dinlemek için kullanılır.
-i eth0 : eth0 interface'ini dinler.(Hangi interface'i yazarsanız onu dinler.)
-D : Kullanılabilir interface'lerin listesini gösterir.
-n : Hostname'leri çözümlemez.
-nn : Hostname'leri ve port isimlerini çözümlemez.
-q : Çıktının daha az ayrıntılı olmasını sağlar.
-t : Okunabilir zaman damgası çıktısı verir.
-tttt : Maksimum okunabilir zaman damgası çıktısı verir.
-X : Paket içeriğini hem hex hem de ASCII olarak gösterir.
-XX : -X ile aynıdır ancak ethernet başlığını da gösterir.
-v, -vv, -vvv : Geri aldığınız paket bilgisini ayrıntılı gösterir.
-c : Yalnızca x sayıda paket alın ve sonra durdurun.
-s : Yakalamanın anlık uzunluğunu (boyutunu) bayt cinsinden tanımlayın. Kasıtlı olarak daha az çekim yapmadığınız sürece her şeyi elde etmek için -s0 kullanın.
-S : Mutlak sıra numaralarını yazdırır.
-e : Ethernet başlığını da alır.
-q : Daha az protokol bilgisi gösterir.
-E : Bir şifreleme anahtarı sağlayarak IPSEC trafiğinin şifresini çözün.
Tcpdump'ta ,çeşitli trafik türlerini kesmenize ve tam olarak aradığınızı bulmanıza olanak sağlayan ifadeler vardır.Üç ana ifade türü vardır.
İzole ederken birden fazla komutun kombinasyonu size kolaylık sağlayacaktır.Bunun için mantıksal operatörleri kullanabilirsiniz.
AND için aşağıdaki şekilde kullanım sağlayabilirsiniz.
and or &&
or or ||
not or !
tcpdump -i any
tcpdump -i eth1
tcpdump -ttttnnvvS
tcpdump host 1.2.3.4
tcpdump -nnvXSs 0 -c1 icmp
tcpdump src 1.2.3.4
tcpdump dst 1.2.3.4
tcpdump net 1.2.3.0/24
tcpdump port 3389
tcpdump src port 22
tcpdump icmp
sudo tcpdump -i eth0 proto 17
tcpdump ip6
tcpdump portrange 21-23
tcpdump less 32
tcpdump greater 64
tcpdump <= 12
tcpdump port 80 -w capture_file
tcpdump -r capture_file
tcpdump -nnvvS src 192.168.101.3 and dst port 222- Bir network'ten belirlediğiniz network'lere giden trafiğin hex çıktısını göstermek için aşağıdaki komutu kendinize göre düzenleyebilirsiniz.
tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/163-Belirlediğiniz ip'ye giden ve ICMP olmayan trafiği göstermek için aşağıdaki komutu kendinize göre düzenleyebilirsiniz.
tcpdump dst 192.168.101.3 and src net and not icmp
4- Karmaşık sorgular oluştururken, seçeneklerinizi tek tırnak kullanarak gruplandırmanız gerekiyor. Belirli özel karakterleri - bu durumda "()" parantezlerinin altında görmezden gelinmesini söylemek için tek tırnak kullanılır .tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'
tcpdump 'tcp[13] & 4!=0'
tcpdump 'tcp[tcpflags] == tcp-rst'
tcpdump 'tcp[13] & 2!=0'
tcpdump 'tcp[tcpflags] == tcp-syn'
tcpdump 'tcp[13]=18'
tcpdump 'tcp[13] & 32!=0'
tcpdump 'tcp[tcpflags] == tcp-urg'
tcpdump 'tcp[13] & 16!=0'
tcpdump 'tcp[tcpflags] == tcp-ack'
tcpdump 'tcp[13] & 8!=0'
tcpdump 'tcp[tcpflags] == tcp-push'
tcpdump 'tcp[13] & 1!=0'
tcpdump 'tcp[tcpflags] == tcp-fin'
tcpdump -vvAls0 | grep 'User-Agent:'
tcpdump -vvAls0 | grep 'GET'
tcpdump -vvAls0 | grep 'Host:'
tcpdump -vvAs0 port 53
tcpdump -nn -A -s0 -l | egrep -i 'Set-Cookie|Host:|Cookie:'
tcpdump -vvAs0 port ftp or ftp-data
tcpdump -vvAs0 port 123
tcpdump port http or port ftp or port smtp or port imap or port pop3 or port telnet -lA | egrep -i -B5 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user '
tcpdump 'ip[6] & 128 != 0'
sudo tcpdump -nn -l port 25 | grep -i 'MAIL FROM\|RCPT TO'
sudo tcpdump -v -n port 67 or 68
sudo tcpdump -tnn -c 40 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head18-80 portundaki HTTP veri paketlerini , tcp session kurulumu(SYN / FIN / ACK) olmadan yakalamak için aşağıdaki komutu çalıştırınız.
tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
tcpdump -w /tmp/capture-%H.pcap -G 3600 -C 200
ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - not port 22' | wireshark -k -i -
Network
hakkında diğer konular