Есть ли способ определить, какая служба (в svchost.exe) выполняет исходящее соединение?
20238
fluxtendu
Я изменяю конфигурацию своего брандмауэра с помощью более строгих политик и хотел бы определить происхождение (и / или назначение) некоторых исходящих соединений.
У меня есть проблема, потому что они приходят из 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 Firewall & Windows 7)
Обновить:
netstat -anoИ tasklist /svcпомогите мне немного, но в одном файле svchost.exe много служб, так что это все еще проблема. Более того, имена служб, возвращаемые "tasklist / svc", не легко читаются.
(Все соединения HTTP (порт 80), но я не думаю, что это актуально)
В этом ответе «Ошибка сервера» я нашел метод (об услугах и использовании памяти), который я мог бы использовать для индивидуального анализа использования услуг в сети (с помощью любого сетевого инструмента).
Питер Мортенсен:
Разделите каждую службу для запуска в своем собственном процессе SVCHOST.EXE, и служба, потребляющая циклы ЦП, будет легко видна в диспетчере задач или в проводнике процессов (требуется пробел после "="):
SC Config Servicename Type= own
Сделайте это в окне командной строки или поместите в скрипт BAT. Требуются права администратора и перезагрузка компьютера, прежде чем он вступит в силу.
Откройте свойства процесса svchost.exeэкземпляра, который вы пытаетесь проанализировать. Нажмите на вкладку TCP / IP . Дважды щелкните соединение, которое вы хотите обнаружить, чтобы вызвать трассировку стека соединения. Вы должны быть в состоянии проследить стек до библиотеки DLL, которая реализует службу. Вот выдержка из файла справки по теме « Свойства процесса» :
TCP / IP:
Любые активные конечные точки TCP и UDP, принадлежащие процессу, показаны на этой странице.
В Windows XP с пакетом обновления 2 (SP2) и выше эта страница содержит кнопку «Стек», которая открывает диалоговое окно, в котором отображается стек потока, который открыл выбранную конечную точку во время открытия. Это полезно для определения назначения конечных точек в системном процессе и процессах Svchost, поскольку в стеке будет указано имя драйвера или службы, которая отвечает за конечную точку
Также о настройке символов
Настройте символы: в Windows NT и более поздних версиях, если вы хотите, чтобы Process Explorer разрешал адреса для начальных адресов потоков на вкладке потоков в диалоговом окне свойств процесса и в окне стека потоков, а затем настраивал символы, сначала загрузив пакет средств отладки для Windows из веб-сайта Microsoft. сайт и установить его в каталог по умолчанию. Откройте диалоговое окно «Настроить символы» и укажите путь к файлу dbghelp.dll, который находится в каталоге «Инструменты отладки», и заставьте механизм символов загружать символы по требованию из Microsoft в каталог на диске, введя строку сервера символов для пути символа. Например, чтобы загрузить символы в каталог c: \ symbols, вы должны ввести следующую строку:
Примечание. Для просмотра стека потока может потребоваться запустить Process Explorer от имени администратора.
Очень интересно, но, к сожалению, PE v11.33, похоже, не поддерживает стеки TCP / IP в Windows 7: - / "Стеки недоступны в этой версии Windows". Я не нашел подтверждения в Интернете, но уверен, что правильно настроил символы ...
fluxtendu 14 лет назад
0
Тот же результат с новым PE 12: - /
fluxtendu 14 лет назад
0
Хм .. У меня такое же на 7. Странно, на ХР работает нормально.
heavyd 14 лет назад
1
На вкладке TCP / IP должен быть столбец «Служба», в котором, например, при просмотре экземпляра svchost.exe указывается, какой службе принадлежит каждое соединение (среди служб, сгруппированных по одному и тому же PID). Прямо сейчас я использую PE 12.00, и в данный момент я не могу проверить, был ли столбец «Сервис» в предыдущей версии, но стоит попробовать.
TataBlack 14 лет назад
1
Все, что ты прав. Для меня эта функция работает только в XP. Было бы неплохо выяснить, что изменилось в w7 в этом отношении, чтобы он не работал.
saulius2 9 лет назад
0
2
bugtussle
Попробуйте использовать tasklist /svcи netstatили netstat -anиз командной строки.
Это покажет вам программы, которые используют svchost.exe и порты. Используя номера портов, вы сможете найти протокол, который обычно использует этот номер. См. Список номеров портов TCP и UDP .
Да, но один экземпляр svchost.exe часто содержит 10-20 сервисов, и трудно определить, какая из сервисов виновата. Однако есть [способ получить эту информацию] (https://serverfault.com/questions/12278/how-to-find-memory-usage-of-individual-windows-services/21452#21452).
Peter Mortensen 6 лет назад
0
2
harrymc
TCPView - это графический инструмент, который покажет вам сервис, PID и TCP-соединение (локальное и удаленное):
Как и 'netstat -ano & tasklist / svc', этот инструмент различает разные соединения в одном PID svchost, но не показывает, какая служба стоит за ними ... Это уже лучше, потому что он связывает PID и соединения (и распознает некоторые хорошо известные порты) но это все еще не то, что я ищу. (Более того, в нем отсутствуют фильтры и функции журналов ...)
fluxtendu 14 лет назад
0
Downvote как это не решает проблему
Chris Dale 9 лет назад
0
@ChrisDale: я не согласен. Этот ответ показывает, какая служба подключается, и поэтому дополняет принятый ответ.
harrymc 9 лет назад
0
@Harrymc TCPView показывает только svchost.exe прослушивания или подключения. svchost - это не служба, а контейнер для нескольких служб. Если вам нужно знать, какой сервис устанавливает соединения, вы только умнее, если знаете, что один из многих устанавливает соединение. Справедливо, это дополняет ответ, но немного. У меня была та же самая проблема, и TCPView не сделал это для меня :) Хотя Sysinternals Process Explorer сделал это.
Chris Dale 9 лет назад
0
@ChrisDale: он показывает pid, из всего остального следует.
harrymc 9 лет назад
1
Какой смысл изображения? Это слишком мало, чтобы быть полезным.
bshea 8 лет назад
0
@bshea: Исходное изображение можно найти по ссылке.
harrymc 8 лет назад
0
2
AKsik
Я знаю, что это может быть устаревшим, но все же эта страница занимает высокое место в поиске "svchost соединений", поэтому я оставлю здесь свой вклад. Существует инструмент под названием Svchost Process Analyzer, он может помочь: http://www.neuber.com/free/svchost-analyzer/index.html
1
hurikhan77
Используйте диспетчер задач для просмотра столбцов PID для каждого процесса в списке процессов. Затем запустите netstat -anoдля просмотра активных соединений и связанных с ними PID (= идентификатор процесса).
1
harrymc
Утилита NirSoft CurrPorts делает все, что вы хотите, включая фильтрацию и предоставление списка служб процесса.
Фактически, единственная проблема заключается в том, как выбрать среди огромного количества информационных столбцов, которые он потенциально может отображать.
Пока это лучшее решение, но оно не выполняет того, что мне нужно: столбец «Службы процессов» группирует все возможные службы ...
fluxtendu 14 лет назад
0
1
bshea
Как уже упоминалось, найти SVCHOST PID из данного процесса SVCHOST и / или использовать 3 приложения сторонних как: Currports, ProcessExplorerпоможет определить услуги в рамках данного процесса (svchost.exe или что - нибудь еще). Кроме того, Svchost Viewer или Svchost Analyzer строго покажет вам информацию svchost.
Я также хотел добавить: новые версии встроенного диспетчера задач Windows, по крайней мере, покажут, покажут вам некоторую ограниченную информацию о сервисах, запущенных под svchost (не нужно ничего устанавливать):
Сначала выберите процесс svchost в разделе Процессы. Щелкните правой кнопкой мыши по данному процессу svchost и выберите «Перейти к службам». Он перейдет непосредственно на вкладку служб и выделит определенные службы, работающие в этом процессе svchost.
Другой метод: Использование приглашения CMD администратора: tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt notepad svchost_services.txt это также быстрый способ получить PID данного svchost / service, о котором идет речь.