Lista de contas de usuários ocultos / virtuais do Windows

42

Estou tentando encontrar uma maneira de obter uma lista abrangente de contas de usuários em um sistema Windows 7, incluindo os ocultos. O diálogo Contas de Usuário ( >control userpasswords2 ) mostra apenas as contas de usuário normais, e até mesmo o editor Usuário e Grupos Locais mostra apenas contas de usuário normais e ocultas / desativadas padrão, como Administrador e Convidado. A caixa de diálogo Selecionar usuários ou grupos tem um botão Localizar agora que combina usuários e grupos, mas, infelizmente, tem o mesmo conteúdo do LUG.

Estou procurando uma lista mais abrangente que inclua contas de usuário "super-ocultas" / virtuais como TrustedInstaller (ou, para ser mais preciso, NT Service \ TrustedInstaller - observe o "domínio" diferente ).

Eu verifiquei HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList , mas a chave SpecialAccounts não existe.

Também verifiquei HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList e, embora tenha as contas SystemProfile, LocalService e NetworkService listadas, ela não possui outras (como TrustedInstaller e sua história).

O TrustedInstaller especificamente é um pouco confuso porque é um usuário, um serviço e um arquivo executável. Eu estou usando isso como um exemplo, porque é "super escondido", pois não parece estar listado em qualquer tipo de lista de usuários. (Como um experimento, tentei procurar em todo o registro por “trustedinstaller” para ver se eu poderia encontrar um lugar onde ele está listado como usuário, mas não encontrei nenhum.)

Para ser claro, o que estou procurando é uma lista de todas as contas que podem ser usadas em um campo de entrada do usuário, como em caixas de diálogo de permissões ou como um argumento runas .

    
por Synetech 21.02.2011 / 06:16

5 respostas

41

Não creio que exista uma lista final de todas as contas possíveis.

Existem diferentes tipos de nomes que você pode usar no campo de entrada do usuário, como nas caixas de diálogo de permissões.

Primeiro, são Win32_Accounts padrão, para obter uma lista completa, abra uma sessão do PowerShell e execute:

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

Estes são os usuários, grupos e contas usuais.

Desde o Vista, há uma nova classe de contas, chamadas de contas virtuais, porque elas não aparecem nas ferramentas usuais de gerenciamento. Às vezes, também são chamadas de contas de serviço e há pelo menos três tipos diferentes:

  • Contas de serviço do Windows

Como o Vista, todo serviço do Windows tem uma conta virtual associada a ele, até mesmo ele é executado com uma conta de usuário diferente e mesmo que não funcione de todo. Parece que NT Service\MSSQLSERVER

Para obter uma lista desses usos:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Pools de aplicativos do IIS

Cada pool de aplicativos do IIS executado sob o ApplicationPoolIdentity é executado em uma conta especial chamada IIS APPPOOL\NameOfThePool

Supondo que você tenha as ferramentas de script do IIS Management instaladas, você pode executar:

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

No Server 2008+ e no Windows 8+, você tem o Hyper-V, cada máquina virtual cria sua própria conta virtual, que se parece com: NT VIRTUAL MACHINE43F032-2199-4DEA-8E69-72031FAA50C5

para obter uma lista de uso:

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

Embora essas contas não sejam aceitas na caixa de diálogo de permissões, você pode usá-las com icacls.exe para definir permissões.

Há também um grupo especial NT Virtual Machine\Virtual Machines , que não aparece em outro lugar. Todas as contas de máquina virtual são membros desse grupo, portanto, você pode usar isso para definir permissões para todos os arquivos da VM.

Estes nomes são específicos do idioma, por ex. em alemão é chamado NT Virtual Machine\Virtuelle Computer

  • Gerenciador de janelas da área de trabalho

O processo dvm.exe (Desktop Window Manager) é executado sob um usuário Windows Manager\DWM-1

Novamente, você não pode usar esse tipo de usuário nos diálogos de permissões. Não é realmente possível enumerá-los porque existe um para cada 'Sessão Desktop', portanto, ao usar duas sessões RDP, você também tem DWM-2 e DWM-3 além de DVM-1 . Portanto, existem tantos quantos os desktops disponíveis.

  • Nomes de computador

Em certos casos, você também pode usar nomes de computador na caixa de diálogo de permissões, geralmente ao fazer parte de um domínio do Active Directory.

  • Usuários remotos do Windows

Ao usar o PowerShell e o 'JEA (Administração o suficiente)' e se conectar a um servidor com uma sessão remota do PS, um usuário virtual temporário pode ser criado.

estes têm o seguinte formato:

winrm virtual users\winrm va_x_computername_username

e um SID que começa com S-1-5-94-

o 'x' é um número inteiro.

Essas contas podem ser usadas ao atribuir permissões NTFS, mas não sei como listar todos esses possíveis usuários virtuais.

Enquanto em uma sessão do JEA, você pode usar whoami para descobrir o nome da conta atual.

  • finalmente:

Mesmo essas listas não oferecem todas as contas possíveis.

Por exemplo, você pode criar um pool de aplicativos FooBarPool e excluí-lo novamente, você ainda pode usar IIS APPPOOL\FooBarPool na caixa de diálogo de permissões, então deve haver uma lista interna em algum lugar.

    
por 29.08.2013 / 20:36
10

Isso ocorre porque o TrustedInstaller é um serviço e não um objeto "usuário". Com o Vista, os Serviços agora são entidades de segurança e podem receber permissões.

link

    
por 09.04.2011 / 08:46
7
  1. Vá para qualquer arquivo no disco rígido, clique com o botão direito e selecione Propriedades.
  2. Vá até a guia de segurança e clique em Edit

  3. CliqueemAdd...
  4. CliqueemAdvanced...

  5. Clique em Object Types... e desmarque Groups e, em seguida, clique em OK

  6. CliqueemFindNow.Issolistarátodososusuáriosregulareseusuáriosinternosdosistema("princípios de segurança incorporados", conforme o Windows os chama).

Observe que todas contas que aparecem nesta página podem ser usadas em um comando Executar como, embora possam ser usadas em uma caixa de diálogo de permissões.

    
por 04.03.2011 / 00:55
4

A partir do Windows Vista, os serviços são tratados como usuários. Ou seja, um identificador de segurança (SID, Security Identifier) é atribuído a todos os serviços. Isso não é específico para o serviço TrustedInstaller . Você pode ver o SID atribuído a qualquer serviço usando o comando sc showsid :

USAGE: sc showsid [name]

DESCRIPTION: Displays the service SID string corresponding to an arbitrary name. The name can be that of an existing or non-existent service.

Observe que não há necessidade de o serviço existir no sistema. Exemplos:

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

ou, para o serviço Windows Management Instrumentation ( Winmgmt ):

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

e, finalmente, por um serviço falso:

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

Observe que todos os SIDs começam com S-1-5-80 , em que 80 é atribuído à sub-autoridade SECURITY_SERVICE_ID_BASE_RID . Além disso, essa atribuição é determinística: não são usados RIDs e o SID será o mesmo em todos os sistemas (consulte as referências no final deste post para obter mais informações).

Como exemplo, atribuirei a permissão de gravação NT Service\Winmgmt service a algum arquivo:

OWindowssublinhaonomeWinmgmt,confirmandoqueéumaidentidadeválida:

Agora, clique em OK e, em seguida, atribua a permissão de gravação:

Issoconfirmaquequalquernomedeserviçopodeserusadocomoumaidentidadedousuário.Portanto,eunãooschamariadecontas"supper-hidden": D

Para mais informações, leia os seguintes artigos:

por 23.04.2013 / 06:10
1

Você pode usar a API NetQueryDisplayInformation, combinar com a verificação bit a bit no sinalizador de informações do usuário. Eu tenho exatamente o mesmo requisito, então eu cozinho um código de amostra (modificado da consulta MSDN GROUP).

O sinalizador de usuário que usei é UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD --- > isso garante que tenhamos uma conta humana, a conta humana sempre exige senha.

código de trabalho em: link

    
por 17.12.2013 / 05:10