logo rss

L'analyseur de paquets tcpdump

tcpdump est un analyseur de paquets comparable à Wireshark mais en ligne de commande.

Environnement

  • tcpdump : 4.9.3

Les principales 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

  • and ou && :
root@host:~# tcpdump -nnvvS and src 10.5.2.3 and dst port 3389
  • or ou || :
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
  • not ou ! :
root@host:~# tcpdump -vv src mars and not dst port 22
  • groupement :
root@host:~# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'

Exemples

Exemples principaux

  • 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
  • Filtrage sur le port 443
root@host:~# tcpdump port 443
  • Filtrage sur une rangée de ports
root@host:~# tcpdump portrange 443-445
  • Filtrage par port source
root@host:~# tcpdump src port 443
  • Filtrage par port source et par protocole
root@host:~# tcpdump src port 443 and tcp
  • Addresse MAC :
root@host:~# tcpdump -i eth0 -A -n -vv ether host 0f:08:6d:6f:bb:0d
  • Messages Broadcast :
root@host:~# tcpdump -i eth0 -A -n -vv ether broadcast
  • Quitter après 50 trames :
root@host:~# tcpdump -i eno2.113 -A -vvv -n -c 50 'icmp and host 192.168.1.254'

Fichier Pcap

  • Create a capture file and rotate automatically each 3600 seconds
root@host:~# tcpdump -i eth1 -w %F_%H%M -G 3600
  • Cut a sequence from a pcap file
root@host:~# apt-get install tshark
root@host:~# editcap -F libpcap -A "2015-06-02 17:10:00" -B "2015-06-02 17:20" 2015-06-02_1631 2015-06-02_1710_1720.NEW

Le trafic IPsec

Lorsque l'on effectue un tcpdump depuis une machine qui a établit un tunnel ipsec on ne sera pas en mesure de voir le trafic en clair. On ne verra uniquement que les trames ESP chiffrées. Pour être en mesure de visualiser le trames en clair nous allons avoir besoin d'utiliser netfilter/iptables avec nflog.

  • Règles iptables :
root@host:~# iptables -t mangle -I PREROUTING -m policy --pol ipsec --dir in -j NFLOG --nflog-group 5
root@host:~# iptables -t mangle -I POSTROUTING -m policy --pol ipsec --dir out -j NFLOG --nflog-group 5
  • Récupérer le trafic déchiffré :
root@host:~# tcpdump -s 0 -n -i nflog:5

Références

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact