Wie mache ich tcpdump (oder ein anderes Tool), um TCP-Stream tatsächlich zu sichern?


6

Ich erwarte so etwas:

$ nc example.com 80
GET / HTTP/1.0

HTTP/1.0 500 K.O.
Content-Type: application/null
Content-Length: -1
$ 

Meanwhile: 
# tcpdump -i eth0 --actually-dump-all-tcp
217.21.51.1:56812->192.0.43.10:80 GET / HTTP/1.0
217.21.51.1:56812->192.0.43.10:80 
217.21.51.1:56812<-192.0.43.10:80 HTTP/1.0 500 K.O.
217.21.51.1:56812<-192.0.43.10:80 Content-Type: application/null
217.21.51.1:56812<-192.0.43.10:80 Content-Length: -1

Jetzt benutze ich Wireshark, aber während des Ladens wird die Verbindung mehrmals beendet.


tcpdump gibt tatsächlich einen TCP-Stream aus. Wonach suchen Sie konkret? Versuchen Sie, nur eine bestimmte TCP-Sitzung zu erfassen?
Flimzy

@Flimzy Nein, er möchte in ASCII sichern.
new123456

Antworten:


3

tcpdump Normalerweise werden Paketinformationen im Gegensatz zu tatsächlichen Daten angezeigt.

Verwenden Sie das -AFlag, um ASCII-Inhalte zu sichern. Es werden immer noch viele andere Daten (wie z. B. ARP- und DNS-Pakete) gespeichert, aber Sie sollten in der Lage sein, über Filter das zu erreichen, was Sie wollen .


Schmutziger Oneliner zum Drucken in einer Form, die meiner näher ist:tcpdump -n -A -i eth0 | perl -ne 'if(/\d\d:\d\d:\d\d\.\d{6} IP (\d+\.\d+\.\d+\.\d+)\.(\d+) > (\d+\.\d+\.\d+\.\d+)\.(\d+)\:.*length (\d+)/) { $preamble="$1:$2->$3:$4 "; } else { print "$preamble$_"; }'
Vi.

@Vi Wenn mein Gehirn nicht von der Arbeit mit setjmp/ hackery gestärkt worden longjmpwäre, hätte Perl mein Gehirn gebraten. Ich bin sicher, Douglas hätte einen Anfall, wenn er das gesehen hätte;)
new123456

9

Versuchen

tcpflow -v -i iface

Dadurch werden viele Dateien mit Dateinamen wie "IP_A.port.-IP_B.port" erstellt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.