Windows local system account

Windows local system account

Добрый день! Уважаемые читатели и гости одного из крупнейших 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

  1. SE_ASSIGNPRIMARYTOKEN_NAME
  2. SE_AUDIT_NAME
  3. SE_BACKUP_NAME
  4. SE_CHANGE_NOTIFY_NAME
  5. SE_CREATE_PAGEFILE_NAME
  6. SE_CREATE_PERMANENT_NAME
  7. SE_CREATE_TOKEN_NAME
  8. SE_DEBUG_NAME
  9. SE_INC_BASE_PRIORITY_NAME
  10. SE_INCREASE_QUOTA_NAME
  11. SE_LOAD_DRIVER_NAME
  12. SE_LOCK_MEMORY_NAME
  13. SE_PROF_SINGLE_PROCESS_NAME
  14. SE_RESTORE_NAME
  15. SE_SECURITY_NAME
  16. SE_SHUTDOWN_NAME
  17. SE_SYSTEM_ENVIRONMENT_NAME
  18. SE_SYSTEM_PROFILE_NAME
  19. SE_SYSTEMTIME_NAME
  20. SE_TAKE_OWNERSHIP_NAME
  21. SE_TCB_NAME
  22. SE_UNDOCK_NAME

Сценарии вызова командной строки из под System

Давайте приведу интересную задачку по нашей теме. Предположим у вас есть доменная среда Active Directory. Вы с помощью инструмента групповой политики или SCCM развернули специализированное ПО, под названием StaffCop, или что-то другое. В момент развертывания или последующей настройки вы задали так, что пользователь даже при наличии прав локального администратора в своей системе не может останавливать службу и менять ее тип запуска, вопрос может ли локальный администратор это поправить и выключить службу?

Читайте также:  Windows 10 driver samsung syncmaster

Способы вызвать командную строку от имени системы

Я очень давно занимаюсь системным администрированием и уяснил давно принцип, если у вас есть права локального администратора, то вы можете все. Обойти любые ограничения и политики. Напоминаю. что я для тестирования развернул агента 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 и откроем его текстовым редактором. Пропишем код:

Читайте также:  Вы нарушили лицензионное соглашение windows

Щелкаем по файлу правым кликом и выбираем пункт «Запуск от имени администратора». В результате чего у вас сразу будет запущено окно cmd с правами учетной записи SYSTEM. Проверить, это можно введя команду whoami. Ответ NT AUTORITY\СИСТЕМА.

Если нужно запустить удаленно командную строку от имени NT AUTORITY\СИСТЕМА, то выполните такую конструкцию

Windows local system account

Учетная запись LocalSystem

Учетная запись LocalSystem — предопределенная локальная учетная запись, используемая диспетчером управления службами. Эта учетная запись не распознается подсистемой обеспечения безопасности. Она имеет обширные привилегии на локальном компьютере и действует как компьютер в сети. Его маркер права доступа включает в себя идентификаторы безопасности (SID) NT AUTHORITY\SYSTEM и BUILTIN\Administrator s ; эти учетные записи имеют доступ к большинству системных объектов. Имя учетной записи во всех местах действия — «.\LocalSystem«. Название, «LocalSystem» или » ComputerName \LocalSystem» может также использоваться. Эта учетная запись не имеет пароля. Если Вы определяете учетную запись как LocalSystem при вызове к функции CreateService, любая информация о пароле, которую Вы предоставляете, игнорируется.

Служба, которая запускается в контексте учетной записи 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

Большинство служб не нуждается в таком высоком уровне привилегии. Если ваша служба не нуждается в этих привилегиях, и это не диалоговая служба, рассмотрите использование учетной записи LocalService или учетной записи NetworkService. Дополнительную информацию смотри в статье Защита службы и права доступа.

Windows NT: Служба имеет ограничение доступа к сетевым ресурсам, типа совместно используемых ресурсов и каналов, потому что она не имеет мандата и должна присоединится к использованию пустой сессии. Следующий ключ реестра включает в себя значения NullSessionPipes и NullSessionShares , которые используются, чтобы определить каналы и совместно используемые ресурсы, с которыми могут соединиться пустые сессии:

Читайте также:  Отменить перевод времени windows

Альтернативно, Вы можете добавить значение RestrictNullSessAccess к ключу и установить его в 0, чтобы позволить всем пустым сессиям обращаться ко всем каналам и совместно используемым ресурсам, созданным на этом компьютере.

LocalSystem Account

The LocalSystem account is a predefined local account used by the service control manager. This account is not recognized by the security subsystem, so you cannot specify its name in a call to the LookupAccountName function. It has extensive privileges on the local computer, and acts as the computer on the network. Its token includes the NT AUTHORITY\SYSTEM and BUILTIN\Administrators SIDs; these accounts have access to most system objects. The name of the account in all locales is .\LocalSystem. The name, LocalSystem or ComputerName\LocalSystem can also be used. This account does not have a password. If you specify the LocalSystem account in a call to the CreateService or ChangeServiceConfig function, any password information you provide is ignored.

A service that runs in the context of the LocalSystem account inherits the security context of the SCM. The user SID is created from the SECURITY_LOCAL_SYSTEM_RID value. The account is not associated with any logged-on user account. This has several implications:

  • The registry key HKEY_CURRENT_USER is associated with the default user, not the current user. To access another user’s profile, impersonate the user, then access HKEY_CURRENT_USER.
  • The service can open the registry key HKEY_LOCAL_MACHINE\SECURITY.
  • The service presents the computer’s credentials to remote servers.
  • If the service opens a command window and runs a batch file, the user could hit CTRL+C to terminate the batch file and gain access to a command window with LocalSystem permissions.

The LocalSystem account has the following privileges:

  • SE_ASSIGNPRIMARYTOKEN_NAME (disabled)
  • SE_AUDIT_NAME (enabled)
  • SE_BACKUP_NAME (disabled)
  • SE_CHANGE_NOTIFY_NAME (enabled)
  • SE_CREATE_GLOBAL_NAME (enabled)
  • SE_CREATE_PAGEFILE_NAME (enabled)
  • SE_CREATE_PERMANENT_NAME (enabled)
  • SE_CREATE_TOKEN_NAME (disabled)
  • SE_DEBUG_NAME (enabled)
  • SE_IMPERSONATE_NAME (enabled)
  • SE_INC_BASE_PRIORITY_NAME (enabled)
  • SE_INCREASE_QUOTA_NAME (disabled)
  • SE_LOAD_DRIVER_NAME (disabled)
  • SE_LOCK_MEMORY_NAME (enabled)
  • SE_MANAGE_VOLUME_NAME (disabled)
  • SE_PROF_SINGLE_PROCESS_NAME (enabled)
  • SE_RESTORE_NAME (disabled)
  • SE_SECURITY_NAME (disabled)
  • SE_SHUTDOWN_NAME (disabled)
  • SE_SYSTEM_ENVIRONMENT_NAME (disabled)
  • SE_SYSTEMTIME_NAME (disabled)
  • SE_TAKE_OWNERSHIP_NAME (disabled)
  • SE_TCB_NAME (enabled)
  • SE_UNDOCK_NAME (disabled)

Most services do not need such a high privilege level. If your service does not need these privileges, and it is not an interactive service, consider using the LocalService account or the NetworkService account. For more information, see Service Security and Access Rights.

Оцените статью