Linux - tcpdump mémento d'options
Alasta 4 Juillet 2015 linux bash cli Open Source shell cheatsheet
Description : Voici un rappel de quelques options tcpdump
Les options :
Afficher les interfaces disponibles en écoute :
$ tcpdump -D
1.en0
2.bridge0
3.awdl0
4.en1
5.en2
6.p2p0
7.lo0
Sniffer sans filtre :
Un interface spécificque :
$ tcpdump -i eth0
**Note : ** il y a la possibilité de mettre plusieurs -i.
Sur toutes les interfaces :
$ tcpdump -i any
Niveau de verbosité :
$ tcpdump -i eth0 -v
Note : On peut mettre jusqu’à 3 v pour avoir le plus verbeux possible.
Afficher le contenu du packet en Hex et ASCII :
$ tcpdump -i eth0 -X
Afficher le contenu du packet en Hex :
$ tcpdump -i eth0 -x
Afficher les MAC dans la trace
$ tcpdump -i eth0 -e
Le moins verbeux possible :
$ tcpdump -i eth0 -q
Pas de flags TCP, le strict minimum.
limité le nombre de packets capturé :
$ tcpdump -i eth0 -c 2
Envoyer la capture dans un fichier :
$ tcpdump -i eth0 -w /tmp/capture.pcap
Note : s’il n’y a aucune option qui arrète la capture (comme -c par exemple) il faudra faire un Ctrl+C pour stopper ka capture.
Lire une capture :
$ tcpdump -r /tmp/pp.pcap
Fixer la taille que l’on enregistre de chaque packet :
$ tcpdump -i eth0 -s 500
Note : Valeur en octets, 0 = toute la taille du packet.
Ne pas faire la résolution de nom et de port :
$ tcpdump -i eth0 -n
Ne pas afficher le timestamp
$ tcpdump -i eth0 -t
Les filtres :
Sur une machine
$ tcpdump -i eth0 host 1.1.1.1
- host : machine en source ou destination
- src host : machine en source
- dst host : machine en destination
Sur le réseau
$ tcpdump -i eth0 net 1.1.1.0/24
- net : réseau en source ou destination
- src net : réseau en source
- dst net : réseau en destination
Sur le port :
$ tcpdump -i eth0 port 22
- port : port en source ou destination
- src port : port en source
- dst port : port en destination
Sur un range de ports :
$ tcpdump -i eth0 portrange 1-10000
- portrange : portrange en source ou destination
- src portrange : portrange en source
- dst portrange : portrange en destination
Sur un vlan :
$ tcpdump -i eth0 vlan 666
Note : Sur certains équipement il est necessaire de mettre le filtre vlan en premier si l’on fait plusieurs filtres.
Taille de packet
$ tcpdump -i eth0 less 20
- less NN : packet inférieur ou égal à NN octets
- greater NN : packet supérieur ou égal à NN octets
MAC
$ tcpdump -i eth0 ether host f4:ca:e5:49:4b:22
ICMP
$ tcpdump -i eth0 icmp
ARP
$ tcpdump -i eth0 arp
TCP
$ tcpdump -i eth0 tcp
UDP
$ tcpdump -i eth0 udp
Concaténation de filtres :
ET
$ tcpdump -i eth0 dst host 1.1.1.1 and port 22
OR
$ tcpdump -i eth0 broadcast or multicast
Complexes
host 1.1.1.1 et port 80 ou 23
$ tcpdump -i eth0 dst host 1.1.1.1 and (port 80 or port 23)
Afficher les packets avec le flag TCP SYN ou FIN
$ tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'
Afficher les packets ICMP sauf echo request/reply
$ tcpdump -i eth0 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'