web-dev-qa-db-fra.com

Comment filtrer la sortie tcpdump en fonction de la longueur du paquet

J'ai essayé de filtrer la sortie de tcpdump en fonction de la longueur des paquets. Mais je n'ai pas eu de chance.

Il s'agit de la sortie simple d'une commande;

tcpdump -n -i eth0 dst port 443 -A

17:03:30.866890 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [S], seq 2685064927, win 14600, options [mss 1460,sackOK,TS val 7028787 ecr 0,nop,wscale 4], length 0
E..<..@.@.......>K.<.0...
........9............
.k@3........


17:03:30.867658 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 2285019097, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 0
E..4..@.@.......>K.<.0...
...2.............
.k@3:..U


17:03:30.867928 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 0:171, ack 1, win 913, options [nop,nop,TS val 7028787 ecr 974439509], length 171
E.....@[email protected]....>K.<.0...
...2.............
.k@3:..U...........Opw2.....l..".T.7.q.]h..8W..%.....H...
.......9.8.......5...   .....E.D.3.2...........A...../.........
...1.........alice.sni.velox.ch.
.................#..


17:03:30.869712 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [.], ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 0
E..4..@.@.......>K.<.0...
...2.....6.......
.k@4:..W


17:03:30.870724 IP 192.168.0.149.45104 > 62.75.148.60.443: Flags [P.], seq 171:178, ack 1319, win 1078, options [nop,nop,TS val 7028788 ecr 974439511], length 7
E..;..@.@.......>K.<.0...
...2.....6.......
.k@4:..W......0

Je veux voir les paquets uniquement s'ils ont une longueur supérieure à 100 octets. pour ce cas, seul le 3ème paquet.

options [nop, nop, TS val 7028787 ecr 974439509], longueur 171

J'ai consulté les pages de manuel de tcpdump, mais je n'ai trouvé aucun paramètre utile. il y a une expression "plus longue" mentionnée ici; http://www.Ethereal.com/docs/man-pages/tcpdump.8.html mais je ne pouvais pas utiliser cette expression aussi.

$ tcpdump -n -i eth0 dst port 443 -A -x greater 100
tcpdump: syntax error

Merci pour toute aide.

19
Muhammet Can

greater length fonctionne, mais vous devez l'utiliser dans le cadre d'une expression de filtre complète, et l'expression de filtre doit venir après tous les arguments d'indicateur de ligne de commande.

Exemple de travail:

tcpdump -n -i eth0 -A -x dst port 443 and greater 100

Devrait marcher - dst port 443 and greater 100 est une expression de filtre complète, qui vérifie les paquets envoyés à TCP ou port UDP 443 et qui ont un total longueur (y compris couche de liaison, IP et TCP!) supérieure à 100.

exemple non fonctionnel:

tcpdump -n -i eth0 dst port 443 -A -x greater 100

Ne fonctionnera pas - le dst dans dst port 443 est traité comme le début d'une expression de filtre, ce qui signifie qu'elle et tout après, y compris -A et -x, sont traités comme faisant partie de l'expression du filtre, mais -A et -x ne sont pas des composants valides d'une expression de filtre. Ils sont vraisemblablement destinés à être des options de ligne de commande, ils doivent donc aller avant tous les arguments non-flag, y compris les composants de l'expression de filtre.

33
user862787