Sniff UDP-Pakete an einem lokalen Port

11

Ich möchte wissen, was der Inhalt eines Pakets ist, das eine Anwendung "APM Planner" an eine andere "MAVProxy" sendet. Ich weiß, dass sie über den UDP-Port 14550 kommunizieren. Ich habe versucht, tcpdump zu verwenden, indem ich die folgenden Befehle ausgeführt habe

tcpdump -u port 14550

und

tcpdump udp

und

netstat -uanpc | grep 14550

aber keiner von ihnen hat mir gezeigt, was diese beiden Anwendungen wirklich austauschen. Ich brauche so etwas wie cutecom zur Überwachung der UDP-Verbindung. Gibt es so etwas? Wenn ich den Befehl ausführe

netstat -lnpuc

zeigt es das Folgende unter seiner Ausgabe

udp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2 
Salahuddin Ahmed
quelle
Haben Sie das aufgerufene GUI-Programm in Betracht gezogen wireshark? Es zerlegt die Pakete und zeigt Ihnen die von jedem gesendeten Informationen an. Anschließend können Sie udp.port == 14550den Filterbefehl oder einen ähnlichen Befehl verwenden, um nur diesen Datenverkehr anzuzeigen. Das Problem ist, dass Sie basierend auf dem Inhalt des Pakets zusammensetzen müssen, was hin und her geht. Aber es hört sich so an, als ob Sie dies letztendlich selbst tun möchten ... (Schnüffeln Sie einfach an der loSchnittstelle, wenn Sie dies tun - das ist der 'lokale' 127. *. *. * Bereich und das lokale IPv6 intern auf Ihrem System)
Thomas Ward
Vielen Dank für Ihren Kommentar. Ich installierte und Wireshark getippt udp.port == 14550in Apply a display filtereingereicht , aber nichts erschien. Ich habe es auch udp port 14550auf dem Enter a capture filterFeld versucht . Auch wenn ich den Befehl ausführe netstat -lnpuc, zeigt er Folgendes in seiner Ausgabeudp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2
Salahuddin Ahmed
Klingt für mich so, als würde man nicht unbedingt lokal zuhören. Haben Sie versucht, andere Schnittstellen zu verfolgen, um festzustellen, ob sie ausgehend kommunizieren?
Thomas Ward
1
Jetzt geht es. Ich musste laufen wiresharkmit sudo. Vielen Dank
Salahuddin Ahmed

Antworten:

15

tcpdump unterstützt die UDP-Erfassung . Anwendungsbeispiel:

tcpdump -n udp port 14550

Bearbeiten

Da Ihre Anwendungen mit der lo- Schnittstelle kommunizieren , müssen Sie die folgende Schnittstelle angeben:

tcpdump -i lo -n udp port 14550

Dieser Befehl druckt nur Header. Wenn Sie den Datenteil eines Pakets in Hex und ASCII drucken möchten, verwenden Sie Folgendes:

tcpdump -i lo -n udp port 14550 -X

Wenn Sie Pakete in einer Datei speichern und deren Inhalt in Wireshark anzeigen möchten, verwenden Sie Folgendes :

tcpdump -i lo -n udp port 14550 -w packets.pcap
Ghasem Pahlavan
quelle
Ich habe diesen Befehl ausprobiert, aber er erfasst die Pakete nicht. Es gibt folgendes aus listening on wlo1, link-type EN10MB (Ethernet), capture size 262144 bytesund sonst nichts!
Salahuddin Ahmed
@ SalahuddinAshraf Ich habe es behoben :)
Ghasem Pahlavan
Danke, es funktioniert jetzt. Es zeigt Quelle, Ziel und Länge der übertragenen Daten an. Ist es möglich, die übertragenen Daten selbst anzuzeigen?
Salahuddin Ahmed
@ SalahuddinAshraf ja. Sie müssen die Option -A an tcpdump anhängen , um Daten anzuzeigen. Sie können auch ein Paket an eine Datei senden und Pakete in Wireshark von-w packets.pcap
Ghasem Pahlavan
Pahlvan, großartig. Jetzt kann ich die Daten sehen. Ist es möglich, die Daten hexadezimal anzuzeigen? Vielen Dank
Salahuddin Ahmed
0

Sie können ngrep verwenden . Beispiel:

# Any UDP from any local interfaces to 91.22.38.4:12201
ngrep -W byline -d any udp and host 91.22.38.4 and dst port 12201
Alexander Yancharuk
quelle