web-dev-qa-db-fra.com

Liste des comptes d'utilisateurs Windows masqués / virtuels

J'essaie de trouver un moyen d'obtenir une liste complète des comptes d'utilisateurs sur un système Windows 7, y compris les comptes cachés. La boîte de dialogue Comptes d'utilisateurs (>control userpasswords2) affiche uniquement les comptes d'utilisateur normaux, et même l'éditeur Utilisateurs et groupes locaux affiche uniquement les utilisateurs normaux. comptes et ceux standard cachés/désactivés comme administrateur et invité. Le dialogue Sélectionner des utilisateurs ou des groupes comporte un bouton Rechercher maintenant qui regroupe des utilisateurs et des groupes mais, hélas, il a le même contenu. comme le GUL.

Je recherche une liste plus complète incluant des comptes d’utilisateur “super cachés”/virtuels comme TrustedInstaller (ou pour être plus précis, NT Service\TrustedInstaller - notez les différents “domaines”).

J'ai vérifié HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, mais la clé SpecialAccounts n'existe pas.

J'ai également vérifié HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList et, même s'il possède les comptes SystemProfile, LocalService et NetworkService, il n'en a pas d'autres (comme TrustedInstaller et ses semblables).

TrustedInstaller est particulièrement déroutant car il s’agit d’un utilisateur, d’un service et d’un fichier exécutable. Je l'utilise comme exemple car il est "super caché" en ce sens qu'il ne semble pas figurer dans une liste d'utilisateurs. (A titre expérimental, j'ai essayé de chercher dans le registre entier "trustedinstaller" pour voir si je pouvais trouver un endroit où il est répertorié comme utilisateur, mais je n'en ai trouvé aucun.)

Pour être clair, ce que je recherche, c’est une liste de tous les comptes pouvant être utilisés dans un champ de saisie utilisateur, comme dans les boîtes de dialogue des autorisations ou comme argument runas.

42
Synetech

Je ne pense pas qu'il existe une liste ultime de tous les comptes possibles.

Vous pouvez utiliser différents types de noms dans le champ de saisie utilisateur, tels que dans les boîtes de dialogue des autorisations.

En premier lieu, les comptes Win32_Accounts standard. Pour obtenir la liste complète, ouvrez une session PowerShell et exécutez:

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

Ce sont les utilisateurs habituels, les groupes et les comptes intégrés.

Depuis Vista, il existe une nouvelle classe de comptes, appelés comptes virtuels, car ils n'apparaissent pas dans les outils de gestion habituels. On appelle parfois aussi des comptes de service, et il en existe au moins trois types différents:

  • Comptes de service Windows

Depuis Vista, chaque service Windows est associé à un compte virtuel, même s’il est exécuté sous un compte utilisateur différent et même s’il ne fonctionne pas du tout. Cela ressemble à NT Service\MSSQLSERVER

Pour obtenir une liste de ces utilisations:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Pools d'applications IIS

Chaque pool d'applications IIS exécuté sous ApplicationPoolIdentity s'exécute sous un compte spécial appelé IIS APPPOOL\NameOfThePool

En supposant que vous avez installé les IIS outils de script de gestion, vous pouvez exécuter:

Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
  • Machines virtuelles Hyper-V

Sur le serveur 2008+ et Windows 8+, vous avez Hyper-V, chaque ordinateur virtuel crée son propre compte virtuel, qui ressemble à ceci: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

pour obtenir une liste, utilisez:

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

Même si ces comptes ne sont pas acceptés dans la boîte de dialogue des autorisations, vous pouvez les utiliser avec icacls.exe pour définir des autorisations.

Il existe également un groupe spécial NT Virtual Machine\Virtual Machines, qui ne s'affiche pas ailleurs. Tous les comptes de machine virtuelle sont membres de ce groupe. Vous pouvez donc l'utiliser pour définir des autorisations pour tous les fichiers VM.

Ces noms sont spécifiques à une langue, par exemple. en allemand, il s'appelle NT Virtual Machine\Virtuelle Computer

  • Gestionnaire de fenêtres du bureau

Le processus dvm.exe (Desktop Window Manager) s’exécute sous un utilisateur Windows Manager\DWM-1

Encore une fois, vous ne pouvez pas utiliser ce type d'utilisateurs dans les boîtes de dialogue d'autorisations. Il n'est pas vraiment possible de les énumérer non plus, car il en existe une pour chaque "session de bureau". Par conséquent, lorsque vous utilisez deux sessions RDP, vous avez également DWM-2 et DWM-3 en plus de DVM-1. Donc, il y en a autant qu'il y a de bureaux disponibles.

  • Noms d'ordinateur

Dans certains cas, vous pouvez également utiliser des noms d'ordinateur dans la boîte de dialogue des autorisations, généralement lorsque vous faites partie d'un domaine Active Directory.

  • Utilisateurs virtuels de Windows Remoting

Lors de l'utilisation de PowerShell et de 'JEA (administration juste suffisante)' et de la connexion à un serveur avec une session à distance PS, un utilisateur virtuel temporaire peut être créé.

ceux-ci ont le format suivant:

winrm virtual users\winrm va_x_computername_username

et un SID commençant par S-1-5-94-

le 'x' est un nombre entier.

Ces comptes peuvent être utilisés lors de l'attribution d'autorisations NTFS, mais je ne sais pas comment répertorier tous ces utilisateurs virtuels possibles.

Pendant une session JEA, vous pouvez utiliser whoami pour connaître le nom du compte actuel.

  • enfin:

Même ces listes ne vous donnent pas tous les comptes possibles.

Par exemple, vous pouvez créer un pool d'applications FooBarPool puis le supprimer à nouveau. Vous pouvez toujours utiliser IIS APPPOOL\FooBarPool dans la boîte de dialogue des autorisations. Il doit donc exister une liste interne quelque part.

41
Peter Hahndorf

En effet, TrustedInstaller est un service et non un objet "utilisateur". Avec Vista, les services sont désormais des entités de sécurité et des autorisations peuvent être attribuées.

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

10
surfasb
  1. Accédez à n’importe quel fichier de votre disque dur, cliquez avec le bouton droit de la souris et sélectionnez Propriétés.
  2. Accédez à l'onglet Sécurité et cliquez sur Edit

    edit security settings

  3. Cliquez sur Add...
  4. Cliquez sur Advanced...

    select users or groups

  5. Cliquez sur Object Types... et décochez Groups, puis cliquez sur OK

    object types

  6. Cliquez sur Find Now. Ceci listera tous les utilisateurs réguliers et les utilisateurs du système intégré ("principes de sécurité intégrés", comme les appelle Windows).

    find now

Notez que pas tous les comptes apparaissant sur cette page ne peuvent être utilisés dans une commande d'identification, bien qu'ils puissent tous l'être dans une boîte de dialogue d'autorisations.

7
nhinkle

À partir de Windows Vista, les services sont traités comme des utilisateurs. C'est-à-dire qu'un identifiant de sécurité (SID) est attribué à chaque service. Ceci n'est pas spécifique au service de TrustedInstaller . Vous pouvez afficher le SID attribué à n’importe quel service à l’aide de la commande sc showsid:

USAGE: sc showid [nom]

DESCRIPTION: Affiche la chaîne SID du service correspondant à un nom arbitraire. Le nom peut être celui d'un service existant ou non existant.

Notez qu'il n'est pas nécessaire que le service existe sur le système. Exemples:

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

ou, pour le service Windows Management Instrumentation (Winmgmt):

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

et, enfin, pour un faux service:

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

Notez que tous les SID commencent par S-1-5-80, où 80 est attribué à la sous-autorité SECURITY_SERVICE_ID_BASE_RID. De plus, cette affectation est déterministe: aucun RID n’est utilisé et le SID sera le même sur tous les systèmes (voir les références à la fin de ce post pour plus d’informations).

Par exemple, je vais assigner le service NT Service\Winmgmt, une permission d’écriture à un fichier:

enter image description here

Windows souligne le nom Winmgmt, confirmant qu'il s'agit d'une identité valide:

enter image description here

Maintenant, cliquez sur OK, puis attribuez l'autorisation d'écriture:

enter image description here

Cela confirme que tout nom de service peut être utilisé comme identité d'utilisateur. Par conséquent, je ne les appellerais pas des comptes "cachés au souper": D

Pour plus d'informations, veuillez lire les articles suivants:

4
M.S. Dousti

Vous pouvez utiliser l'API NetQueryDisplayInformation, combiner avec la vérification au niveau du bit sur l'indicateur d'informations utilisateur. J'ai exactement les mêmes exigences, je prépare donc un exemple de code (modifié à partir d'une requête MSDN GROUP).

Les indicateurs utilisateur que j'ai utilisés sont UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> nous garantissons que nous obtenons un compte humain. Ce compte humain requiert toujours un mot de passe.

code de travail à: http://www.cceye.com/list-system-normal-user-account-only/

1
user3109641