NT AUTHORITY \ Local Service не указан в списке контроля доступа каталога - PullRequest
0 голосов
/ 25 октября 2019

У меня возникла эта проблема, когда я пытаюсь проверить, есть ли у NT \ Authority Local Service разрешения на чтение \ выполнение для каталога (папки). Продукт, над которым я работаю, ТРЕБУЕТ, чтобы папка, в которую устанавливается пользователь, имела разрешения на чтение / выполнение, установленные для локальной службы.

Проблема заключается в том, что когда я получаю список контроля доступа (ACL) рекурсивно (groups-inside)-groups), Локальная служба не указана в списке, поэтому я не могу проверить, есть ли у него разрешения для этой папки.

По умолчанию Локальная служба не имеет разрешения на чтение / выполнение для пользовательских профилей (Мои документы,Desktop и т. Д.), Но я не буду знать, имеет ли локальная служба доступ к другим каталогам, в которые пользователь выбирает установку.

ПРИМЕЧАНИЕ. Локальная служба имеет доступ к программным файлам, даже если это НЕперечислены в ACL. Это спрятано где-то еще?

Это короткий фрагмент о том, как я вытаскиваю ACL:

GroupPrincipal groupPrincipal = 
GroupPrincipal.FindByIdentity(principalContext, identityReferenceValue);

// GetMembers(true) is recursive (groups-within-groups)
foreach (var member in groupPrincipal.GetMembers(true)) {
     if (member.SamAccountName.Equals("LOCAL SERVICE")) {
          foundLocalService = true;
           break;
     }
}

Есть ли другой способ, которым я должен делать это? (Кроме добавления правила доступа для локальной службы в этом каталоге) Локальная служба просто не указана в списках ACL каталогов?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 25 октября 2019

Общеизвестно, что сложно рассчитать «эффективные разрешения» для учетной записи. Но простой ответ на ваш вопрос заключается в том, что вы, вероятно, захотите найти одну из:

  1. Локальная группа Users , иногда обозначаемая как BUILTIN \ Users или COMPUTERNAME \ Users , или
  2. Аутентифицированных пользователей , иногда отображается как NT AUTHORITY \ Authenticated Users .

Прошедшие проверку пользователи является одним из известных SID . Это «группа, в которую входят все пользователи, чьи идентификационные данные были аутентифицированы при входе в систему». Пока вы можете доказать, кто вы, вы включены в Аутентифицированных пользователей . SID для этого всегда S-1-5-11 на каждом компьютере с Windows.

Однако на самом деле это не считается реальной группой. Чтобы найти его при добавлении разрешений к папке, необходимо выбрать «Встроенные участники безопасности» в разделе «Выберите этот тип объекта»:

Select Users or Groups

Локальная группа Users по умолчанию содержит Authenticated Users . На моем компьютере я действительно вижу как Users и Authenticated Users в разрешениях по умолчанию для файловой системы.

Это то, что вы, скорее всего, увидите, и это, скорее всего,все это имеет значение.

Но это не единственный способ. Вы можете увидеть Everyone (S-1-1-0), который включает в себя каждого пользователя, прошедшего проверку подлинности или нет.

Или это может быть файл или папка с LOCAL SERVICE account как владелец.

Или, может быть, локальная группа была создана вручную и к ней добавлено LOCAL SERVICE .

Один из способов получить более авторитетный доступсписок того, что вы можете искать, это запустить его под учетной записью LOCAL SERVICE :

whoami /groups

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

Но вы не можете просто открыть командную строку как LOCAL SERVICE . Таким образом, один из способов сделать это - открыть планировщик заданий и создать задачу, которая запускается в LOCAL SERVICE , с действием:

  • Программа: cmd
  • Аргументы: / c "whoami / groups> C: \ temp \ localservice.txt"

Затем запустите задачу и, когда это будет сделано, посмотрите на C: \ temp \ localservice.txt. В нем будет таблица имен групп и их SID, которые вы можете искать.

...