C'è un modo per determinare quale servizio (in svchost.exe) fa una connessione in uscita?


12

Sto ripristinando la mia configurazione del firewall con criteri più restrittivi e vorrei determinare la provenienza (e / o la destinazione) di alcune connessioni in uscita.

Ho un problema perché provengono da svchost.exe e vanno ai fornitori di servizi di consegna di contenuti / applicazioni web o simili:

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

Quindi è possibile sapere quale servizio effettua una particolare connessione? O qual è la tua raccomandazione sulle regole applicate a queste?

(Comodo Firewall e Windows 7)

Aggiornare:

netstat -anoe tasklist /svcaiutami un po ', ma ci sono molti servizi in uno svchost.exe, quindi è ancora un problema. inoltre i nomi dei servizi restituiti da "tasklist / svc" non sono facilmente leggibili.

(Tutte le connessioni sono HTTP (porta 80) ma non credo sia rilevante)

Risposte:


9

Ho trovato un metodo in questa risposta di errore del server (sui servizi e sull'utilizzo della memoria) che potrei usare per analizzare individualmente l'utilizzo della rete dei servizi (con qualsiasi strumento di rete)

Peter Mortensen:

Dividi ogni servizio per eseguirlo nel proprio processo SVCHOST.EXE e il servizio che consuma i cicli della CPU sarà facilmente visibile in Task Manager o Process Explorer (lo spazio dopo "=" è richiesto):

SC Config Servicename Type= own

Fallo in una finestra della riga di comando o inseriscilo in uno script BAT. Sono richiesti privilegi di amministratore ed è necessario riavviare il computer prima che abbia effetto.

Lo stato originale può essere ripristinato da:

SC Config Servicename Type= share

7

SysInternals Process Explorer può farlo per te.

Aprire le proprietà del processo svchost.exedell'istanza che si sta tentando di analizzare. Fare clic sulla scheda TCP / IP . Fare doppio clic sulla connessione che si desidera scoprire per visualizzare una traccia dello stack della connessione. Dovresti essere in grado di risalire allo stack nella DLL che implementa il servizio. Ecco un estratto dal file della guida sull'argomento di Process Properites :

TCP / IP:

Tutti gli endpoint TCP e UDP attivi di proprietà del processo sono mostrati in questa pagina.

Su Windows XP SP2 e versioni successive questa pagina include un pulsante Stack che apre una finestra di dialogo che mostra lo stack del thread che ha aperto l'endpoint selezionato al momento dell'apertura. Ciò è utile per identificare lo scopo degli endpoint nel processo di sistema e nei processi Svchost perché lo stack includerà il nome del driver o del servizio responsabile dell'endpoint

Anche sulla configurazione dei simboli

Configura simboli: su Windows NT e versioni successive, se si desidera che Process Explorer risolva gli indirizzi per gli indirizzi di inizio thread nella scheda discussioni della finestra di dialogo delle proprietà del processo e nella finestra dello stack dei thread, quindi configurare i simboli scaricando prima il pacchetto Strumenti di debug per Windows dal Web di Microsoft sito e installarlo nella sua directory predefinita. Aprire la finestra di dialogo Configura simboli e specificare il percorso del dbghelp.dll che si trova nella directory Strumenti di debug e fare in modo che il motore dei simboli scarichi i simboli su richiesta da Microsoft in una directory sul disco inserendo una stringa del server dei simboli per il percorso del simbolo. Ad esempio, per scaricare i simboli nella directory c: \ simboli, immettere questa stringa:

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

Nota: potrebbe essere necessario eseguire Process Explorer come amministratore per poter vedere lo stack del thread.


Molto interessante, ma sfortunatamente PE v11.33 sembra non supportare gli stack TCP / IP su Windows 7: - / "Stack non disponibili su questa versione di Windows". Non ho trovato la conferma sul web ma sono abbastanza sicuro di aver configurato correttamente i Simboli ...
fluxtendu

Stesso risultato con il nuovo PE 12: - /
fluxtendu il

1
Hmm .. ottengo lo stesso su 7. Stranamente funziona bene su XP.
pesante il

1
La scheda TCP / IP dovrebbe avere una colonna "Servizio" che, ad esempio guardando un'istanza di svchost.exe, indica quale servizio possiede ciascuna connessione (tra i servizi raggruppati sotto lo stesso PID). In questo momento sto usando PE 12.00, e in questo momento non riesco a verificare se la colonna "Servizio" era presente nella versione precedente, ma dovrebbe valere la pena provare.
TataBlack,

Hai ragione. Per me questa funzione funziona solo in XP. Sarebbe bello indagare su cosa è cambiato in w7 a questo proposito, quindi non funziona.
saulius2


2

Prova a usare tasklist /svce netstato netstat -andalla riga di comando.

Questo ti mostrerà i programmi che utilizzano svchost.exe e le porte. Utilizzando i numeri di porta, potresti essere in grado di cercare il protocollo che utilizza comunemente il numero. Vedere Elenco dei numeri di porta TCP e UDP .


Sì, ma una singola istanza di svchost.exe ospita spesso 10-20 servizi ed è difficile scoprire quale servizio sia in errore. Tuttavia, esiste un modo per ottenere tali informazioni .
Peter Mortensen,

2

TCPView è uno strumento grafico che ti mostrerà il servizio, il PID e la connessione TCP (sia locale che remota):

Immagine


Come 'netstat -ano & tasklist / svc' questo strumento distingue diverse connessioni in un PID svchost ma non mostra quale servizio è dietro di loro ... È già meglio perché collega PID e connessioni (e riconosce alcune porte note) ma non è ancora quello che sto cercando. (Inoltre manca di funzionalità di filtri e registri ...)
fluxtendu

Il downvote in quanto ciò non risolve il problema
Chris Dale,

@ChrisDale: non sono d'accordo. Questa risposta mostra quale servizio si sta connettendo e completa così la risposta accettata.
harrymc,

@Harrymc TCPView mostra solo svchost.exe in ascolto o esecuzione delle connessioni. svchost non è il servizio, solo un contenitore per più servizi. Se hai bisogno di sapere quale servizio sta effettuando le connessioni, sei solo marginalmente più intelligente poiché sai che uno su molti sta effettuando la connessione. Abbastanza giusto, integra la risposta, ma solo un po '. Ho avuto lo stesso problema e TCPView non mi ha risolto il problema :) Sysinternals Process Explorer lo ha fatto.
Chris Dale,

1
@ChrisDale: mostra il pid, da tutto ciò che segue.
harrymc,

1

Utilizzare il task manager per visualizzare le colonne PID per ciascun processo nell'elenco dei processi. Quindi eseguire netstat -anoper visualizzare le connessioni attive e il PID associato (= ID processo).


1

L'utility NirSoft CurrPorts fa tutto quello che vuoi, incluso il filtraggio e la lista dei servizi di un processo.

In realtà, l'unico problema è come scegliere tra l'enorme numero di colonne di informazioni che può potenzialmente visualizzare.

Immagine


Finora è la soluzione migliore ma non fa la cosa essenziale che sto cercando: la colonna "Servizi di processo" raggruppa tutti i servizi possibili ...
fluxtendu

1

Come accennato, trovare il PID di svchost determinato processo svchost e / o utilizzare applicazioni 3rd party come: Currports, ProcessExplorervi aiuterà a identificare i servizi nell'ambito del processo di data (svchost.exe o qualsiasi altra cosa). Inoltre, Svchost Viewer o Svchost Analyzer mostreranno rigorosamente anche le informazioni di svchost.

Volevo anche aggiungere: Le versioni più recenti del Task Manager di Windows integrato ti mostreranno almeno alcune informazioni limitate sui servizi in esecuzione sotto svchost (non è necessario installare nulla):

Innanzitutto, seleziona il processo svchost in Processi.
Fai clic con il pulsante destro del mouse sul processo svchost specificato e seleziona "Vai a servizi"
per accedere direttamente alla scheda servizi ed evidenziare determinati servizi in esecuzione nel processo svchost.

Un altro metodo:
Utilizzo del prompt CMD dell'amministratore:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
Questo è anche un modo rapido per ottenere il PID del dato svchost / servizio in questione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.