Чи є спосіб визначити, яка служба (у svchost.exe) виконує вихідне з'єднання?


13

Я переробляю конфігурацію брандмауера більш обмежувальною політикою, і я хотів би визначити походження (та / або призначення) деяких вихідних з'єднань.

У мене є проблема, оскільки вони надходять із svchost.exe і переходять до постачальників веб-контенту / доставки програм - або подібних:

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

Тож чи можна дізнатися, з якою послугою відбувається певне з'єднання? Або яка ваша рекомендація щодо правил, застосованих до цих?

(Брандмауер Comodo та Windows 7)

Оновлення:

netstat -ano& tasklist /svcдопоможіть мені трохи, але це багато сервісів в одному svchost.exe, тому це все ще проблема. крім того, імена служб, повернені "tasklist / svc", не легко читаються.

(Усі з'єднання - HTTP (порт 80), але я не думаю, що це доречно)

Відповіді:


9

У цій відповіді на помилку сервера (про сервіси та використання пам'яті) я знайшов метод, який міг би використовувати для індивідуального аналізу використання мережевих служб (з будь-яким мережевим інструментом)

Пітер Мортенсен:

Розділіть кожну службу для запуску у своєму власному процесі SVCHOST.EXE, і служба, що споживає цикли процесора, буде легко видно в диспетчері завдань або в Провіднику процесів (пробіл після "=" обов'язковий):

SC Config Servicename Type= own

Зробіть це у вікні командного рядка або введіть його у сценарій BAT. Потрібні адміністративні привілеї та потрібен перезапуск комп’ютера, перш ніж він набуде чинності.

Початковий стан можна відновити:

SC Config Servicename Type= share

7

Провідник SysInternals Process може це зробити за вас.

Відкрийте властивості процесу svchost.exeекземпляра, який ви намагаєтеся проаналізувати. Перейдіть на вкладку TCP / IP . Двічі клацніть на з'єднанні, яке ви хочете виявити, щоб відобразити слід стека з'єднання. Ви повинні мати можливість простежити стек назад до DLL, що реалізує послугу. Ось уривок із довідкового файлу на тему Process Properites :

TCP / IP:

На цій сторінці показані будь-які активні кінцеві точки TCP та UDP, що належать процесу.

У Windows XP SP2 і вище ця сторінка містить кнопку Stack, яка відкриває діалогове вікно, що показує стек потоку, який відкрив вибрану кінцеву точку під час відкриття. Це корисно для визначення мети кінцевих точок у процесі System та Svchost, оскільки стек буде містити ім'я драйвера або служби, відповідальної за кінцеву точку

Також на налаштування символів

Налаштування символів: у Windows NT та новіших версіях, якщо ви хочете, щоб Провідник процесів вирішив адреси стартових адрес потоку на вкладці потоків діалогового вікна властивостей процесу та у вікні стека ниток, а потім налаштуйте символи, спочатку завантаживши пакет інструментів налагодження для Windows із веб-сайту Microsoft сайт та встановлення його в його каталог за замовчуванням. Відкрийте діалогове вікно «Налаштувати символи» та вкажіть шлях до dbghelp.dll, який знаходиться в каталозі «Інструменти для налагодження», і попросіть механізм завантаження символів на вимогу від Microsoft до каталогу на диску, ввівши рядок сервера символів для шляху символу. Наприклад, щоб завантажити символи до каталогу c: \ символи, ви введете цей рядок:

srv c: \ символи http://msdl.microsoft.com/download/symbols

Примітка. Можливо, вам потрібно буде запустити Process Explorer як адміністратор, щоб мати можливість бачити стек потоку.


Дуже цікаво, але, на жаль, PE v11.33, схоже, не підтримує стеки TCP / IP в Windows 7: - / "Стеки недоступні в цій версії Windows". Я не знайшов підтвердження в Інтернеті, але я майже впевнений, що я правильно налаштував символи ...
fluxtendu

Той самий результат з новим PE 12: - /
fluxtendu

1
Хм .. Я отримую те саме на 7. Дивно, що це добре працює на XP.
важкий

1
На вкладці TCP / IP повинен бути стовпчик "Сервіс", який, наприклад, переглядаючи примірник svchost.exe, повідомляє, якій службі належить кожне з'єднання (серед служб, згрупованих під тим самим PID). Зараз я використовую PE 12.00, і в цей момент я не можу перевірити, чи був у попередній версії стовпець "Сервіс", але варто спробувати.
TataBlack

Все ви праві. Для мене ця функція працює лише в XP. Було б непогано дослідити, що змінилося в w7 з цього приводу, щоб воно не працювало.
saulius2

3

Я знаю, що це може бути застарілим, але все ж ця сторінка займає високі позиції в пошуку "svchost-з'єднань", тому я підкину тут свій вклад. Є інструмент під назвою Svchost Process Analyzer, він може допомогти: https://www.neuber.com/free/svchost-analyzer/index.html


2

TCPView - це графічний інструмент, який покаже вам послуги, PID та TCP-з'єднання (локальні та віддалені):

Знімок екрана TCPView


Як і "netstat -ano & tasklist / svc", цей інструмент відрізняє різні з'єднання в одному PID svchost, але не показує, яка служба стоїть за ними ... Це вже краще, оскільки він пов'язує PID та з'єднання (і розпізнає деякі добре відомі порти) але все одно це не те, що я шукаю. (Більше того, у ньому відсутні фільтри та функції журналів ...)
fluxtendu

Зниження, оскільки це не вирішує проблему
Кріс Дейл

@ChrisDale: Я не згоден. Ця відповідь показує, яка послуга підключається, і так доповнює прийняту відповідь.
harrymc

@Harrymc TCPView показує лише прослуховування або встановлення з'єднань svchost.exe. svchost - це не сервіс, а лише контейнер для декількох послуг. Якщо вам потрібно знати, яка служба здійснює з'єднання, ви розумніший лише розумнішими, оскільки знаєте, що один з багатьох здійснює з'єднання. Досить справедливо, це доповнює відповідь, але просто тад. У мене була така ж проблема, і TCPView не виявив це для мене :) Sysinternals Process Explorer зробив, хоча.
Кріс Дейл

1
@ChrisDale: Це дійсно показує pid, з усього іншого випливає.
harrymc

2

Спробуйте використовувати tasklist /svcі netstatчи netstat -anз командного рядка.

Це покаже вам програми, які використовують svchost.exe та порти, що знаходяться. Використовуючи номери портів, ви можете знайти протокол, який зазвичай використовує це число. Див. Список номерів портів TCP та UDP .


Так, але в одному екземплярі svchost.exe часто розміщено 10-20 служб, і важко з’ясувати, яка служба винна. Однак є можливість отримати цю інформацію .
Пітер Мортенсен

1

Використовуйте диспетчер завдань для перегляду стовпців PID для кожного процесу у списку процесів. Потім запустіть, netstat -anoщоб переглянути активні з'єднання та пов'язаний з ним PID (= ідентифікатор процесу).


1

Як уже згадувалося, знайти SVCHOST PID з даного процесу SVCHOST і / або використовувати 3 програми сторонніх як: Currports, ProcessExplorerдопоможе визначити послуги в рамках даного процесу (svchost.exe або що - небудь ще). Також програма перегляду Svchost або аналізатора Svchost суворо покаже інформацію про svchost.

Я також хотів додати: Новіші версії вбудованого диспетчера завдань Windows принаймні показуватимуть вам показ обмеженої інформації про послуги, що працюють під svchost (не потрібно нічого встановлювати):

Спочатку виберіть процес svchost у розділі Процеси.
Клацніть правою кнопкою миші заданий процес svchost і виберіть "Перейти до сервісу (ив)"
Він перейде безпосередньо до вкладки "Сервіс" та виділить дані сервіси, що працюють під цим процесом svchost.

Інший метод:
Використання підказки адміністратора CMD:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
Це також швидкий спосіб отримати PID заданої svchost / послуги.


1

Утиліта NirSoft CurrPorts виконує все, що завгодно, включаючи фільтрацію та надання списку послуг процесу.

Насправді, єдина проблема з цим полягає в тому, як вибрати серед величезної кількості інформаційних стовпців, які він потенційно може відображати.

Знімок екрана утиліти CurrPorts


Це найкраще рішення поки що, але не робить найважливішого, що я шукаю: У стовпці "Процесорні послуги"
групуються
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.