Из этой статьи вы узнаете, что такое маркеры доступа, и из чего они состоят. А также я покажу, как запустить программу с изменённым маркером доступа.

Теория

Маркер доступа — это специальный объект, который описывает, какими правами обладает процесс или поток. Маркер доступа включает в себя идентификатор пользователя и его привилегии, связанные с процессом или потоком. Когда пользователь входит в систему, система аутентифицирует его, например запрашивает пароль. Если пароль верный, то система создает маркер доступа. Вследствие чего, каждый процесс, выполняемый от имени этого пользователя, имеет копию этого маркера доступа.

Маркеры доступа затем используются монитором безопасности SRM (про него было написано здесь). Основываясь на маркерах доступа монитор решает какие объекты и к чему имеют доступ.

Маркер доступа включает в себя:

  • SID пользователя;
  • SID всех групп в которые входит пользователь;
  • массив привилегий, при этом привилегии бывают разные, например выключать компьютер, или сменить владельца у объекта;
  • уровень целостности;
  • ID сеанса;
  • состояние UAC.

Когда пользователь входит в систему, его первый процесс получает маркер доступа. Поскольку по умолчанию дочерние процессы наследуют маркер своего создателя, все процессы в сеансе пользователя запускаются с одним и тем же маркером. Но маркер приложения может слегка измениться, например при запуске приложения от имени администратора. При таком запуске изменяется уровень целостности и соответственно маркер доступа.

К вашему сведению, поля маркера после его создания не могут быть изменены, так как находятся в системной памяти ядра.

Практика

Системная утилита Runas умеет запускать процессы от имени других пользователей. И соответственно с другими маркерами доступа.

С помощью следующей команды, вы можете запустить приложение «Блокнот» от имени какого-нибудь другого пользователя:

>runas.exe /user:domain\testuser notepad.exe
Введите пароль для domain\testuser:
Попытка запуска notepad.exe от имени пользователя "domain\testuser" ...

А теперь, давайте запустим две командные строки, одну от имени администратора а другую обычно. И посмотрим на их маркеры доступа в Process Explorer. Для этого откроем свойства запущенных процессов и перейдем на вкладку «Security«:

Запуск программы обычно и от имени администратора

Слева обычный процесс, справа запущенный от имени администратора. Обратите внимание что второй процесс имеет больше привилегий.


Вернуться к оглавлению

Сводка
Маркеры доступа
Имя статьи
Маркеры доступа
Описание
Из этой статьи вы узнаете, что такое маркеры доступа, и из чего он состоит. А также я покажу, как запустить программу с изменённым маркером доступа

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *