Gibt es eine Möglichkeit zu bestimmen, welcher Dienst (in svchost.exe) eine ausgehende Verbindung herstellt?

12

Ich ändere meine Firewall-Konfiguration mit restriktiveren Richtlinien und möchte die Herkunft (und / oder das Ziel) einiger ausgehender Verbindungen ermitteln.

Ich habe ein Problem, weil sie von svchost.exe stammen und zu Anbietern für die Bereitstellung von Webinhalten / -anwendungen gehen - oder ähnlichem:

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

Ist es also möglich zu wissen, welcher Dienst eine bestimmte Verbindung herstellt? Oder was empfehlen Sie zu den Regeln, die auf diese angewendet werden?

(Comodo Firewall und Windows 7)

Aktualisieren:

netstat -ano& tasklist /svcHilf mir ein bisschen, aber es gibt viele Dienste in einer svchost.exe, also ist es immer noch ein Problem. Außerdem sind die von "tasklist / svc" zurückgegebenen Dienstnamen nicht leicht lesbar.

(Alle Verbindungen sind HTTP (Port 80), aber ich denke nicht, dass es relevant ist)

fluxtendu
quelle

Antworten:

9

Ich habe in dieser Serverfehlerantwort eine Methode gefunden (Informationen zu Diensten und Speichernutzung), mit der ich die Netzwerknutzung von Diensten (mit jedem Netzwerktool) individuell analysieren kann.

Peter Mortensen:

Teilen Sie jeden Dienst so auf, dass er in einem eigenen SVCHOST.EXE-Prozess ausgeführt wird. Der Dienst, der die CPU-Zyklen beansprucht, wird im Task-Manager oder im Prozess-Explorer leicht sichtbar (das Leerzeichen nach "=" ist erforderlich):

SC Config Servicename Type= own

Tun Sie dies in einem Befehlszeilenfenster oder fügen Sie es in ein BAT-Skript ein. Administratorrechte sind erforderlich und ein Neustart des Computers ist erforderlich, bevor er wirksam wird.

Der ursprüngliche Zustand kann wiederhergestellt werden durch:

SC Config Servicename Type= share
fluxtendu
quelle
7

SysInternals Process Explorer kann dies für Sie tun.

Öffnen Sie die Prozesseigenschaften der svchost.exeInstanz, die Sie analysieren möchten. Klicken Sie auf die Registerkarte TCP / IP . Doppelklicken Sie auf die Verbindung, die Sie ermitteln möchten, um einen Stack-Trace der Verbindung aufzurufen. Sie sollten in der Lage sein, den Stack auf die DLL zurückzuführen, die den Service implementiert. Hier ist ein Auszug aus der Hilfedatei zum Thema Prozessmerkmale :

TCP / IP:

Alle aktiven TCP- und UDP-Endpunkte, deren Eigentümer der Prozess ist, werden auf dieser Seite angezeigt.

Unter Windows XP SP2 und höher enthält diese Seite eine Schaltfläche "Stapel", mit der ein Dialogfeld geöffnet wird, in dem der Stapel des Threads angezeigt wird, der den ausgewählten Endpunkt zum Zeitpunkt des Öffnens geöffnet hat. Dies ist nützlich, um den Zweck von Endpunkten im System- und im Svchost-Prozess zu ermitteln, da der Stack den Namen des Treibers oder Dienstes enthält, der für den Endpunkt verantwortlich ist

Auch zum Konfigurieren von Symbolen

Symbole konfigurieren: Wenn Process Explorer unter Windows NT und höher Adressen für Thread-Startadressen auf der Registerkarte "Threads" des Dialogfelds "Prozesseigenschaften" und des Fensters "Thread-Stapel" auflösen soll, konfigurieren Sie die Symbole, indem Sie zuerst das Paket "Debugging Tools für Windows" von der Microsoft-Website herunterladen Site und installieren Sie es in seinem Standardverzeichnis. Öffnen Sie das Dialogfeld "Symbole konfigurieren", und geben Sie den Pfad zur Datei "dbghelp.dll" im Verzeichnis "Debugging Tools" an. Laden Sie die Symbole bei Bedarf von Microsoft in ein Verzeichnis auf Ihrer Festplatte herunter, indem Sie eine Symbolserverzeichenfolge für den Symbolpfad eingeben. Wenn Sie beispielsweise Symbole in das Verzeichnis c: \ symbols herunterladen möchten, geben Sie folgende Zeichenfolge ein:

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

Hinweis: Möglicherweise müssen Sie Process Explorer als Administrator ausführen, um den Stapel des Threads anzeigen zu können.

heavyyd
quelle
Sehr interessant, aber leider scheint PE v11.33 TCP / IP-Stacks unter Windows 7 nicht zu unterstützen: - / "Stacks für diese Windows-Version nicht verfügbar". Ich habe keine Bestätigung im Internet gefunden, aber ich bin mir ziemlich sicher, dass ich Symbole richtig konfiguriert habe ...
fluxtendu
Gleiches Ergebnis mit dem neuen PE 12: - /
fluxtendu
1
Hmm .. Ich bekomme das gleiche auf 7. Seltsamerweise funktioniert es gut auf XP.
Heavyd
1
Die Registerkarte "TCP / IP" sollte eine Spalte "Dienst" enthalten, in der beispielsweise beim Anzeigen einer Instanz von "svchost.exe" angegeben wird, welcher Dienst die einzelnen Verbindungen besitzt (unter den Diensten, die unter derselben PID zusammengefasst sind). Im Moment verwende ich PE 12.00 und im Moment kann ich nicht überprüfen, ob die Spalte "Service" in der vorherigen Version vorhanden war, aber es sollte einen Versuch wert sein.
TataBlack
Alles, was Sie richtig sind. Bei mir funktioniert diese Funktion nur in XP. Es wäre schön zu untersuchen, was sich in dieser Hinsicht in w7 geändert hat, damit es nicht funktioniert.
saulius2
2

Ich weiß, dass dies möglicherweise veraltet ist, aber dennoch rangiert diese Seite bei der Suche nach "svchost connections" ganz oben, daher werde ich meine Eingabe hier wegwerfen. Es gibt ein Tool namens Svchost Process Analyzer, das möglicherweise hilft: http://www.neuber.com/free/svchost-analyzer/index.html

AKsik
quelle
2

Versuchen Sie es mit tasklist /svcund netstatoder netstat -anüber die Befehlszeile.

Dies zeigt Ihnen die Programme, die svchost.exe verwenden, und die Ports, die verwendet werden. Mithilfe der Portnummern können Sie möglicherweise das Protokoll nachschlagen, das die Nummer häufig verwendet. Siehe Liste der TCP- und UDP-Portnummern .

bugtussle
quelle
Ja, aber eine einzelne Instanz von svchost.exe hostet häufig 10 bis 20 Dienste, und es ist schwierig herauszufinden, welcher Dienst fehlerhaft ist. Es gibt jedoch eine Möglichkeit, diese Informationen abzurufen.
Peter Mortensen
2

TCPView ist ein grafisches Tool, mit dem Sie den Dienst, die PID und die TCP-Verbindung (sowohl lokal als auch remote) anzeigen können :

Bild

Harrymc
quelle
Wie 'netstat -ano & tasklist / svc' unterscheidet dieses Tool verschiedene Verbindungen in einer Svchost-PID, zeigt jedoch nicht an, welcher Dienst dahintersteckt. aber es ist immer noch nicht das, wonach ich suche. (Außerdem fehlt es an Filtern und Protokollfunktionen ...)
Fluxtendu
Ablehnung, da dies das Problem nicht löst
Chris Dale
@ ChrisDale: Ich bin nicht einverstanden. Diese Antwort zeigt, welcher Dienst eine Verbindung herstellt, und ergänzt somit die akzeptierte Antwort.
Harrymc
@Harrymc TCPView zeigt nur svchost.exe an, die die Verbindungen überwacht oder herstellt. svchost ist nicht der Dienst, sondern nur ein Container für mehrere Dienste. Wenn Sie wissen müssen, welcher Dienst die Verbindungen herstellt, sind Sie nur marginal intelligenter, da Sie wissen, dass einer von vielen die Verbindung herstellt. Fair genug, es ergänzt die Antwort, aber nur ein bisschen. Ich hatte das gleiche Problem, und TCPView hat es mir nicht klargemacht :) Sysinternals Process Explorer hat es jedoch getan.
Chris Dale
1
@ ChrisDale: Es zeigt die PID, von allem anderen folgt.
Harrymc
1

Verwenden Sie den Task-Manager, um die PID-Spalten für jeden Prozess in der Prozessliste anzuzeigen. Führen Sie dann aus netstat -ano, um die aktiven Verbindungen und die zugehörige PID (= Prozess-ID) anzuzeigen.

hurikhan77
quelle
1

Das NirSoft-Dienstprogramm CurrPorts erledigt alles, was Sie wollen, einschließlich Filtern und der Liste der Dienste eines Prozesses.

Tatsächlich besteht das einzige Problem darin, wie unter der enormen Anzahl von Informationsspalten, die möglicherweise angezeigt werden können, ausgewählt werden soll.

Bild

Harrymc
quelle
Es ist die beste Lösung, tut aber nicht das Wesentliche,
wonach
1

Wie bereits erwähnt, finden die svchost PID gegebener svchost Prozess und / oder 3rd - Party - Apps nutzen , wie: Currports, ProcessExplorerhelfen Ihnen Dienstleistungen im Rahmen des gegebenen Prozesses (svchost.exe oder irgendetwas anderes) zu identifizieren. Auch Svchost - Viewer oder Svchost Analyzer werden Sie streng zeigen svchost Info als gut.

Ich wollte auch hinzufügen: In neueren Versionen des integrierten Windows Task-Managers werden Ihnen zumindest einige eingeschränkte Informationen zu Diensten angezeigt, die unter svchost ausgeführt werden (es ist keine Installation erforderlich):

Wählen Sie zuerst den Prozess svchost unter Prozesse aus.
Klicken Sie mit der rechten Maustaste auf den angegebenen Svchost-Prozess und wählen Sie "Gehe zu Service (s)".
Sie gelangen direkt zur Registerkarte " Dienste" und markieren die Dienste, die unter diesem Svchost-Prozess ausgeführt werden.

Eine andere Methode:
Verwenden der Administrator-CMD-Eingabeaufforderung:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
Dies ist auch eine schnelle Methode, um die PID des betreffenden svchost / service zu ermitteln.

bshea
quelle