- Was local service windows 12
- Какого назначение системной учетной записи Local System
- Привилегии LocalSystem
- Сценарии вызова командной строки из под System
- Способы вызвать командную строку от имени системы
- LocalService
- Registry Entry
- Remarks
- Медленная служба не запустится из-за ошибки времени простоя в Windows
- Дополнительная информация
- Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
Was local service windows 12
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали способы выключения компьютера средствами командной строки, в сегодняшней публикации мы рассмотрим задачу, как вызвать cmd от имени системной учетной записи Local System, рассмотрим варианты применения данной задачи. Думаю, что многим коллегам данная статья будет весьма познавательна и каждый найдет применение данному лайвхаку.
Какого назначение системной учетной записи Local System
Системная учетная запись (Local System) – это специальная встроенная, локальная учетная запись, созданная Windows в момент установки, для использования в системе и запуска из под нее различных служб Windows. В Windows огромное количество служб и процессов для своего запуска и работы используют именно системную запись. Посмотреть это можно в оснастке «Службы», которую можно открыть из окна «Выполнить» введя в нем services.msc.
Учетная запись Ststem не отображается среди других учетных записей в диспетчере пользователей, но зато вы ее легко можете увидеть на вкладке «Безопасность» у любого системного диска, файла. куста реестра или папки. По умолчанию для учетной записи «Система (System)» предоставлены права полного доступа.
Служба, которая запускается в контексте учетной записи LocalSystem, наследует контекст обеспечения безопасности Диспетчера управления службами (SCM). Пользовательский идентификатор безопасности (SID) создается из значения SECURITY_LOCAL_SYSTEM_RID. Учетная запись не связывается с учетной записью любого пользователя, который начал работу. Она имеет несколько значений:
- Ключ реестра HKEY_CURRENT_USER связан с пользователем по умолчанию, а не текущим пользователем. Чтобы обратиться к профилю другого пользователя, имитируйте этого пользователя, а затем обратитесь к HKEY_CURRENT_USER.
- Служба может открыть ключ реестра HKEY_LOCAL_MACHINE\SECURITY.
- Служба представляет мандат компьютера для удаленного сервера. Если служба открывает командное окно (на экране дисплея) и запускает командный файл, пользователь должен нажать CTRL+C, чтобы закончить работу командного файла и получить доступ к окну команды с привилегиями LocalSystem.
Привилегии LocalSystem
- SE_ASSIGNPRIMARYTOKEN_NAME
- SE_AUDIT_NAME
- SE_BACKUP_NAME
- SE_CHANGE_NOTIFY_NAME
- SE_CREATE_PAGEFILE_NAME
- SE_CREATE_PERMANENT_NAME
- SE_CREATE_TOKEN_NAME
- SE_DEBUG_NAME
- SE_INC_BASE_PRIORITY_NAME
- SE_INCREASE_QUOTA_NAME
- SE_LOAD_DRIVER_NAME
- SE_LOCK_MEMORY_NAME
- SE_PROF_SINGLE_PROCESS_NAME
- SE_RESTORE_NAME
- SE_SECURITY_NAME
- SE_SHUTDOWN_NAME
- SE_SYSTEM_ENVIRONMENT_NAME
- SE_SYSTEM_PROFILE_NAME
- SE_SYSTEMTIME_NAME
- SE_TAKE_OWNERSHIP_NAME
- SE_TCB_NAME
- SE_UNDOCK_NAME
Сценарии вызова командной строки из под System
Давайте приведу интересную задачку по нашей теме. Предположим у вас есть доменная среда Active Directory. Вы с помощью инструмента групповой политики или SCCM развернули специализированное ПО, под названием StaffCop, или что-то другое. В момент развертывания или последующей настройки вы задали так, что пользователь даже при наличии прав локального администратора в своей системе не может останавливать службу и менять ее тип запуска, вопрос может ли локальный администратор это поправить и выключить службу?
Способы вызвать командную строку от имени системы
Я очень давно занимаюсь системным администрированием и уяснил давно принцип, если у вас есть права локального администратора, то вы можете все. Обойти любые ограничения и политики. Напоминаю. что я для тестирования развернул агента StaffCop, это такая программа для слежки, которую используют всякие шарашкины конторы. Агент по умолчанию запрещает выключение службы и изменение ее типа. Выглядит, это вот таким образом. Служба работает, имеет имя StaffCop Scheduler, но вот сделать с ней ничего не получается, все не активно.
Для того, чтобы вызвать cmd от имени системы, вам необходимо скачать замечательный набор утилит PSTools, а конкретно нам будет нужна утилита PsExec.exe или PsExec64.exe. Если вы мой постоянный читатель, то вы помните, что я их использовал, чтобы удаленно включить RDP доступ на сервере. Скачать сборник PSTools можно с официального сайта по ссылке ниже, или же у меня с сайта.
Далее вам необходимо распаковать zip архив, в результате чего будет вот такой список утилит.
Теперь когда подготовительный этап готов, то можно продолжать. Откройте обязательно командную строку от имени администратора и введите команду:
Мой пример: cd C:\Дистрибутивы\PSTools
Командой dir я проверил, что это та папка и я вижу нужные мне утилиты PsExec.exe или PsExec64.exe.
Последним шагом мы текущее окно командной строки из под текущего пользователя перезапустим от имени Local System. Пишем:
В итоге я вижу, что у меня открылось новое окно командной строки и оно уже работает в контексте «C:\Windows\system32>«, это и означает учетную запись Local System (Системная учетная запись)
Теперь давайте из под нее попробуем остановить нашу службу StaffCop Scheduler. Для этого есть ряд команд:
Далее вам необходимо изменить тип запуска и поменять с автоматического на отключена. Для этого пишем команду:
Как видим все успешно отработало. Если посмотреть оснастку «Службы», то видим вот такую картину.
Так, что имея права локального администратора и утилиту PsExec.exe, можно делать что угодно. Надеюсь, что вы теперь будите чаще вызывать окно командной строки от имени учетной записи системы. Давайте с вами напишем небольшой батник, который будет из ярлыка вызывать cmd от имени Local System. Создадим тестовый файл, поменяем ему сразу расширение с txt на cmd и откроем его текстовым редактором. Пропишем код:
Щелкаем по файлу правым кликом и выбираем пункт «Запуск от имени администратора». В результате чего у вас сразу будет запущено окно cmd с правами учетной записи SYSTEM. Проверить, это можно введя команду whoami. Ответ NT AUTORITY\СИСТЕМА.
Если нужно запустить удаленно командную строку от имени NT AUTORITY\СИСТЕМА, то выполните такую конструкцию
LocalService
Installs an object as a service application.
Registry Entry
Remarks
In addition to running as a local server executable (EXE), a COM object may also choose to package itself to run as a service application when activated by a local or remote client. Services support numerous useful and UI-integrated administrative features, including local and remote starting, stopping, pausing, and restarting, as well as the ability to establish the server to run under a specific user account and window station.
An object written as a service is installed for use by COM by establishing a LocalService value and performing a standard service installation. The LocalService value must be set to the service name, as configured in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services, as the default REG_SZ value.
When LocalService is set, any string assigned to ServiceParameters is passed as a command-line argument to the service as it is being launched.
The service configuration is preferred in many situations where the capabilities of the local and remote service management APIs and user interface might be useful for the services that the object provides. For example, leveraging the existing administrative framework of the service architecture should be an obvious choice if the object is long-lived or readily supports concepts such as starting, stopping, resetting, or pausing.
Services can be dynamically configured and can be configured to run automatically when the machine boots, or to be launched when requested by a client application.
If you are implementing classes as services, you should be aware of the following points:
- This value is used in preference to the LocalServer32 key for local and remote activation requests—if LocalService exists and refers to a valid service, the LocalServer32 key is ignored.
- Currently, only a single instance of a service application may be running at a given time on a computer. COM services must therefore register their class objects on launch using REGCLS_MULTIPLEUSE to support multiple clients.
- To launch and initialize properly, COM services configured to run automatically when a machine boots must include RPCSS in their list of dependent services.
Медленная служба не запустится из-за ошибки времени простоя в Windows
В этой статье приводится обходное решение проблемы, из-за которой медленная служба не начинает работу из-за ошибки времени выполнения в Windows.
Исходная версия продукта: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер КБ: 922918
Чтобы обойти эту проблему, измените реестр, чтобы увеличить значение времени простоя по умолчанию для диспетчера управления службами. Чтобы увеличить это значение до 60 секунд, выполните следующие действия.
Щелкните Пуск, затем Выполнить и введите regedit. Затем нажмите ОК.
Найдите и откройте следующий подраздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
На правой области найдите запись ServicesPipeTimeout.
Если запись ServicesPipeTimeout не существует, ее необходимо создать. Для этого выполните следующие действия:
- В меню Правка выберите пункт Создать, а затем Параметр DWORD.
- Введите ServicesPipeTimeout и нажмите ввод.
Щелкните правой кнопкой мыши ServicesPipeTimeout и выберите «Изменить».
Щелкните decimal, введите 60000, а затем нажмите кнопку ОК. Это значение представляет время в миллисекунах до того, как служба будет отсутизировать время.
- Это обходное решение может устранить проблему, из-за которой служба не запустится. Тем не менее, рекомендуется исследовать эту проблему, чтобы определить, является ли она признаком другой проблемы.
- Тщательно увеличийте это число. Мы рекомендуем увеличить это число с небольшим количеством за раз, пока служба не запустится.
Дополнительная информация
Диспетчер управления службой ждет время, указанное записью ServicesPipeTimeout, перед ведением журнала события 7000 или 7011. Для запуска служб, которые зависят от службы диспетчера сеансов трассировки Windows, может потребоваться более 60 секунд. Поэтому необходимо соответствующим образом увеличить значение ServicesPipeTimeout, чтобы дать всем зависимым службам достаточно времени для запуска.
Для получения дополнительных сведений щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:
839803 Служба диспетчера сеансов трассировки Windows не запустится и произойдет событие с ид 7000
Ошибка DistributedCOM 10016 в Windows: Параметры разрешений для приложения не дают разрешения локальной активации
В этой заметке я покажу, как исправить ошибку c Event ID 10016 от источника DistributedCOM на компьютере с Windows 10 / Windows Server 2012 R2. Ошибка DCOM 10016 довольно часто встречается как в клиентских, так и в серверных версиях Windows, начиная еще со времен Windows XP и исправляется она одинаково, независимо от редакции Windows.
Проблема проявляется следующим образом: в журнале событий системы при загрузке компьютера или попытке запуска/установки приложения появляется следующая ошибка:
Log Name: Система
Source: DistributedCOM
Event ID: 10016
Level: Ошибка
User: SYSTEM
Описание: Параметры разрешений для конкретного приложения не дают разрешения Локальный Запуск для приложения COM-сервера с CLSID <1ccb96f4-b8ad-4b43-9688-b273f58e0910>и APPID
В англоязычных версиях Windows описание ошибки такое:
The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID
<000209ff-0000-0000-c000-000000000046>and APPID Unavailable to the user IIS APPPOOL\appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.
Судя по описанию ошибки: некий пользователь (например, IIS Apppool) или система (NT AUTHORITY\система) пытается запустить некий компонент COM с помощью инфраструктуры DCOM и не может этого сделать из-за отсутствия права «Локальный Запуск» или «Локальная активация» (Local Activation Permission). В коде ошибки содержатся только коды классов COM компонента и приложения. Попробуем определить, какому именно приложению принадлежит идентификатор и предоставить права, необходимые для его запуска.
Из описания события необходимо скопировать идентификаторы CLSID и APPID. В моем случае это
(в некоторых случаях идентификатор приложения может быть не указан — APPID Unavailable).
Также обратите внимание каких разрешений не хватает (Local Activation permission) и для какой учетной записи (NT AUTHORITY\SYSTEM или IIS APPPOOL\appIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).