Sniffare i pacchetti UDP su una porta locale


12

Mi piacerebbe sapere quali sono i contenuti di un pacchetto che un'applicazione "APM Planner" invia ad un altro "MAVProxy". So che stanno comunicando sulla porta UDP 14550. Ho provato a usare tcpdump eseguendo i seguenti comandi

tcpdump -u port 14550

e

tcpdump udp

e

netstat -uanpc | grep 14550

ma nessuno di loro mi ha mostrato quali sono queste due applicazioni realmente scambiate. Ho bisogno di qualcosa come cutecom per monitorare la connessione UDP. C'è qualcosa del genere? Quando eseguo il comando

netstat -lnpuc

, mostra quanto segue tra i suoi output

udp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2 

Hai considerato il programma GUI chiamato wireshark? Sezionerà i pacchetti e ti mostrerà le informazioni che vengono inviate da ciascuno, e puoi quindi usare udp.port == 14550o simili come comando di filtro per mostrare solo quel traffico. Il problema è che dovrai mettere insieme ciò che va avanti e indietro in base al contenuto del pacchetto. Ma alla fine sembra che questo sia ciò che vuoi fare tu stesso ... (Basta annusare l' lointerfaccia se lo fai - questa è la gamma "locale" 127. *. *. * E IPv6 locale internamente sul tuo sistema)
Thomas Ward

Grazie per il tuo commento. Ho installato Wireshark e digitato udp.port == 14550in Apply a display filterarchiviato, ma nulla sembrava. Ho anche provato udp port 14550sul Enter a capture filtercampo. Inoltre, quando eseguo il comando netstat -lnpuc, mostra quanto segue tra i suoi outputudp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2
Salahuddin Ahmed,

Mi sembra che non sia necessariamente in ascolto locale. hai provato a tracciare su altre interfacce per vedere se comunica in uscita?
Thomas Ward

1
Adesso funziona. Ho dovuto correre wiresharkcon sudo. Mille grazie
Salahuddin Ahmed,

Risposte:


17

tcpdump supporta l' acquisizione UDP . esempio di utilizzo:

tcpdump -n udp port 14550

modificare

A causa delle vostre applicazioni sono comunicanti con lo interfaccia è necessario specificare l'interfaccia come questa:

tcpdump -i lo -n udp port 14550

questo comando stampa solo le intestazioni. se si desidera stampare parte dei dati del pacchetto in esadecimale e ASCII, utilizzare questo:

tcpdump -i lo -n udp port 14550 -X

o se vuoi salvare i pacchetti in un file e vedere il suo contenuto in Wireshark usa questo:

tcpdump -i lo -n udp port 14550 -w packets.pcap

Ho provato questo comando ma non cattura i pacchetti. Emette il seguente listening on wlo1, link-type EN10MB (Ethernet), capture size 262144 bytese nient'altro!
Salahuddin Ahmed,

@SalahuddinAshraf L'ho risolto :)
Ghasem Pahlavan

grazie, ora funziona. Visualizza l'origine, la destinazione e la lunghezza dei dati trasferiti. È possibile farlo visualizzare i dati trasferiti?
Salahuddin Ahmed,

@SalahuddinAshraf sì. è necessario aggiungere l'opzione -A a tcpdump per visualizzare i dati. inoltre puoi inviare un pacchetto a un file e vedere i pacchetti in Wireshark di-w packets.pcap
Ghasem Pahlavan

Pahlvan, fantastico. Ora posso vedere i dati. È possibile rendere i dati visualizzati in esadecimale? Mille grazie
Salahuddin Ahmed,

1

Puoi usare ngrep . Esempio:

# 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.