TCPdump tips/tricks

  Netwerk

Tcpdump is een handige tool om je netwerk security te analyseren, je kan alle netwerk pakketten binnen je netwerk bekijken en op te slaan om later verder te analyseren. Je kan natuurlijk al het verkeer in een file dumpen wat er voorbij komt/over je interface gaat. Maar dit kan resulteren in erg grote files, beter is dus om filter optie te gebruiken bij het scannen/sniffen. houd er ook rekening mee dat switches in je netwerk er voor zorgen dat je niet al het verkeer ziet in je netwerk. gebruik tcpudump bv op je firewall of op de je KVM/XEN/QEMU host. in dit document enkelen voorbeelden.

tcpdump is er voor verschillende operating systemen (oa Windows, AIX, HP-ux, enz). onder staande voorbeelden zijn getest op linux. waarschijnlijk werken ze op andere operating systemen ook.

Simpele scan op port nummer

Laten we beginnen met een simpele scan, ik wil bv controleren of het verkeer naar mijn mail server (SMTP) beveiligd is. mijn mail server draait op port tcp 25 en al het verkeer naar die port wil ik gescanned hebben. mijn interface naar internet is eth1 die nemen we ook mee in de filter. We schrijven alles weg in de file test.pcap.

tcpdump -w test.pcap -i eth1 tcp port 25

We laten de scan even lopen en als voeren de handelingen uit die we wilden testen. (vanuit een andere terminal of werkplek), Als we klaar zijn breek je tcpdump af met crtl-c

de -w hoef je niet te gebruiken, alle informatie word dan direct op je scherm geprint.

PCAP file analyseren

Je kan de pcap file ook bekijken met tcpdump, maar er zijn ook andere tools waar dit mee kan. persoonlijk geef ik de voorkeur aan wireshark (voorheen ethereal). maar dit document ging over tcpdump dus toch nog even hoe je het kan bekijken met tcpdump.

tcpdump -nnr test.pcap

de -nn zorgt er voor dat tcpdump niet het ip adres resolved en ook de port word niet geresolved. De -r geeft aan dat de file test.pcap gelezen moet worden.

In de file staat ook nog een deel van de data die in het pakket zat, default staat niet alles er standaard size is 68 bytes. Wil je alle data capture moet je een extra optie gebruiken zie volgende paragraaf. Wil je deze data met de command line bekijken kan je de -X of de -XX toevoegen voor meer informatie. Voor een beter timestamp inclusief date voeg je -tttt toe.

Er zijn nog meer optie’s maar daarvoor moet je zelf maar in de man page kijken.

Meer filter opties

Er zijn uiteraad mee filter mogelijkheden, je wilt bv alle pakketten van een bepaald IP adres en een bepaalde port. ik wil bv al het ssh verkeer zijn van af 1 van mijn hosts, naar mijn firewall.

tcpdump -w test.pcap dst 192.168.48.2 and tcp port 22

Zoals al eerder gezegd word default niet het complete pakket opgeslagen op linux is het default 68 bytes, dit is voldoende om de belangrijkste zaken te kunnen volgen. Je kan uiteraard wel het complete pakket opslaan met de -s optie houd er wel rekening mee dat de file een stuk groter word. als je een druk systeem hebt kan je pakketten kwijt raken. Meestal is de default voldoende.

tcpdump -w test.pcap -s 1550 dst 192.168.48.2 and tcp port 22

Het is ook mogelijk om complete portranges op te geven zo kan je bv alle het verkeer opslaan tussen port 20 en 24.

tcpdump -w test.pcap tcp portrange 20-24

bovenstaande slaat al het verkeer op van zowel de source tcp porten 20-24 als destenation tcp port 20-24. je kan hier ook ook diverse extra combinaties gebruiken. je laaat bv tcp weg dan word ook al het andere verkeer naar en van die poorten opgeslagen. maar je kan ook de extra optie dst (destenation) en src (source) gebruiken.

Er zijn vele mogelijkheden, het beste is om er even mee te spelen, en kijk ook eens in de man page voor extra opties