Lista de contas ocultas / virtuais de usuário do Windows

44

Estou tentando encontrar uma maneira de obter uma lista abrangente de contas de usuário em um sistema Windows 7, incluindo contas ocultas. A caixa de diálogo Contas de usuário ( >control userpasswords2) mostra apenas as contas de usuário normais, e até o editor Local User and Groups 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 possui um botão Localizar agora , que combina usuários e grupos, mas, infelizmente, possui o mesmo conteúdo que o 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 os diferentes "domínios").

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

Também verifiquei HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListe, embora ele tenha as contas SystemProfile, LocalService e NetworkService listadas, ele não possui outras (como TrustedInstaller e outros).

O TrustedInstaller especificamente é um pouco confuso porque é um usuário, um serviço e um arquivo executável. Estou usando-o como exemplo, porque é "super oculto", pois não parece estar listado em nenhum tipo de lista de usuários. (Como um experimento, tentei pesquisar em todo o registro por “instalador confiável” para ver se encontrava um local em que ele está listado como usuário, mas não encontrou nenhum.)

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

Synetech
fonte

Respostas:

43

Não acho que exista uma lista definitiva 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

Esses são os usuários habituais, grupos e as contas internas.

Desde o Vista, existe uma nova classe de contas, chamada contas virtuais, porque elas não aparecem nas ferramentas de gerenciamento habituais. Às vezes, também são chamadas contas de serviço e existem 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, mesmo que seja executada em uma conta de usuário diferente e mesmo que não seja executada. PareceNT Service\MSSQLSERVER

Para obter uma lista desses, use:

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

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

Supondo que você tenha as ferramentas de script de Gerenciamento do IIS 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 Windows 8+, você possui o Hyper-V, cada máquina virtual cria sua própria conta virtual, que se parece com: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

para obter uma lista, use:

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 o icacls.exe para definir permissões.

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

Esses nomes são específicos do idioma, por exemplo, em alemão, ele é nomeado 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 nas caixas de diálogo de permissões. Não é realmente possível enumerá-las porque existe uma para cada 'sessão da área de trabalho'; portanto, ao usar duas sessões RDP, você também possui DWM-2e DWM-3além disso DVM-1. Portanto, existem tantos quantos desktops disponíveis.

  • Nomes de Computador

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

  • Usuários virtuais remotos do Windows

Ao usar o PowerShell e o 'JEA (Administração suficiente)' e conectar-se a um servidor com uma sessão remota 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 estiver em uma sessão JEA, você pode usar whoamipara descobrir o nome da conta atual.

  • finalmente:

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

Por exemplo, você pode criar um pool de aplicativos FooBarPoole excluí-lo novamente. Você ainda pode usá-lo IIS APPPOOL\FooBarPoolna caixa de diálogo de permissões, para que haja uma lista interna em algum lugar.

Peter Hahndorf
fonte
Muito agradável! A primeira consulta retornou “usuários” especiais, como everyone, restricted, etc., e sua discussão de NT Service\*contas explica outros como TrustedInstaller. Você também cobriu casos especiais mais exóticos, mas parece que todos os casos comuns são contabilizados.
Synetech
@Ahmed - quais usuários? Se você tiver um problema, crie uma nova pergunta e descreva seu problema em detalhes lá. Este não é o lugar para isso.
Peter Hahndorf
Desculpas, eu apaguei meu comentário. Aqui está a minha pergunta, se curioso.
Ahmed
3
Olá, o código do PowerShell para listar os usuários do IIS App Pool não funcionou para mim, então acabei usando Get-WebConfiguration system.applicationHost/applicationPools/add.
Tahir Hassan
1
Ótima resposta. Há informações adicionais da MS nas Contas de serviço aqui: docs.microsoft.com/en-us/windows/security/identity-protection/…
CJBS
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 objetos de segurança e podem receber permissões.

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

surfasb
fonte
Sim; é exatamente disso que estou falando. Estou procurando uma lista abrangente de coisas que podem receber permissões, sejam usuários, serviços ou o que você tem. Existe uma lista completa de "princípios de segurança"?
Synetech
Não acho que haja uma maneira de acessar as ACLs e encontrar uma lista COMPLETA de entidades de segurança. Não sei por que você deseja uma lista completa de entidades de segurança em primeiro lugar. Tecnicamente, o Instalador de Módulos do Windows (nome do serviço TRUSTEDINSTALLER) é executado na conta Sistema Local.
surfasb
4
> Não sei por que você deseja uma lista completa dos principais de segurança. Curiosidade. (Alguém tem que mais nos dias de hoje ...?)
Synetech
Você pode apontar essa curiosidade para a biblioteca do MSDN.
surfasb
7
  1. Vá para qualquer arquivo no disco rígido, clique com o botão direito do mouse e selecione Propriedades.
  2. Vá para a guia segurança e clique em Edit

    editar configurações de segurança

  3. Clique Add...
  4. Clique Advanced...

    selecionar usuários ou grupos

  5. Clique Object Types...e desmarque Groupse clique emOK

    tipos de objetos

  6. Clique em Find Now. Isso listará todos os usuários regulares e usuários do sistema interno ("princípios de segurança internos", como o Windows os chama).

    ache agora

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

nhinkle
fonte
4
Estou familiarizado com esse diálogo e já o mencionei na pergunta: "encontre agora". Observe que enquanto o "usuário" SYSTEMestá (ou pelo menos deveria estar) lá, o TrustedInstaller não está .
Synetech
Desculpe, pensei que você estivesse se referindo ao find nowbotão no painel de controle Usuários e Grupos, que é semelhante, mas um pouco diferente. Que eu saiba, a única conta que não aparece aqui é TrustedInstaller. Isso ocorre porque a Microsoft faz todo o possível para impedir que você faça algo com a conta TrustedInstaller. Avisarei se pensar em outras maneiras de fazer isso.
nhinkle
É por isso que estou perguntando; Eu estou querendo saber o que existem outros usuários sem documentos ...
Synetech
Há um artigo do Microsoft TechNet com informações sobre a maioria deles, mas o TrustedInstaller não está lá. support.microsoft.com/kb/243330
nhinkle
1
não esqueça de configurar Locations...para o seu computador se você estiver em um domínio (mas desejar apenas o seu computador).
N611x007
4

A partir do Windows Vista, os serviços são tratados como usuários. Ou seja, um Identificador de Segurança (SID) é atribuído a todos os serviços. Isso não é específico para o serviço TrustedInstaller . Você pode visualizar o SID atribuído a qualquer serviço usando o sc showsidcomando:

USO: sc showsid [nome]

DESCRIÇÃO : Exibe a cadeia de caracteres do serviço SID correspondente a um nome arbitrário. O nome pode ser o de um serviço existente ou inexistente.

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, onde 80é atribuído à SECURITY_SERVICE_ID_BASE_RIDsub-autoridade. Além disso, essa atribuição é determinística: nenhum RID é usado, 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, vou atribuir o NT Service\Winmgmtserviço, permissão de gravação para algum arquivo:

insira a descrição da imagem aqui

O Windows sublinha o nome Winmgmt, confirmando que é uma identidade válida:

insira a descrição da imagem aqui

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

insira a descrição da imagem aqui

Isso confirma que qualquer nome de serviço pode ser usado como uma identidade de usuário. Portanto, eu não os chamaria de contas "escondidas na ceia": D

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

MS Dousti
fonte
1
Muito interessante. Obrigado pela informação!
Synetech
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 cozinho um código de exemplo (modificado da consulta MSDN GROUP).

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

código de trabalho em: http://www.cceye.com/list-system-normal-user-account-only/

user3109641
fonte
Expanda sua resposta para conter diretamente informações relevantes para a pergunta em questão. Se esse link parar de funcionar, sua resposta não será tão útil.
Mxx