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.
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
Vous devez vous connecter pour publier un commentaire.
Comme Barry Margolin indiqué, le
greater
opérateur vérifie la longueur de l'ensemble du paquet, y compris tous les en-têtes. 16 octets de TCP charge utile de plus de 20 octets d'en-tête TCP (c'est le minimum TCP en-tête de longueur, sans les options), plus de 20 octets d'en-tête IPv4 (c'est le minimum en-tête IPv4 longueur, sans les options), plus de 14 octets de l'en-tête Ethernet, par exemple, est de 70 octets.Je devine à partir de "lo" que vous capturez sur Linux et la capture de l'interface de bouclage, auquel cas les paquets ont un (faux) l'en-tête Ethernet.
68 octets a la valeur par défaut de l'instantané de longueur dans les anciennes versions de tcpdump, lors de la construction sans prise en charge d'IPv6, donc peut-être la longueur signalé que 68 est la capturé longueur, avec les 2 derniers octets coupé. Essayez d'exécuter l'outil tcpdump avec les drapeaux
-o 0
(sauf si c'est un vraiment ancienne version de tcpdump, un instantané de la longueur de 0 signifie "jeu de l'instantané longueur vraiment élevé, de sorte que les paquets ne pas coupé).OriginalL'auteur
Ok, cela fonctionne réellement. La longueur de paquet est visible via le "-v" pavillon.
OriginalL'auteur naab