Il problema con strumenti come netstat
, ss
e lsof
è che funzionano su istantanee dello stato della rete. Le connessioni che vengono ripristinate durante l'installazione non verranno visualizzate con un'alta probabilità.
Mentre Wireshark può catturare i pacchetti TCP, non sarà in grado di comunicare l'ID del processo che ne è responsabile. Questa informazione non è fornita in una normale acquisizione Ethernet. C'è un meccanismo diverso ( NFLOG ) che può registrare i pacchetti come visto da Netfilter (iptables), ma questo può contenere al massimo l'ID utente del processo che ha generato un pacchetto.
Un approccio per affrontare il problema è lo stallo o il dropping del traffico di rete.
- Usando Wireshark, potresti ad esempio determinare che l'intervallo di porte è compreso tra 5037-5585.
-
Aggiungi una nuova regola del firewall che interrompe il traffico TCP appena avviato all'interfaccia di loopback per tale intervallo di porte:
sudo iptables -I INPUT -p tcp -i lo --dport 5037:5585 --syn -j DROP
-
Ora puoi usare netstat, ss, ecc. per trovare il programma incriminato. Ad esempio:
sudo ss -tapn | grep '5[0-5]'
-
Al termine, rimuovi la regola del firewall in modo tale che possano verificarsi nuove connessioni:
sudo iptables -D INPUT -p tcp -i lo --dport 5037:5585 --syn -j DROP
Ho usato questo approccio per identificare che il daemon ADB stava cercando di connettersi tutto il tempo ad alcune porte locali, presumibilmente per localizzare un simulatore Android.