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

20324
fluxtendu

Ich stelle meine Firewall-Konfiguration mit restriktiveren Richtlinien wieder her 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 von Webinhalten / Anwendungsbereitstellung 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 

Kann man also wissen, welcher Dienst eine bestimmte Verbindung durchführt? Oder was empfehlen Sie bezüglich der Regeln, die für diese gelten?

(Comodo Firewall & Windows 7)

Aktualisieren:

netstat -ano& tasklist /svchelfen Sie mir ein wenig, 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)

12

8 Antworten auf die Frage

9
fluxtendu

Ich habe in dieser Antwort zu Serverfehlern eine Methode gefunden (Informationen zu Diensten und zur Speichernutzung), mit der ich die Netzwerknutzung der Dienste (mit einem beliebigen Netzwerktool) einzeln analysieren kann.

Peter Mortensen:

Trennen Sie jeden Dienst auf, um ihn in seinem eigenen SVCHOST.EXE-Prozess auszuführen, und der Dienst, der die CPU-Zyklen beansprucht, ist im Task-Manager oder im Prozess-Explorer leicht sichtbar (der Speicherplatz 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 der Computer muss neu gestartet werden, bevor er wirksam wird.

Der ursprüngliche Zustand kann wiederhergestellt werden durch:

SC Config Servicename Type= share 
7
heavyd

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 entdecken möchten, um eine Stack-Aufzeichnung der Verbindung aufzurufen. Sie sollten in der Lage sein, den Stapel zu der DLL zurückzuverfolgen, die den Dienst implementiert. Hier ein Auszug aus der Hilfedatei zum Thema Prozesseigenschaften :

TCP / IP:

Auf dieser Seite werden alle aktiven TCP- und UDP-Endpunkte angezeigt, deren Eigner der Prozess ist.

Unter Windows XP SP2 und höher enthält diese Seite eine Stapelschaltfläche, 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 Systemprozess und im Svchost-Prozess zu ermitteln, da der Stack den Namen des Treibers oder Diensts enthält, der für den Endpunkt verantwortlich ist

Auch auf Konfigurieren Symbole

Symbole konfigurieren: Wenn unter Windows NT und höher Adressen für Thread-Startadressen auf der Registerkarte "Threads" des Prozesseigenschaften-Dialogfelds und des Thread-Stack-Fensters aufgelöst werden sollen, konfigurieren Sie die Symbole, indem Sie zunächst das Debugging-Tools für Windows-Paket aus dem Web von Microsoft herunterladen und installieren Sie es in seinem Standardverzeichnis. Öffnen Sie das Dialogfeld "Symbole konfigurieren", geben Sie den Pfad zur Datei "dbghelp.dll" im Verzeichnis "Debugging Tools" an und lassen Sie die Symbol-Engine bei Bedarf Symbole von Microsoft in ein Verzeichnis auf Ihrer Festplatte herunterladen, indem Sie eine Symbolserverzeichenfolge für den Symbolpfad eingeben. Wenn Sie zum Beispiel Symbole in das Verzeichnis c: \ symbols herunterladen möchten, geben Sie diese 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 Stack des Threads sehen zu können.

Sehr interessant, aber leider unterstützt PE v11.33 keine TCP / IP-Stacks unter Windows 7: - / "Stacks nicht verfügbar in dieser Windows-Version". Ich habe im Web keine Bestätigung gefunden, aber ich bin mir ziemlich sicher, dass ich die Symbole richtig konfiguriert habe ... fluxtendu vor 14 Jahren 0
Gleiches Ergebnis mit dem neuen PE 12: - / fluxtendu vor 14 Jahren 0
Hmm.. I get the same on 7. Strange it works fine on XP. heavyd vor 14 Jahren 1
Die Registerkarte "TCP / IP" sollte eine Spalte "Service" enthalten, in der Sie beispielsweise beim Betrachten einer Instanz von svchost.exe angeben können, zu welchem ​​Dienst die einzelnen Verbindungen gehören (unter den Diensten, die unter derselben PID zusammengefasst sind). Im Moment verwende ich PE 12.00 und kann derzeit nicht überprüfen, ob die Spalte "Service" in der vorherigen Version vorhanden war, aber es sollte einen Versuch wert sein. TataBlack vor 14 Jahren 1
Sie haben alles richtig. Für mich funktioniert diese Funktion nur in XP. Es wäre schön zu untersuchen, was sich in w7 in dieser Hinsicht geändert hat, damit es nicht funktioniert. saulius2 vor 9 Jahren 0
2
bugtussle

Versuchen Sie es mit tasklist /svcund netstatoder netstat -anvon der Kommandozeile aus.

Dies zeigt Ihnen die Programme, die svchost.exe verwenden, und die Ports, die verwendet werden. Mit Hilfe der Portnummern können Sie möglicherweise nach dem Protokoll suchen, das die Nummer üblicherweise verwendet. Siehe Liste der TCP- und UDP-Portnummern .

Ja, aber eine einzige Instanz von svchost.exe enthält oft 10-20 Dienste, und es ist schwierig herauszufinden, welcher Dienst fehlerhaft ist. Es gibt jedoch eine Möglichkeit, diese Informationen zu erhalten (https://serverfault.com/questions/12278/how-to-find-memory-usage-of-individual-windows-services/21452#21452). Peter Mortensen vor 5 Jahren 0
2
harrymc

TCPView ist ein grafisches Tool, das Ihnen die Dienst-, PID- und TCP-Verbindung (sowohl lokal als auch remote) zeigt:

Image

Wie "netstat -ano & tasklist / svc" unterscheidet dieses Tool verschiedene Verbindungen in einer svchost-PID, zeigt jedoch nicht an, welcher Dienst dahinter steht ... Es ist bereits besser, da es PID und Verbindungen verbindet (und einige bekannte Ports erkennt). aber es ist immer noch nicht das, wonach ich suche. (Außerdem fehlen Filter und Protokolle ...) fluxtendu vor 14 Jahren 0
Downvote, da dies das Problem nicht löst Chris Dale vor 8 Jahren 0
@ ChrisDale: Ich stimme nicht zu. Diese Antwort zeigt, welcher Dienst eine Verbindung herstellt und ergänzt somit die akzeptierte Antwort. harrymc vor 8 Jahren 0
@Harrymc TCPView zeigt nur svchost.exe an, das die Verbindungen abhört oder herstellt. svchost ist nicht der Dienst, sondern nur ein Container für mehrere Dienste. Wenn Sie wissen möchten, welcher Dienst die Verbindungen herstellt, sind Sie nur klüger, da Sie wissen, dass einer von vielen die Verbindung herstellt. Fairerweise ergänzt es die Antwort, aber nur ein bisschen. Ich hatte das gleiche Problem, und TCPView hat es für mich nicht aufgefangen :) Sysinternals Process Explorer hat es jedoch getan. Chris Dale vor 8 Jahren 0
@ChrisDale: Es zeigt die PID, von allem anderen folgt. harrymc vor 8 Jahren 1
Was ist der Punkt des Bildes? Es ist zu klein, um von Nutzen zu sein. bshea vor 7 Jahren 0
@bshea: Das Originalbild kann über den Link gefunden werden. harrymc vor 7 Jahren 0
2
AKsik

Ich weiß, dass dies möglicherweise veraltet ist, aber diese Seite hat immer noch einen hohen Stellenwert bei der Suche nach "svchost-Verbindungen", daher werde ich meine Eingaben hier werfen. Es gibt ein Tool namens Svchost Process Analyzer, das möglicherweise hilfreich ist: http://www.neuber.com/free/svchost-analyzer/index.html

1
hurikhan77

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

1
harrymc

Das NirSoft-Dienstprogramm CurrPorts erledigt alles, was Sie möchten, einschließlich der Filterung und Angabe der Liste der Dienste eines Prozesses.

Tatsächlich besteht das einzige Problem darin, wie man unter der enormen Anzahl von Informationsspalten auswählen kann, die möglicherweise angezeigt werden können.

Bild

Es ist bisher die beste Lösung, tut aber nicht das Wesentliche, nach dem ich suche: In der Spalte "Prozessdienste" werden alle möglichen Dienste zusammengefasst. fluxtendu vor 14 Jahren 0
1
bshea

As mentioned, find the svchost PID of given svchost process and/or use 3rd party apps like: Currports, ProcessExplorer will help you identify services under the given process (svchost.exe or anything else). Also, Svchost Viewer or Svchost Analyzer will strictly show you svchost info as well.

I also wanted to add: Newer versions of the builtin Windows Task Manager will at least show show you some limited information on services running under svchost (no need to install anything) :

First, pick the svchost process under Processes.
Right-click given svchost process and pick "Go to Service(s)"
It will go directly to services tab and highlight given services running under that svchost process.

Another method:
Using administrator CMD prompt:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
This is also a quick way to get the PID of given svchost/service in question.