L'analyseur de paquets tcpdump
tcpdump est un analyseur de paquets comparable à Wireshark mais en ligne de commande.
Préambule
Environnement
- OS : Debian wheezy 7.6
- tcpdump : 4.3.0
Quelques options
- -n : pas de résolution DNS
- -X : affiche le contenu ascii et hex du paquet
- -S : changes the display of sequence numbers to absolute rather than relative
- -i : choix de l'interface, -i any écoutera sur toutes les interfaces (par défaut)
- -nn : ne résout ni les noms DNS ni les noms des ports
- -XX : comme -X mais affiche également les entetes ethernet
- -v -vv ou -vvv : augmente la verbosité
- -c : count, -c X ne prendra que X paquets puis quittera automatiquement
- -e : récupére l'entete ethernet
- -q : affiche moins d'infos sur le protocole
- -E : déchiffre le protocole ESP (en fournissant une clé)
- -w : écrire dans un fichier
- -r : lire un fichier
- -s : tcpdump ne prend que les 96 premiers octets d'un paquet par défaut. Si l'on veut prendre plus il faut rajouter l'option -s "nombre d'octets à capturer". Avec -s 0 on capture le paquet entier.
Les opérateurs
root@host:~# tcpdump -nnvvS and src 10.5.2.3 and dst port 3389
root@host:~# tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
root@host:~# tcpdump -vv src mars and not dst port 22
root@host:~# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'
Exemples
-
N'écouter que pour l'hote 1.2.3.4 (marche aussi avec un nom si pas d'option -n)
root@host:~# tcpdump host 1.2.3.4
-
src 1.2.3.4 : filtrage sur l'adresse source
-
dst 1.2.3.4 : filtrage sur l'adresse de destination
root@host:~# tcpdump src 1.2.3.4
-
Filtrage par protocole (fonctionne avec tcp, udp)
root@host:~# tcpdump icmp
root@host:~# tcpdump port 443
-
Filtrage sur une rangée de ports
root@host:~# tcpdump portrange 443-445
root@host:~# tcpdump src port 443
-
Filtrage par port source et par protocole
root@host:~# tcpdump src port 443 and tcp
Largement inspiré de : http://www.danielmiessler.com/study/tcpdump/