Existe-t-il un moyen de déterminer quel service (dans svchost.exe) une connexion sortante?

12

Je refais ma configuration de pare-feu avec des politiques plus restrictives et je voudrais déterminer la provenance (et / ou la destination) de certaines connexions sortantes.

J'ai un problème car ils proviennent de svchost.exe et vont aux fournisseurs de livraison de contenu / application Web - ou similaire:

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

Est-il donc possible de savoir quel service effectue une connexion particulière? Ou quelle est votre recommandation concernant les règles appliquées à celles-ci?

(Pare-feu Comodo et Windows 7)

Mise à jour:

netstat -ano& tasklist /svcaidez-moi un peu mais ce sont de nombreux services dans un seul svchost.exe donc c'est toujours un problème. de plus, les noms de service renvoyés par "tasklist / svc" ne sont pas faciles à lire.

(Toutes les connexions sont HTTP (port 80) mais je ne pense pas que ce soit pertinent)

fluxtendu
la source

Réponses:

9

J'ai trouvé une méthode dans cette réponse de panne de serveur (sur les services et l'utilisation de la mémoire) que je pouvais utiliser pour analyser individuellement l'utilisation du réseau des services (avec n'importe quel outil réseau)

Peter Mortensen:

Divisez chaque service pour qu'il s'exécute dans son propre processus SVCHOST.EXE et le service consommant les cycles du processeur sera facilement visible dans le Gestionnaire des tâches ou l'Explorateur de processus (l'espace après "=" est requis):

SC Config Servicename Type= own

Faites-le dans une fenêtre de ligne de commande ou placez-le dans un script BAT. Les privilèges administratifs sont requis et un redémarrage de l'ordinateur est requis avant qu'il ne prenne effet.

L'état d'origine peut être restauré par:

SC Config Servicename Type= share
fluxtendu
la source
7

SysInternals Process Explorer peut le faire pour vous.

Ouvrez les propriétés de processus de l' svchost.exeinstance que vous essayez d'analyser. Clique sur le onglet TCP / IP . Double-cliquez sur la connexion que vous souhaitez découvrir pour afficher une trace de pile de la connexion. Vous devez pouvoir retracer la pile jusqu'à la DLL qui implémente le service. Voici un extrait du fichier d'aide sur le sujet des propriétés du processus :

TCP / IP:

Tous les points de terminaison TCP et UDP actifs appartenant au processus sont affichés sur cette page.

Sur Windows XP SP2 et supérieur, cette page comprend un bouton Pile qui ouvre une boîte de dialogue qui affiche la pile du thread qui a ouvert le point de terminaison sélectionné au moment de l'ouverture. Ceci est utile pour identifier la finalité des points de terminaison dans le processus système et les processus Svchost car la pile inclura le nom du pilote ou du service responsable du point de terminaison

Aussi sur la configuration des symboles

Configurer les symboles: sous Windows NT et versions ultérieures, si vous souhaitez que Process Explorer résout les adresses des adresses de début de thread dans l'onglet threads de la boîte de dialogue des propriétés du processus et la fenêtre de la pile de threads, puis configurez les symboles en téléchargeant d'abord le package Debugging Tools for Windows depuis le site Web de Microsoft site et l'installer dans son répertoire par défaut. Ouvrez la boîte de dialogue Configurer les symboles et spécifiez le chemin d'accès au fichier dbghelp.dll qui se trouve dans le répertoire des outils de débogage et demandez au moteur de symboles de télécharger les symboles à la demande de Microsoft vers un répertoire de votre disque en entrant une chaîne de serveur de symboles pour le chemin des symboles. Par exemple, pour que les symboles soient téléchargés dans le répertoire c: \ symboles, vous devez saisir cette chaîne:

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

Remarque: Vous devrez peut-être exécuter Process Explorer en tant qu'administrateur pour pouvoir voir la pile du thread.

lourd
la source
Très intéressant, mais malheureusement PE v11.33 ne semble pas supporter les piles TCP / IP sous Windows 7: - / "Piles non disponibles sur cette version de Windows". Je n'ai pas trouvé de confirmation sur le web mais je suis presque sûr d'avoir configuré correctement les symboles ...
fluxtendu
Même résultat avec le nouveau PE 12: - /
fluxtendu
1
Hmm .. J'obtiens la même chose sur 7. Étrange, cela fonctionne très bien sur XP.
lourd
1
L'onglet TCP / IP doit avoir une colonne "Service" qui, par exemple en regardant une instance de svchost.exe, vous indique quel service possède chaque connexion (parmi les services regroupés sous le même PID). En ce moment j'utilise PE 12.00, et pour le moment je ne peux pas vérifier si la colonne "Service" était là dans la version précédente, mais cela devrait valoir la peine d'être essayé.
TataBlack
Tout ce que vous avez raison. Pour moi, cette fonctionnalité fonctionne uniquement sous XP. Ce serait bien d'enquêter sur ce qui a changé dans w7 à cet égard afin que cela ne fonctionne pas.
saulius2
2

Essayez d'utiliser tasklist /svcet netstatounetstat -an partir de la ligne de commande.

Cela vous montrera les programmes qui utilisent svchost.exe et les ports utilisés. À l'aide des numéros de port, vous pourrez peut-être rechercher le protocole qui utilise généralement le numéro. Voir Liste des numéros de port TCP et UDP .

bugtussle
la source
Oui, mais une seule instance de svchost.exe héberge souvent 10 à 20 services, et il est difficile de savoir quel service est en cause. Il existe cependant un moyen d'obtenir ces informations .
Peter Mortensen
2

TCPView est un outil graphique qui vous montrera le service, le PID et la connexion TCP (locale et distante):

Image

harrymc
la source
Comme 'netstat -ano & tasklist / svc', cet outil distingue différentes connexions dans un PID svchost mais ne montre pas quel service est derrière eux ... C'est déjà mieux car il relie PID et les connexions (et reconnaît certains ports bien connus) mais ce n'est toujours pas ce que je recherche. (De plus il manque de filtres et de fonctionnalités de logs ...)
fluxtendu
Downvote car cela ne résout pas le problème
Chris Dale
@ChrisDale: Je ne suis pas d'accord. Cette réponse indique le service qui se connecte et complète ainsi la réponse acceptée.
harrymc
@Harrymc TCPView n'affiche que svchost.exe écoutant ou établissant les connexions. svchost n'est pas le service, seulement un conteneur pour plusieurs services. Si vous avez besoin de savoir quel service établit les connexions, vous ne pouvez être plus intelligent que si vous savez qu'une personne sur plusieurs établit la connexion. Assez juste, il complète la réponse, mais juste un peu. J'ai eu le même problème et TCPView ne l'a pas résolu pour moi :) Sysinternals Process Explorer l'a fait.
Chris Dale
1
@ChrisDale: Il montre le pid, de tout le reste suit.
harrymc
1

Utilisez le gestionnaire de tâches pour afficher les colonnes PID de chaque processus dans la liste des processus. Ensuite, exécutez netstat -anopour afficher les connexions actives et le PID associé (= identifiant de processus).

hurikhan77
la source
1

L'utilitaire NirSoft CurrPorts fait tout ce que vous voulez, y compris le filtrage et l' la liste des services d'un processus.

En fait, le seul problème est de savoir comment choisir parmi le nombre énorme de colonnes d'informations qu'il peut potentiellement afficher.

image

harrymc
la source
C'est la meilleure solution jusqu'à présent mais ne fait pas l'essentiel que je recherche: La colonne "Process Services" regroupe tous les services possibles ...
fluxtendu
1

Comme mentionné précédemment, trouver le PID svchost du processus svchost donné et / ou utiliser des applications 3ème partie comme: Currports, ProcessExplorervous aidera à identifier les services dans le cadre du processus donné (svchost.exe ou quoi que ce soit d' autre). En outre, Svchost Viewer ou Svchost Analyzer affichera également strictement les informations svchost.

Je voulais également ajouter: des versions plus récentes du gestionnaire de tâches Windows intégré vous montreront au moins quelques informations limitées sur les services exécutés sous svchost (pas besoin d'installer quoi que ce soit):

Tout d'abord, choisissez le processus svchost sous Processus.
Cliquez avec le bouton droit sur le processus svchost donné et choisissez "Aller aux services".
Il ira directement à l'onglet services et mettra en évidence les services donnés exécutés dans le cadre de ce processus svchost.

Une autre méthode:
Utilisation de l'invite CMD administrateur:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
C'est également un moyen rapide d'obtenir le PID du svchost / service donné en question.

bshea
la source