tcpdump : Correspondance exacte de la longueur du paquet

J'ai besoin de capturer des paquets d'une longueur égale à 16 octets

Le plus proche je suis venu est: est-ce

tcpdump -ni lo -ttt dst port 1337 and greater 16

si je ajouter d'autres filtres pour correspondre à ma volonté comme :

tcpdump -ni lo -ttt dst port 1337 and greater 16 and not greater 17
tcpdump -ni lo -ttt dst port 1337 and \(greater 16 and not greater 17\)
tcpdump -ni lo -ttt dst port 1337 and greater 16 and less 16

Ça ne fait pas de paquets.

Bien, à l'aide de :

tcpdump -ni lo -ttt dst port 1337 and less 16

ne semble pas fonctionner non plus, je suis en train de demander si le moindre filtre fonctionne...

Toute aide est la bienvenue 🙂

Je pense que la longueur comprend tous les en-têtes, et pas seulement les données TCP. Je ne pense pas que vous êtes susceptible de voir les paquets qui ne sont que 16 octets. Un segment TCP dans une trame Ethernet a à 18 octets de l'en-tête Ethernet et de la remorque, et d'au moins 16 octets de l'en-tête TCP (généralement plus à cause des options TCP).
Je dois préciser que tcpdump voit les paquets-je envoyer des paquets avec 16 octets de longueur. C'est pourquoi je tiens à les filtrer à l'aide de la longueur des paquets. Je suppose qu'il supprime l'habituelle couche TCP de la longueur totale non ? Ou est-il en montrant une autre longueur ?
Oui, tcpdump fait beaucoup de décodage avant qu'il affiche les choses pour vous, et affiche le protocole spécifique de données. Mais les filtres sont mis en œuvre par une baisse du niveau de la bibliothèque qui ne savent pas beaucoup sur les protocoles.
Vous avez raison, mon paquet de longueur est en fait à 68 et non 16 comme je pensais que c'était. Je vous remercie beaucoup.

OriginalL'auteur naab | 2012-10-25