Konvertieren von .pcap-Dateien in .txt mit tshark

Konvertieren von .pcap-Dateien in .txt mit tshark

Ich versuche, meine von tcpdump generierten .pcap-Paketerfassungsdateien in ein Textformat zu konvertieren. Ich erhalte einen Berechtigungsfehler, wenn ich versuche, die .pcap-Datei oder auch nur den Port ">" der Standardausgabe von tcpdump in eine Textdatei zu konvertieren.

Methode 1:

Generieren Sie Paketerfassungsdateien mit

sudo tcpdump -i wlan0 -w /var/log/tcpdump/tcpdump-log-06-03-2015.pcap

Versuchen Sie, die .pcap-Datei zu konvertieren mit

sudo tshark -V -r tcpdump-log-06-03-2015.pcap > tcpdump-log-06-03-2015.txt

Ich erhalte jedoch die Fehlermeldung „Zugriff verweigert“ wie diese:

bash: tcpdump-log-06-03-2015.txt: Permission denied

Methode 2:

Generieren Sie Paketerfassungsdateien mit

sudo tcpdump -i wlan0 > /var/log/tcpdump/tcpdump-log-06-03-2015.txt

Ich erhalte einen ähnlichen „Berechtigung verweigert“-Fehler:

bash: /var/log/tcpdump/tcpdump-log-06-03-2015.txt: Permission denied

Da ich beide Befehle als sudo ausführe, ging ich davon aus, dass die Berechtigungen kein Problem darstellen würden.

Ich habe Apparmor für TCPdump deaktiviert, indem ich diesen Befehl ausgeführt habe:

sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.tcpdump

Kann jemand Licht ins Dunkel bringen, warum das passiert? Oder einen besseren Weg vorschlagen, um lesbare Textausgabe für tcpdump zu generieren?

Antwort1

Das Problem besteht darin, dass der Umleitungsteil Ihrer Befehle als Sie und nicht als Root ausgeführt wird.
Wenn Sie also Ihr Zielverzeichnis so beibehalten möchten, wie es ist, müssen Sie diesen Teil auch als Root ausführen. Alternativ können Sie Ihr Zielverzeichnis so einrichten, dass Sie Schreibzugriff darauf haben.

Beispiel, das zeigt, warum es nicht funktioniert (beachten Sie die Berechtigungen für die resultierende Datei):

$ sudo tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin > vvvbbb.txt
reading from file eth1-2015-04-16-17-01-35.bin, link-type EN10MB (Ethernet)
$ ls -l vvvbbb.txt
-rw-rw-r-- 1 doug doug 5418673 Jun  2 16:53 vvvbbb.txt

Beispiel einer Methode, die funktioniert (beachten Sie auch hier die Berechtigungen für die resultierende Datei):

$ sudo su
# tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin >vvvbbb.txt
reading from file eth1-2015-04-16-17-01-35.bin, link-type EN10MB (Ethernet)
# ls -l vvvbbb.txt
-rw-r--r-- 1 root root 5418673 Jun  2 16:57 vvvbbb.txt
# exit
exit
$

Beispiel einer anderen Methode, die funktioniert, aber auch etwas auf dem Terminal ausgibt, was unerwünscht sein kann:

$ sudo tcpdump -n -tttt -r eth1-2015-04-16-17-01-35.bin | sudo tee vvvbbb.txt
... delete tons of spew to terminal ...
$ ls -l vvv*.txt
-rw-r--r-- 1 root root 5418673 Jun  2 17:01 vvvbbb.txt

Hinweis: Ich habe hier tcpdump anstelle von tshark verwendet, aber nur, weil ich tshark nicht installiert habe.

verwandte Informationen