Table des matières

tcpdump

tcpdump permet de capturer des paquets réseaux afin de les analyser.

Plein d’exemple dispo

Les options

La commande tcpdump affiche directement la capture de l’interface réseau par défaut.

Le mode verbeux à 3 niveaux -v -vv -vvv, a contrario, l’option -q affiche moins de détails

Pour lister les interfaces réseaux

tcpdump -D

Pour utiliser une interface réseau particulière

tcpdump -i eth1

Pour afficher uniquement les adresses ip sans résolution dns

tcpdump -n

Afficher le contenu des paquets

tcpdump -A

Afficher le contenu des paquets avec le code hexadécimal en plus de l’ASCII

tcpdump -X

Ecrire la capture dans un fichier

tcpdump -w lefichier.pcap

Lire un fichier de capture

tcpdump -r lefichier.pcap

Les règles

Une règle simple qui ne permet d’écouter qu’un hôte précis :

tcpdump  host le_nom_de_lhote

Une règle un peu plus complexe qui écoute une hôté précis et son port :

tcpdump host le_nom_de_lhote port le_port

Écouter tout le trafic entre l’hôte 1 et l’hôte 2 ou 3 (les antislashs devant les parenthèses servent à ne pas faire interpréter ses dernières par un shell) :

tcpdump host hote1 and \( hote2 or hote3 \)

Tous les paquets IP entre l’hôte 1 et le reste du réseau, sauf l’hôte 2 :

tcpdump ip host hote1 and not hote2

Pour afficher les paquets SYN et le paquets FIN de chaque session TCP d’un hôte qui n’est pas sur notre réseau :

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net ladresse_du_reseau_local'

Pour afficher tous les paquets HTTP sur IPv4 qui viennent ou arrivent sur le port 80 et qui ne contiennent que des données (pas de SYN, pas de FIN, pas de paquet ne contenant qu’un ACK):

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

Affichage des paquets FTP venant de 192.168.1.100 et allant vers 192.168.1.2:

tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp