Tcpdump bir paket yakalama yazılımıdır ve çok basit yapısıyla iyi/kötü niyet ayırt etmeksizin kullanıcısı tarafından çok sevilir. Çok sevdiğimiz bu arkadaşımızı daha yakından tanımak adına aşağıdaki yardımcı dokümanı kullanabilirsiniz.
Belirli bir ip ve portu dinlemek için host ve port parametrelerini kullanılır. src ve dst ise kaynaktan mı hedeften mi gelindiği ayrıntısını yani yönünü belirtmek için girilebilir.
tcpdump -i eth0 host 192.168.1.5 and port 514 tcpdump -i eth0 src host 192.168.1.5 and dst port 514 or src port 517 tcpdump -i eth0 src host 192.168.1.5 and '(port 514 or 517)'
Belirli bir network belirtmek için net, port aralığı belirtmek için ise portrange parametreleri kullanılır.
tcpdump -i eth0 net 192.168.1.0/24 and portrange 514-517
Protokol bazlı dinleme yapmak için parametre almaksızın protokol adı (tcp, udp, icmp, arp …) kullanılır.
tcpdump -i eth0 tcp tcpdump -i eth0 not udp tcpdump -i eth0 udp or tcp or icmp
Ip, port vs. numerik değerleri isimlere (host adı, port adı) dönüştürülmesi istenmiyorsa -n parametresi kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -n
Yakalınan içeriği daha ayrıntılı görmek için -v parametresi kullanılır. Ascii olarak görmek için -A, Hex olarak görmek için -x, Ascii ve hex olarak görmek için ise -X parametresi kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -v tcpdump -i eth0 host 192.168.1.5 and port 514 -A tcpdump -i eth0 host 192.168.1.5 and port 514 -x tcpdump -i eth0 host 192.168.1.5 and port 514 -X
Belirli bir sayıda paket yakalama işlemi gerçekleştikten sonra tcpdump’ın sonlandırılması için -c parametresi kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -c 2
Yakaladığınız paketleri kaydetmek için -w, daha sonradan okumak için ise -r parametresi kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -w kaydettim.pcap tcpdump -r kaydettim.pcap
Yakalanan pakette zaman damgası bilgisinin görüntülenmesini istemiyorsanız -t parametresi kullanılır. Varsayılanda zaman değeri olarak saat bilgisi yer alıyorken eğer tarihsel bilgiyi de eklenmek istenirse -tttt parametresi ile birlikte kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -t tcpdump -i eth0 host 192.168.1.5 and port 514 -tttt
Yakalınan paketten sadece belirli byte sayısında bilgiyi çekmek isteyebilirsiniz. Bu durumda -s parametresi kullanılır.
tcpdump -i eth0 host 192.168.1.5 and port 514 -s 40
Hangi interface’lerin olduğunu görmek için -D parametresi kullanılır.
tcpdump -D
Herhangi bir interface seçmek için -i any parametresi kullanılır.
tcpdump -i any port 514
Belirli bir protokolden belirli bir byte seçmek için protokol-adı[byte] kullanılır.
tcpdump -i eth0 tcp[13]
Belirli bir protokolde başlangıç byte’ından sonraki bir kaç byte’ı kapsamak için protokol-adı[başlangıç:kapsam] kullanılır.
tcpdump -i eth0 tcp[12:2]
Not: Yukarıdaki örnekteki ifade 12. byte’ı değil 12’den sonraki 13. ve 14. byte’ları kapsar.
TCP flag’lerini (UAPRSF) yakalamak için yukarıdaki başlık bilgisi içerisinde 6 bitlik alandaki flag konumunu bilmek gerekecektir.
SYN paketlerini görmek için
tcpdump -i eth0 tcp[13]=2 tcpdump -i eth0 tcp[tcpflags]==tcp-syn
SYN içeren paketleri görmek için
tcpdump -i eth0 'tcp[13] & 2 != 0' tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
ACK paketlerini görmek için
tcpdump -i eth0 tcp[13]=16 tcpdump -i eth0 tcp[tcpflags]==tcp-ack
Not : Tcpdump çıktısında nokta (.) olarak gördüğümüz no flag anlamına gelen şey genellikle ACK için kullanılır.
ACK içeren paketleri görmek için
tcpdump -i eth0 'tcp[13] & 16 != 0' tcpdump -i eth0 'tcp[tcpflags] & tcp-ack != 0'
SYN/ACK paketlerini görmek için
tcpdump -i eth0 tcp[13]=18 tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)'
RST paketlerini görmek için
tcpdump -i eth0 tcp[13]=4 tcpdump -i eth0 tcp[tcpflags]==tcp-rst
RST içeren paketleri görmek için
tcpdump -i eth0 'tcp[13] & 4!= 0' tcpdump -i eth0 'tcp[tcpflags] & tcp-rst != 0'
FIN paketlerini görmek için
tcpdump -i eth0 tcp[13]=1 tcpdump -i eth0 tcp[tcpflags]==tcp-fin
FIN içeren paketleri görmek için
tcpdump -i eth0 'tcp[13] & 1 != 0' tcpdump -i eth0 'tcp[tcpflags] & tcp-fin != 0'
PUSH paketlerini görmek için
tcpdump -i eth0 tcp[13]=8 tcpdump -i eth0 tcp[tcplags]==tcp-push
PUSH içeren paketleri görmek için
tcpdump -i eth0 'tcp[13] & 8 != 0' tcpdump -i eth0 'tcp[tcpflags] & tcp-push != 0'
PUSH/ACK paketlerini görmek için
tcpdump -i eth0 tcp[13]=24 tcpdump -i eth0 'tcp[tcpflags] & (tcp-push|tcp-ack) == (tcp-push|tcp-ack)'