GetTokenInformation не возвращает статую всех привилегий, если не повышен - PullRequest
0 голосов
/ 04 февраля 2020

Я создал команду, которая использует GetTokenInformation для получения информации о привилегиях для текущего процесса, и запустил ее как с повышенными, так и без повышенных прав. Когда повышен (работает от имени администратора), я получаю состояние всех привилегий. При отсутствии повышенных прав я получаю только состояние 8 привилегий, некоторые из которых включены, а некоторые отключены.

Почему при работе без повышенных прав возвращается только 8 привилегий?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Это зависит от Контроль учетных записей пользователей (UA C) , вы можете обратиться к документу о Как работает Контроль учетных записей пользователей

Если UA C включено:

При запуске процесса (без повышения прав) он получит токен с ограничениями, а администратор будет удален из списка групп. Даже если текущий пользователь является членом группы администраторов, процесс не может использовать привилегии администратора.

А если UA C отключен:

Вы получите копию оригинала токен без ограничений.

Можно отключить следующий регистр (отключать UA C не рекомендуется):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA = 1 (REG_DWORD)

и перезапустить P C.

0 голосов
/ 05 февраля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...