Frage Wie kann ich tcpdump die tcp-Header nicht drucken?


Ich habe es versucht:

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

Ich brauche nur den ASCII-Teil davon. Wie entferne ich den Rest?


22
2017-11-28 15:29


Ursprung


Mit tshark können Sie es tun mit: tshark -l -i eth0 -f 'Port 6667 und größer 74' -T Feld -e Daten - Marcin
Es sagt 28 Pakete erfasst, aber nichts auf STDOUT gedruckt. - coder
Meinst du ASCII7? - Mircea Vutcovici


Antworten:


Wie Josh vorschlägt, kann tcpflow nur die TCP-Paketdaten in eine Datei oder STDOUT drucken. Sie können tcpdump wie folgt an tcpflow pipen:

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

Um nur eine Seite der Konversation anzuzeigen, können Sie Filter für tcpdump verwenden, z. dst port 23.


11
2018-02-18 03:02



Warum musst du anfangen? tcpflow als root? - Ruslan


Ich bin mir nicht sicher über die genaue Syntax für tcpdump... in der Tat habe ich diese Frage als Favorit markiert, weil ich es gerne wissen würde! Aber als eine alternative Lösung könnten Sie versuchen, zu verwenden tcpflow stattdessen. Es funktioniert im Wesentlichen auf die gleiche Weise, aber es druckt ASCII-Ausgabe viel besser; Es schließt die Header aus und druckt Pakete sequentiell als Fluss, so dass es einfacher ist, sie zu lesen und ihnen zu folgen tcpdump.


5
2018-04-14 15:01





Eine schnelle und schmutzige Möglichkeit besteht darin, die Ausgabe über Strings zu filtern:

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

Manchmal haben Sie keine anderen Werkzeuge und für einen schnellen Blick in die Nutzlast reicht dies. Es ist nicht gut, wenn Sie genau die Nutzlast für die Injektion oder eine exakte Analyse benötigen.


4
2018-04-14 15:34





Ich denke, die eleganteste Lösung ist, nur Tcpdump zu entfernen. Keine Rohre jeglicher Art:

tcpflow -c port 6667

Und das ist es.


3
2018-06-25 22:29





Wenn Sie nur den ASCII-Teil benötigen, den Sie verwenden können: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g' oder mit ngrep: ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'


1
2018-04-14 16:04





Ich hatte das gleiche Problem letzte Woche - ich benutzte stattdessen die wireshark gui und machte eine "Kopie lesbar ascii" für die interessanten Pakete.

Ich versuchte (erfolgreich), ein Problem mit einer HTTP-Anfrage an einen Web-Service und dessen XML-Antwort festzuhalten.


1
2017-07-30 21:00