avec tshark, vous pouvez le faire avec: tshark -l -i eth0 -f 'port 6667 et plus 74' -T field -e data
Marcin
Il indique 28 paquets capturés mais n'imprime rien sur STDOUT.
codeur
Voulez-vous dire ASCII7?
Mircea Vutcovici
Réponses:
15
Comme Josh le suggère, tcpflow peut imprimer uniquement les données du 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 afficher un seul côté de la conversation, vous pouvez utiliser des filtres pour tcpdump, par exemple dst port 23.
Pourquoi auriez-vous besoin de démarrer en tcpflowtant que root?
Ruslan
5
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 à la tcpflowplace. Il fonctionne essentiellement de la même manière, mais il imprime beaucoup mieux la sortie ASCII; il a exclu les en-têtes et imprime les paquets de manière séquentielle en tant que flux, il est donc plus facile de lire et de suivre parfois que tcpdump.
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.
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'
Réponses:
Comme Josh le suggère, tcpflow peut imprimer uniquement les données du paquet TCP dans un fichier ou STDOUT. Vous pouvez diriger tcpdump vers tcpflow comme ceci:
Pour afficher un seul côté de la conversation, vous pouvez utiliser des filtres pour tcpdump, par exemple
dst port 23
.la source
tcpflow
tant que root?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 à latcpflow
place. Il fonctionne essentiellement de la même manière, mais il imprime beaucoup mieux la sortie ASCII; il a exclu les en-têtes et imprime les paquets de manière séquentielle en tant que flux, il est donc plus facile de lire et de suivre parfois quetcpdump
.la source
Je pense que la solution la plus élégante consiste à abandonner tcpdump. Pas de tuyaux d'aucune sorte:
Et c'est tout.
la source
Un moyen rapide et sale de le faire est de filtrer la sortie via des chaînes:
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.
la source
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'
la source
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.
la source