User Tools

Site Tools


informatique:logiciels:tcpdump

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:logiciels:tcpdump [2016/07/28 09:03] – [Exemples d'utilisation] pteuinformatique:logiciels:tcpdump [2025/09/19 15:18] (current) – [Filtrer les paquets TCP SYN] et SYN+ACK pteu
Line 53: Line 53:
   * ''-C <nb>'' utilisé avec ''-w'', permet diviser la sortie de la capture dans des fichiers de <nb> Mo maximum   * ''-C <nb>'' utilisé avec ''-w'', permet diviser la sortie de la capture dans des fichiers de <nb> Mo maximum
   * ''-S'' : pour afficher les numéros de séquence absolu ; cela permet de corréler une trace tcpdump avec des logs d'autres équipements (firewalls par exemple).   * ''-S'' : pour afficher les numéros de séquence absolu ; cela permet de corréler une trace tcpdump avec des logs d'autres équipements (firewalls par exemple).
 +  * ''-Q|-P <direction>'' : capturer les paquets dans une direction, possible entre "in", "out" ou "inout"
  
  
Line 258: Line 259:
 | ce qu'on recherche |  x  |  x  |  x  |  0  |  x  |  x  |  1  |  x  | | ce qu'on recherche |  x  |  x  |  x  |  0  |  x  |  x  |  1  |  x  |
  
-On ne fait attention qu'au flags ACK et SYN : on veut que le premier soit à 0 et le second à 1. Ceci se traduit par l'expression suivante (on utilise un masque binaire avec un ET logique sur l'octet 13 afin de ne sélectionner que ces 2 flags, et on vérifie la valeur de l'octet 13) :+On ne fait attention qu'au flags ACK et SYN : on veut que le premier soit à 0 et le second à 1. Ceci se traduit par l'expression suivante (on utilise un masque binaire avec un ET logique sur l'octet 13 afin de ne sélectionner que ces 2 flags, et on vérifie le résultat) :
  
 <code bash> <code bash>
Line 265: Line 266:
 </code> </code>
 Soit, en décimal : Soit, en décimal :
-<code>+<code bash>
 tcp[13] ET 18 = 2 tcp[13] ET 18 = 2
 </code> </code>
  
 Bref : Bref :
-<code>+<code bash>
 tcpdump -i eth1 -s 40 'tcp[13] & 18 == 2' tcpdump -i eth1 -s 40 'tcp[13] & 18 == 2'
 +
 +# si on veut afficher également les "SYN+ACK", on ne filtre que sur SYN=1 :
 +tcpdump -i eth1 -s 40 'tcp[13] & 2 == 2'
 </code> </code>
 (l'option -s spécifie de ne capturer que les 40 premiers octets de chaque paquet : en effet on ne s'intéresse qu'aux entêtes des paquets.) (l'option -s spécifie de ne capturer que les 40 premiers octets de chaque paquet : en effet on ne s'intéresse qu'aux entêtes des paquets.)
 +
 +====Filtrer les paquets TCP FIN====
 +
 +On procède de la même façon que pour les TCP SYNs, mais on filtre sur le bit FIN (le bit de poids faible du 13e octet) et on ne tient pas compte du flag ACK car il est (presque ?) toujours activé de toute façon.
 +
 +^  champ ->          ^ CWR ^ ECE ^ URG ^ ACK ^ PSH ^ RST ^ SYN ^ FIN ^
 +| ce qu'on recherche |  x  |  x  |  x  |  x  |  x  |  x  |  x  |  1  |
 +
 +Ce qui nous donne :
 +<code>
 +tcpdump -i eth1 -s 40 'tcp[13] & 1 == 1'
 +</code>
 +
 +====Filtrer les messages ICMP====
 +
 +La balise "icmp" permet de filtrer tous les paquets ICMP, mais on peut filtrer des messages particulier, par exemple les ICMP redirect (type=5) :
 +<code bash>
 +tcpdump -nni eth0 icmp[0] == 5
 +</code>
 +Pour connaitre la liste exhaustive des différents messages ICMP, go [[https://fr.wikipedia.org/wiki/Internet_Control_Message_Protocol#Les_diff%C3%A9rents_messages_de_contr%C3%B4le|Wikipedia fr]]
informatique/logiciels/tcpdump.1469696627.txt.gz · Last modified: 2016/07/28 09:03 by pteu