aislar la aplicación y verificar qué paquetes está enviando a través de Internet


18

No estoy seguro de que este tipo de pregunta sea apropiada aquí, así que perdóname si me equivoco.

Aquí hay un problema: quiero ver qué está enviando un programa específico a Internet, pero la cuestión es que en la computadora hay muchas aplicaciones y servicios que utilizan Internet. Por lo tanto, es imposible averiguar qué paquetes fueron enviados por una aplicación en la que estoy interesado.

Una forma es tratar de cerrar todas las demás aplicaciones, pero esto es imposible.

Entonces, ¿hay alguna manera de aislar una aplicación específica? Estoy trabajando en Windows7 y capturando paquetes con wireshark

Respuestas:


13

Dado que está utilizando Wireshark, sus números de puerto no se resuelven automáticamente al nombre de una aplicación, por lo que deberá hacer un poco más para refinar la información que está buscando. Cada aplicación que utilice TCP / IP para comunicarse a través de una red utilizará puertos, de modo que la pila de red sepa a dónde entregar segmentos (me gusta llamarla una dirección de aplicación).

A los clientes que se conectan a una aplicación de servidor en un puerto específico se les asignará dinámicamente un número de puerto de un rango dinámico. Entonces, primero debe averiguar qué conexiones TCP / UDP tiene abierta su aplicación:

netstat -b

en la línea de comando le dará una lista de conexiones con el nombre del ejecutable que creó la conexión. Cada ejecutable tiene una o más conexiones enumeradas como 127.0.0.1:xxxxx, donde X es el número de puerto local para la conexión.

Ahora en wireshark, debe indicarle que muestre los paquetes que se originaron o están destinados a ese puerto utilizando uno o más de estos filtros:

tcp.port == xxxxx o udp.port == xxxxx

Agregue un adicional or tcp.port == xxxxxpara cada conexión que desee mostrar.

Esto le permitirá ver todo el tráfico de las conexiones que su aplicación ha abierto y Wireshark no solo incluirá segmentos TCP / UDP sin procesar, sino que también incluirá los diversos protocolos de capa de aplicación (por ejemplo, HTTP) que también usaron esos números de puerto.

Si su aplicación parece estar comunicándose con un solo servidor, puede usar la dirección IP de ese servidor para filtrar por:

ip.addr == x.x.x.x

El mayor problema con los sockets (utilizando puertos no reservados) es que un socket que se abre y se cierra por una aplicación es de naturaleza muy dinámica. Cuando ejecuta el comando netstat -b, obtendrá resultados diferentes para cada aplicación de la lista, incluso si lo ejecuta en un intervalo de 5 segundos. Por lo tanto, es muy difícil notar todos los números de puerto que se asignan a mi aplicación. Estaba observando lo mismo para mi aplicación en la herramienta "TCPView" (suite sysInternals). Vi que en un lapso de 10 segundos mi aplicación abrió aproximadamente 15 conexiones de socket TCP y muchos de ellos fueron asesinados también
RBT

1
Aquí es donde Microsoft Network Monitor es útil, ya que puede rastrear el proceso desde el que se origina la comunicación de red y agruparlo en ese proceso. Sin embargo, desde que esto se escribió, se lanzó una nueva versión principal de Wireshark. Puede darse el caso de que tal agrupación también sea posible usando Wireshark, pero no lo he usado en mucho tiempo.
John

7

Si usa Process Monitor de Microsoft , puede cambiar los filtros para mostrar solo las comunicaciones de red de procesos específicos. No le proporciona el contenido de los paquetes, pero sí muestra con qué hosts está hablando la aplicación.


1
? Quería ver los paquetes.
Pacerier

1

Microsoft Network Monitor le mostrará el proceso responsable del flujo de tráfico.



0

Use System Internals Process Monitor para obtener el número de proceso de la aplicación y verifique las otras herramientas internas del sistema en:

https://docs.microsoft.com/en-us/sysinternals/

Abra cmd.exe y ejecútelo, muestre las opciones de línea de comandos de netstat, netstat /? .

Ahora intente netstat -bo 1 >> c: /test.log. Esto le permitirá encontrar sus datos de conexión de red de aplicaciones específicas en un archivo actualizado continuamente.

Recuerde, debe evitar que netstat -bo >> c: /test.log escriba en el registro ingresando un ctl-C en la ventana de cmd.


-2

Simplemente reemplácelo My_Applicationcon el de su aplicación PNAMEoPID

netstat --programas | grep "Mi_Aplicación"

No lo pruebo en Windows 7. pero funciona en Linux.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.