¿Hay alguna manera de determinar qué servicio (en svchost.exe) realiza una conexión saliente?


12

Estoy rehaciendo la configuración de mi firewall con políticas más restrictivas y me gustaría determinar la procedencia (y / o el destino) de algunas conexiones salientes.

Tengo un problema porque provienen de svchost.exe y van a proveedores de entrega de aplicaciones / contenido web, o similar:

5 IP in range: 82.96.58.0 - 82.96.58.255      --> Akamai Technologies         akamaitechnologies.com
3 IP in range: 93.150.110.0 - 93.158.111.255  --> Akamai Technologies         akamaitechnologies.com
2 IP in range: 87.248.194.0 - 87.248.223.255  --> LLNW Europe 2               llnw.net
205.234.175.175                               --> CacheNetworks, Inc.         cachefly.net
188.121.36.239                                --> Go Daddy Netherlands B.V.   secureserver.net

Entonces, ¿es posible saber qué servicio hace una conexión en particular? ¿O cuál es su recomendación sobre las reglas aplicadas a estas?

(Comodo Firewall y Windows 7)

Actualizar:

netstat -anoy tasklist /svcayúdame un poco, pero son muchos servicios en un svchost.exe, por lo que sigue siendo un problema. además, los nombres de servicio devueltos por "tasklist / svc" no son fáciles de leer.

(Todas las conexiones son HTTP (puerto 80) pero no creo que sea relevante)

Respuestas:


9

Encontré un método en esta respuesta de Falla del servidor (sobre servicios y uso de memoria) que podría usar para analizar individualmente el uso de servicios de la red (con cualquier herramienta de red)

Peter Mortensen:

Divida cada servicio para que se ejecute en su propio proceso SVCHOST.EXE y el servicio que consume los ciclos de la CPU será fácilmente visible en el Administrador de tareas o el Explorador de procesos (se requiere el espacio después de "="):

SC Config Servicename Type= own

Haga esto en una ventana de línea de comandos o póngalo en un script BAT. Se requieren privilegios administrativos y se requiere reiniciar la computadora antes de que surta efecto.

El estado original se puede restaurar mediante:

SC Config Servicename Type= share

7

SysInternals Process Explorer puede hacer esto por usted.

Abra las propiedades del proceso de la svchost.exeinstancia que está intentando analizar. Haga clic en la pestaña TCP / IP . Haga doble clic en la conexión que desea descubrir para que aparezca un seguimiento de la pila de la conexión. Debería poder rastrear la pila hasta la DLL que implementa el servicio. Aquí hay un extracto del archivo de ayuda sobre el tema de las propiedades del proceso :

TCP / IP:

Todos los puntos finales TCP y UDP activos propiedad del proceso se muestran en esta página.

En Windows XP SP2 y superior, esta página incluye un botón de Pila que abre un cuadro de diálogo que muestra la pila del hilo que abrió el punto final seleccionado en el momento de la apertura. Esto es útil para identificar el propósito de los puntos finales en el proceso del Sistema y en los procesos de Svchost porque la pila incluirá el nombre del controlador o servicio responsable del punto final.

También en la configuración de símbolos

Configurar símbolos: en Windows NT y superior, si desea que Process Explorer resuelva las direcciones para las direcciones de inicio de subprocesos en la pestaña de subprocesos del cuadro de diálogo de propiedades del proceso y la ventana de pila de subprocesos, luego configure los símbolos descargando primero el paquete de herramientas de depuración para Windows desde la web de Microsoft sitio e instalándolo en su directorio predeterminado. Abra el cuadro de diálogo Configurar símbolos y especifique la ruta al dbghelp.dll que se encuentra en el directorio Herramientas de depuración y haga que el motor de símbolos descargue los símbolos a pedido de Microsoft a un directorio en su disco ingresando una cadena de servidor de símbolos para la ruta del símbolo. Por ejemplo, para que los símbolos se descarguen en el directorio c: \ symbols, debe ingresar esta cadena:

srv c: \ symbols http://msdl.microsoft.com/download/symbols

Nota: Es posible que deba ejecutar Process Explorer como administrador para poder ver la pila del hilo.


Muy interesante, pero desafortunadamente PE v11.33 parece no admitir pilas TCP / IP en Windows 7: - / "Las pilas no están disponibles en esta versión de Windows". No me he encontrado confirmación en la web, pero estoy bastante seguro de que he configurado correctamente los símbolos ...
fluxtendu

Mismo resultado con el nuevo PE 12: - /
fluxtendu

1
Hmm ... obtengo lo mismo en 7. Extraño, funciona bien en XP.
heavyd

1
La pestaña TCP / IP debe tener una columna "Servicio" que, por ejemplo, al mirar una instancia de svchost.exe, le indica qué servicio posee cada conexión (entre los servicios agrupados bajo el mismo PID). En este momento estoy usando PE 12.00, y en este momento no puedo verificar si la columna "Servicio" estaba allí en la versión anterior, pero vale la pena intentarlo.
TataBlack

Todo lo que tienes razón. Para mí, esta función solo funciona en XP. Sería bueno investigar qué ha cambiado en w7 a este respecto para que no funcione.
saulius2


2

Trate de usar tasklist /svcy netstato netstat -andesde la línea de comandos.

Esto le mostrará los programas que están usando svchost.exe y los puertos que están siendo. Usando los números de puerto, puede buscar el protocolo que comúnmente usa el número. Consulte la Lista de números de puerto TCP y UDP .


Sí, pero una sola instancia de svchost.exe a menudo aloja 10-20 servicios, y es difícil descubrir qué servicio tiene la culpa. Sin embargo, hay una manera de obtener esa información .
Peter Mortensen

2

TCPView es una herramienta gráfica que le mostrará el servicio, PID y la conexión TCP (tanto local como remota):

Imagen


Al igual que 'netstat -ano & tasklist / svc', esta herramienta distingue diferentes conexiones en un PID de svchost pero no muestra qué servicio está detrás de ellos ... Ya es mejor porque vincula PID y conexiones (y reconoce algunos puertos conocidos) Pero todavía no es lo que estoy buscando. (Además, carece de funciones de filtros y registros ...)
fluxtendu

Voto negativo ya que esto no resuelve el problema
Chris Dale

@ ChrisDale: No estoy de acuerdo. Esta respuesta muestra qué servicio se está conectando y, por lo tanto, complementa la respuesta aceptada.
harrymc

@Harrymc TCPView solo muestra svchost.exe escuchando o haciendo las conexiones. svchost no es el servicio, solo un contenedor para múltiples servicios. Si necesita saber qué servicio está haciendo las conexiones, solo es marginablemente más inteligente, ya que sabe que uno de muchos está haciendo la conexión. Bastante justo, complementa la respuesta, pero solo un poco. Tuve el mismo problema, y ​​TCPView no me lo solucionó :) Sin embargo, Sysinternals Process Explorer sí.
Chris Dale

1
@ChrisDale: Muestra el pid, de todo lo demás sigue.
harrymc

1

Use el administrador de tareas para ver las columnas PID para cada proceso en la lista de procesos. Luego, ejecute netstat -anopara ver las conexiones activas y el PID asociado (= id del proceso).


1

La utilidad CurrPorts de NirSoft hace todo lo que desea, incluido el filtrado y la lista de servicios de un proceso.

De hecho, el único problema es cómo elegir entre la enorme cantidad de columnas de información que potencialmente puede mostrar.

imagen


Es la mejor solución hasta ahora, pero no hace lo esencial que estoy buscando: la columna "Servicios de proceso" agrupa todos los servicios posibles ...
fluxtendu

1

Como se ha mencionado, encontrar el PID del proceso svchost svchost dado y / o utilizar 3 ª Parte aplicaciones como: Currports, ProcessExplorerle ayudará a identificar los servicios en el marco del proceso dado (svchost.exe o cualquier otra cosa). Además, Svchost Viewer o Svchost Analyzer también le mostrarán estrictamente la información de svchost.

También quería agregar: las versiones más nuevas del Administrador de tareas integrado de Windows al menos mostrarán información limitada sobre los servicios que se ejecutan en svchost (no es necesario instalar nada):

Primero, elija el proceso svchost en Procesos.
Haga clic con el botón derecho en el proceso svchost dado y seleccione "Ir a los servicios"
. Irá directamente a la pestaña de servicios y resaltará los servicios dados que se ejecutan en ese proceso svchost.

Otro método:
utilizar el indicador CMD del administrador:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
esta también es una forma rápida de obtener el PID de un servicio / svchost determinado en cuestión.

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.