isolar o aplicativo e verificar quais pacotes ele está enviando pela internet
18
Não tenho certeza de que esse tipo de pergunta seja apropriado aqui, então me perdoe se estiver errado.
Aqui está um problema: quero ver o que um programa específico está enviando para a Internet, mas o problema é que no computador existem muitos aplicativos e serviços que estão usando a Internet. Portanto, é impossível descobrir em quais pacotes foram enviados por um aplicativo em que estou interessado.
Uma maneira é tentar fechar todos os outros aplicativos, mas isso é impossível.
Então, existe uma maneira de isolar um aplicativo específico? Estou trabalhando no windows7 e capturando pacotes com o wireshark
Como você está usando o Wireshark, seus números de porta não são automaticamente resolvidos para o nome de um aplicativo, portanto, você precisará fazer um pouco mais para refinar as informações que está procurando. Todo aplicativo que usa TCP / IP para se comunicar através de uma rede estará usando portas, para que a pilha de rede saiba para onde entregar os segmentos (eu gosto de chamá-lo de endereço de aplicativo).
Os clientes que se conectam a um aplicativo de servidor em uma porta específica receberão dinamicamente um número de porta de um intervalo dinâmico. Então, primeiro você precisa descobrir quais conexões TCP / UDP seu aplicativo abriu:
netstat -b
na linha de comando, você verá uma lista de conexões com o nome do executável que criou a conexão. Cada executável possui uma ou mais conexões listadas como 127.0.0.1:xxxxx, em que X é o número da porta local para a conexão.
Agora, no wireshark, você precisa dizer a ele para exibir pacotes originados ou destinados a essa porta usando um ou mais destes filtros:
tcp.port == xxxxx ou udp.port == xxxxx
Adicione um adicional or tcp.port == xxxxxpara cada conexão que você deseja mostrar.
Isso permitirá que você veja todo o tráfego das conexões que seu aplicativo abriu e o Wireshark não incluirá apenas segmentos TCP / UDP brutos, mas incluirá os vários protocolos da camada de aplicativo (por exemplo, HTTP) que também usaram esses números de porta.
Se seu aplicativo parecer estar se comunicando com apenas um servidor, você poderá usar o endereço IP desse servidor para filtrar por:
O maior problema com soquetes (usando portas não reservadas) é que um soquete aberto e fechado por um aplicativo é de natureza muito dinâmica. Quando você executa o comando netstat -b, ele fornece resultados diferentes para cada aplicativo listado, mesmo que você o execute no intervalo de 5 segundos. Portanto, é muito difícil observar todos os números de porta que estão sendo alocados para o meu aplicativo. Eu estava observando o mesmo para o meu aplicativo na ferramenta "TCPView" (sysInternals suite). Vi que, em um espaço de 10 segundos, aproximadamente 15 conexões de soquete TCP foram abertas pelo meu aplicativo e muitas delas foram mortas também
RBT
11
É aqui que o Microsoft Network Monitor é útil, pois pode rastrear o processo de origem da comunicação em rede e agrupá-lo nesse processo. No entanto, desde que isso foi escrito, uma nova versão principal do Wireshark foi lançada. Pode ser que esse agrupamento também seja possível usando o Wireshark, mas eu não o uso há algum tempo.
john
7
Se você usar o Process Monitor da Microsoft , poderá alterar os filtros para mostrar apenas as comunicações de rede de processos específicos. Ele não fornece o conteúdo dos pacotes, mas mostra com quais hosts o aplicativo está falando.
Achei o Microsoft Message Analyzer muito útil para exatamente o mesmo propósito. Permite capturar o tráfego de rede e agregá-lo por árvore de processos.
Abra o cmd.exe e execute, mostre as opções da linha de comando netstat, netstat /? .
Agora tente netstat -bo 1 >> c: /test.log. Isso permitirá que você encontre os dados de conexão de rede de aplicativos específicos em um arquivo atualizado continuamente.
Lembre-se de que você precisa parar o netstat -bo >> c: /test.log de gravar no log digitando um ctl-C na janela do cmd.
Se você usar o Process Monitor da Microsoft , poderá alterar os filtros para mostrar apenas as comunicações de rede de processos específicos. Ele não fornece o conteúdo dos pacotes, mas mostra com quais hosts o aplicativo está falando.
fonte
O Microsoft Network Monitor mostrará o processo responsável pelo fluxo de tráfego.
fonte
Achei o Microsoft Message Analyzer muito útil para exatamente o mesmo propósito. Permite capturar o tráfego de rede e agregá-lo por árvore de processos.
fonte
Use o System Internals Process Monitor para obter o número do processo do aplicativo e confira as outras ferramentas Internas do Sistema em:
https://docs.microsoft.com/en-us/sysinternals/
Abra o cmd.exe e execute, mostre as opções da linha de comando netstat, netstat /? .
Agora tente netstat -bo 1 >> c: /test.log. Isso permitirá que você encontre os dados de conexão de rede de aplicativos específicos em um arquivo atualizado continuamente.
Lembre-se de que você precisa parar o netstat -bo >> c: /test.log de gravar no log digitando um ctl-C na janela do cmd.
fonte
Apenas substitua
My_Application
pelo aplicativoPNAME
ouPID
Não testei no Windows 7. mas funciona no Linux.
fonte