Запуск сервисов SvcHost.exe в отдельном процессе
От: nodir.temir https://github.com/tnodir
Дата: 05.02.22 15:53
Оценка:
По каким признакам из реестра SvcHost.exe запускает некоторые сервисы с типом "Share process" (0x20) в отдельном процессе с аргументом "-s <Имя-Сервиса>" в конце командной строки?

Пример:
— сервис LSM запускается в отдельном процессе,
— а сервисы DcomLaunch, Power и ещё несколько — в одном общем процессе.

Или признак запуска SvcHost.exe берёт не из реестра, а при запуске из .DLL через какие-то параметры?

Интересуют только сервисы с типом "Share process" (0x20)!
Re: Запуск сервисов SvcHost.exe в отдельном процессе
От: Maniacal Россия  
Дата: 09.02.22 13:19
Оценка: 24 (2)
Здравствуйте, nodir.temir, Вы писали:

NT>По каким признакам из реестра SvcHost.exe запускает некоторые сервисы с типом "Share process" (0x20) в отдельном процессе с аргументом "-s <Имя-Сервиса>" в конце командной строки?


NT>Или признак запуска SvcHost.exe берёт не из реестра, а при запуске из .DLL через какие-то параметры?


Ключ командной строки прописан в реестре в параметре ImagePath в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\имя службы
Всего существует три ключа:
-k — запуск в групповом режиме
-s — запуск единичного процесса
-p — режим защиты от атак на уязвимости
Объединение в группы описано в реестре в HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

https://ab57.ru/svchost.html
Re[2]: Запуск сервисов SvcHost.exe в отдельном процессе
От: nodir.temir https://github.com/tnodir
Дата: 12.02.22 08:52
Оценка:
Здравствуйте, Maniacal, Вы писали:

NT>>По каким признакам из реестра SvcHost.exe запускает некоторые сервисы с типом "Share process" (0x20) в отдельном процессе с аргументом "-s <Имя-Сервиса>" в конце командной строки?


NT>>Или признак запуска SvcHost.exe берёт не из реестра, а при запуске из .DLL через какие-то параметры?


M>Ключ командной строки прописан в реестре в параметре ImagePath в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\имя службы

M>Всего существует три ключа:
M>-k — запуск в групповом режиме
M>-s — запуск единичного процесса
M>-p — режим защиты от атак на уязвимости
M>Объединение в группы описано в реестре в HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

M>https://ab57.ru/svchost.html


Ключ "-s" никогда явно не задаётся в реестре в параметре ImagePath.

SvcHost.exe сам добавляет ключ "-s" при запуске сервиса группового режима, но в отдельном процессе.

Ещё раз, пример с сервисами LSM и DcomLaunch.
В реестре они имеют одинаковые настройки.

В "HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost" они объединены в одну группу "DcomLaunch" как:
"
Power
LSM
BrokerInfrastructure
PlugPlay
DcomLaunch
SystemEventsBroker
DeviceInstall
".

Но при этом LSM запускается в отдельном процессе как "C:\Windows\system32\svchost.exe -k DcomLaunch -p -s LSM".
А остальные сервисы группы — в одном "расшаренном" процессе.
Re[3]: Запуск сервисов SvcHost.exe в отдельном процессе
От: okman Беларусь https://searchinform.ru/
Дата: 12.02.22 13:12
Оценка:
Здравствуйте, nodir.temir, Вы писали:

NT>Ещё раз, пример с сервисами LSM и DcomLaunch.

NT>В реестре они имеют одинаковые настройки.
NT>...
NT>Но при этом LSM запускается в отдельном процессе как "C:\Windows\system32\svchost.exe -k DcomLaunch -p -s LSM".
NT>А остальные сервисы группы — в одном "расшаренном" процессе.

У сервисов могут быть другие "индивидуальные" настройки, например SID (per-service SID, write-restricted SID, etc) или набор привилегий.
Поэтому SCM запускает их в отдельных процессах. Например, сравните вывод команды "sc qprivs" (вывод списка привилегий) для служб LSM и
Power — он различается.
Re[4]: Запуск сервисов SvcHost.exe в отдельном процессе
От: nodir.temir https://github.com/tnodir
Дата: 13.02.22 08:34
Оценка:
Здравствуйте, okman, Вы писали:

O>У сервисов могут быть другие "индивидуальные" настройки, например SID (per-service SID, write-restricted SID, etc) или набор привилегий.

O>Поэтому SCM запускает их в отдельных процессах. Например, сравните вывод команды "sc qprivs" (вывод списка привилегий) для служб LSM и
O>Power — он различается.

Да, RequiredPrivileges у LSM пустой оказывается.
Ещё LSM зависит от DComLaunch.

Видимо, ещё есть факторы для запуска в отдельном процессе.
Ладно, всем спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.