Список скрытых / виртуальных учетных записей Windows


44

Я пытаюсь найти способ получить полный список учетных записей пользователей в системе Windows 7, включая скрытые. В диалоговом окне « Учетные записи пользователей » ( >control userpasswords2) отображаются только обычные учетные записи пользователей, и даже в редакторе « Локальные пользователи и группы» отображаются только обычные учетные записи пользователей и стандартные скрытые / отключенные учетные записи, такие как Администратор и Гость. В диалоговом окне « Выбор пользователей или групп » есть кнопка « Найти сейчас» , которая объединяет пользователей и группы, но, увы, содержит то же содержимое, что и LUG.

Я ищу более полный список, который включает «супер-скрытые» / виртуальные учетные записи пользователей, такие как TrustedInstaller (или, точнее, NT Service \ TrustedInstaller - обратите внимание на другой «домен»).

Я проверил HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, но SpecialAccountsключ не существует.

Я также проверил HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, и хотя в нем есть учетные записи SystemProfile, LocalService и NetworkService, у него нет других (таких как TrustedInstaller и тому подобное).

TrustedInstaller определенно немного сбивает с толку, потому что это пользователь, служба и исполняемый файл. Я использую его в качестве примера, потому что он «супер скрытый» в том смысле, что он, кажется, не указан ни в каком списке пользователей. (В качестве эксперимента я попытался выполнить поиск по «реестру доверенных лиц» по всему реестру, чтобы выяснить, могу ли я найти место, где он указан как пользователь, но не нашел ни одного.)

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


Ответы:


43

Я не думаю, что есть окончательный список всех возможных аккаунтов.

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

Прежде всего, это стандартные Win32_Accounts, чтобы получить полный список, откройте сеанс PowerShell и запустите:

get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName

Это обычные пользователи, группы и встроенные учетные записи.

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

  • Учетные записи служб Windows

С каждой операционной системой Windows Vista связана виртуальная учетная запись, даже если она работает под другой учетной записью пользователя, даже если она вообще не запускается. Это выглядит какNT Service\MSSQLSERVER

Чтобы получить список тех, кто использует:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Пулы приложений IIS

Каждый пул приложений IIS, который запускается под ApplicationPoolIdentity, запускается под специальной учетной записью, которая называется IIS APPPOOL\NameOfThePool

Предполагая, что у вас установлены инструменты сценариев управления IIS, вы можете запустить:

Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
  • Виртуальные машины Hyper-V

На Server 2008+ и Windows 8+ у вас есть Hyper-V, каждая виртуальная машина создает свою собственную виртуальную учетную запись, которая выглядит следующим образом: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

чтобы получить список используйте:

get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}

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

Существует также специальная группа NT Virtual Machine\Virtual Machines, которая не появляется в других местах. Все учетные записи виртуальных машин являются членами этой группы, поэтому вы можете использовать это для установки разрешений для всех файлов виртуальных машин.

Эти имена зависят от языка, например, на немецком языке они называются NT Virtual Machine\Virtuelle Computer

  • Диспетчер окон рабочего стола

Процесс dvm.exe (менеджер окон рабочего стола) выполняется под пользователем Windows Manager\DWM-1

Опять же, вы не можете использовать этот тип пользователей в диалогах разрешений. Перечислить их на самом деле также невозможно, потому что они существуют для каждого «сеанса рабочего стола», поэтому при использовании двух сеансов RDP у вас также есть DWM-2и DWM-3в дополнение к DVM-1. Таким образом, существует столько же, сколько доступно рабочих столов.

  • Имена компьютеров

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

  • Windows Remoting виртуальных пользователей

При использовании PowerShell и JEA (достаточно администрирования) и подключении к серверу с удаленным сеансом PS может быть создан временный виртуальный пользователь.

они имеют следующий формат:

winrm virtual users\winrm va_x_computername_username

и SID, который начинается с S-1-5-94-

«х» является целым числом.

Эти учетные записи могут использоваться при назначении разрешений NTFS, но я не знаю, как перечислить всех этих возможных виртуальных пользователей.

Во время сеанса JEA вы можете использовать, whoamiчтобы узнать имя текущей учетной записи.

  • Ну наконец то:

Даже эти списки не дают вам все возможные учетные записи.

Например, вы можете создать пул приложений, а FooBarPoolзатем удалить его снова, вы все равно можете использовать его IIS APPPOOL\FooBarPoolв диалоге разрешений, поэтому где-то должен быть внутренний список.


Очень хорошо! Первый запрос вернул специальных «пользователей», таких как everyone, restrictedи т. Д., И ваше обсуждение NT Service\*учетных записей объясняет, как другие TrustedInstaller. Вы также охватили более экзотические особые случаи, но похоже, что все общие учтены.
Synetech

@ Ахмед - какие пользователи? Если у вас есть проблема, вы должны создать новый вопрос и подробно описать вашу проблему. Это не место для этого.
Питер Хандорф,

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

3
Привет, код PowerShell для перечисления пользователей пула приложений IIS не работал для меня, поэтому я в итоге использовал Get-WebConfiguration system.applicationHost/applicationPools/addвместо этого.
Тахир Хасан

1
Отличный ответ. Здесь есть дополнительная информация от MS об учетных записях
служб

10

Это связано с тем, что TrustedInstaller является сервисом, а не объектом пользователя. В Vista службы теперь являются участниками безопасности и им могут быть назначены разрешения.

http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx


Да; это именно то, о чем я говорю. Я ищу полный список вещей, которым можно дать разрешения, будь то пользователи, сервисы или что у вас есть. Есть ли полный список «участников безопасности»?
Synetech

Я не думаю, что есть способ подключиться к ACL и найти полный список участников безопасности. Я не уверен, почему вы хотите получить полный список участников безопасности в первую очередь. Технически установщик модулей Windows (имя службы TRUSTEDINSTALLER) работает под учетной записью локальной системы.
Surfasb

4
> Я не уверен, почему вы хотите получить полный список участников безопасности в первую очередь. Любопытство. (У кого-нибудь есть это больше в эти дни ...?)
Synetech

Вы можете указать, что любопытство к библиотеке MSDN.
Surfasb

7
  1. Перейдите к любому файлу на жестком диске, щелкните правой кнопкой мыши и выберите «Свойства».
  2. Перейдите на вкладку безопасности и нажмите Edit

    изменить настройки безопасности

  3. щелчок Add...
  4. щелчок Advanced...

    выберите пользователей или группы

  5. Нажмите Object Types...и снимите флажок Groups, затем нажмитеOK

    типы объектов

  6. Нажмите Find Now. В этом списке будут перечислены все обычные пользователи и пользователи встроенной системы («встроенные принципы безопасности», как их называет Windows).

    найти сейчас

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


4
Я знаком с этим диалогом и уже упоминал его в вопросе «найди сейчас». Обратите внимание, что хотя пользователь « SYSTEMесть» (или, по крайней мере, должен быть), TrustedInstaller - нет .
Synetech

Извините, я думал, вы обращаетесь к find nowкнопке на панели управления «Пользователи и группы», которая похожа, но немного отличается. Насколько мне известно, единственная учетная запись, которая не появляется здесь, это TrustedInstaller. Это связано с тем, что Microsoft делает все возможное, чтобы вы ничего не делали с учетной записью TrustedInstaller. Я дам вам знать, если я подумаю о других способах сделать это.
nhinkle

Вот почему я спрашиваю; Мне интересно, какие еще пользователи без документов существуют ...
Synetech

Есть статья Microsoft TechNet с информацией о большинстве из них, но TrustedInstaller там нет. support.microsoft.com/kb/243330
nhinkle

1
не забудьте установить Locations...на свой компьютер, если вы находитесь в домене (но хотите, чтобы ваш компьютер только).
n611x007

4

Начиная с Windows Vista, сервисы рассматриваются как пользователи. То есть идентификатор безопасности (SID) присваивается каждой службе. Это не относится к сервису TrustedInstaller . Вы можете просмотреть SID, назначенный любому сервису, используя sc showsidкоманду:

ИСПОЛЬЗОВАНИЕ: sc showid [имя]

ОПИСАНИЕ : отображает строку SID службы, соответствующую произвольному имени. Имя может быть именем существующего или несуществующего сервиса.

Обратите внимание, что нет необходимости в существовании службы в системе. Примеры:

C:\> sc showsid TrustedInstaller
NAME: TrustedInstaller
SERVICE SID: S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464

или, для службы Windows Management Instrumentation ( Winmgmt):

C:\> sc showsid Winmgmt
NAME: Winmgmt
SERVICE SID: S-1-5-80-3750560858-172214265-3889451188-1914796615-4100997547

и, наконец, для поддельного сервиса:

C:\> sc showsid FakeService
NAME: FakeService
SERVICE SID: S-1-5-80-3664595232-2741676599-416037805-3299632516-2952235698

Обратите внимание, что все идентификаторы безопасности начинаются с того S-1-5-80, где 80назначается SECURITY_SERVICE_ID_BASE_RIDподчиненному органу. Более того, это назначение является детерминированным: идентификаторы RID не используются, и идентификатор SID будет одинаковым во всех системах (дополнительную информацию см. В ссылках в конце этого поста).

В качестве примера я назначу NT Service\Winmgmtсервис, разрешение на запись в некоторый файл:

введите описание изображения здесь

Windows подчеркивает имя Winmgmt, подтверждая, что это действительный идентификатор:

введите описание изображения здесь

Теперь нажмите OK, а затем назначьте разрешение на запись:

введите описание изображения здесь

Это подтверждает, что любое имя службы может использоваться в качестве идентификатора пользователя. Поэтому я бы не назвал их «скрытыми за ужином» аккаунтами: D

Для получения дополнительной информации, пожалуйста, прочитайте следующие статьи:


1
Очень интересно. Спасибо за информацию!
Synetech

1

Вы можете использовать NetQueryDisplayInformation API, в сочетании с побитовой проверкой флага информации о пользователе. У меня точно такое же требование, поэтому я готовлю пример кода (модифицированный из запроса MSDN GROUP).

Я использовал пользовательский флаг UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> это гарантирует, что мы получим учетную запись Human, учетная запись Human всегда требует пароль.

рабочий код по адресу: http://www.cceye.com/list-system-normal-user-account-only/


Пожалуйста, расширите свой ответ, чтобы напрямую содержать соответствующую информацию для данного вопроса. Если эта ссылка перестает работать, ваш ответ будет не таким полезным.
Mxx
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.