web-dev-qa-db-fra.com

Comment faire pour que tcpdump n'imprime pas les en-têtes tcp?

J'ai essayé ceci:

tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'

Je n'en ai besoin que de la partie ascii. Comment retirer le reste?

31
coder

Comme Josh le suggère, tcpflow peut imprimer uniquement les données de paquet TCP dans un fichier ou STDOUT. Vous pouvez diriger tcpdump vers tcpflow comme ceci:

tcpdump -i lo -l -w - port 23 | tcpflow -C -r -

Pour ne voir qu'un côté de la conversation, vous pouvez utiliser des filtres pour tcpdump, par ex. dst port 23.

17
jwmullally

Je pense que la solution la plus élégante consiste à abandonner tcpdump. Pas de tuyaux d'aucune sorte:

tcpflow -c port 6667

Et c'est tout.

7
BarsMonster

Je ne suis pas sûr de la syntaxe exacte de tcpdump... en fait, j'ai marqué cette question comme favorite parce que j'aimerais savoir! Mais comme solution alternative, vous pouvez essayer d'utiliser tcpflow à la place. Il fonctionne essentiellement de la même manière, mais il imprime bien mieux ASCII; il exclut les en-têtes et imprime les paquets séquentiellement comme un flux, il est donc plus facile à lire et à suivre parfois que tcpdump.

5
Josh

Un moyen rapide et sale de le faire consiste à filtrer la sortie via des chaînes:

tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings

Parfois, vous n'avez pas d'autres outils et pour un aperçu rapide de la charge utile, cela suffit. Ce n'est pas bon si vous avez besoin de la charge utile exacte pour l'injection ou d'une analyse exacte, bien sûr.

4
Eduardo Ivanec

Si vous n'avez besoin que de la partie ASCII vous pouvez utiliser: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g' ou avec ngrep: ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'

1
Mircea Vutcovici

J'ai eu le même problème la semaine dernière - j'ai plutôt utilisé le wirehark gui et fait un "ascii lisible par copie" pour les paquets intéressants.

J'essayais (avec succès) d'identifier un problème avec une demande http à un service Web et sa réponse XML.

1
Nils