Elenco di account utente Windows nascosti / virtuali


44

Sto cercando di trovare un modo per ottenere un elenco completo di account utente su un sistema Windows 7, inclusi quelli nascosti. La finestra di dialogo Account utente ( >control userpasswords2) mostra solo gli account utente normali e anche l' editor Utenti e gruppi locali mostra solo account utente normali e standard nascosti / disabilitati come Amministratore e Ospite. La finestra di dialogo Seleziona utenti o gruppi ha un pulsante Trova che combina utenti e gruppi, ma purtroppo ha gli stessi contenuti del LUG.

Sto cercando un elenco più completo che includa account utente "super-nascosti" / virtuali come TrustedInstaller (o, per essere più precisi, Servizio NT \ TrustedInstaller —visto il diverso "dominio").

Ho controllato HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, ma la SpecialAccountschiave non esiste.

Ho anche controllato HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, e sebbene abbia gli account SystemProfile, LocalService e NetworkService elencati, non ne ha altri (come TrustedInstaller e simili).

TrustedInstaller in particolare è un po 'confuso perché è un utente, un servizio e un file eseguibile. Lo sto usando come esempio perché è "super nascosto" in quanto non sembra essere elencato in alcun tipo di elenco utenti. (Come esperimento, ho provato a cercare "trustedinstaller" in tutto il registro per vedere se riuscivo a trovare un posto in cui è elencato come utente, ma non ne

ho trovato nessuno.) Per essere chiari, quello che sto cercando è un elenco di tutti account che possono essere utilizzati in un campo di input dell'utente, ad esempio nelle finestre di dialogo delle autorizzazioni o come runasargomento.


Risposte:


43

Non penso che ci sia un elenco definitivo di tutti i possibili account.

Esistono diversi tipi di nomi che è possibile utilizzare nel campo di immissione dell'utente, ad esempio nelle finestre di dialogo delle autorizzazioni.

I primi sono Win32_Accounts standard, per ottenere un elenco completo aprire una sessione di PowerShell ed eseguire:

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

Questi sono i soliti utenti, gruppi e account integrati.

Da Vista esiste una nuova classe di account, denominati account virtuali, perché non vengono visualizzati nei soliti strumenti di gestione. A volte ci sono anche chiamati account di servizio e ci sono almeno tre diversi tipi di questi:

  • Account di servizio di Windows

Poiché Vista a ogni servizio Windows ha un account virtuale associato, anche se funziona con un altro account utente e anche se non funziona affatto. SembraNT Service\MSSQLSERVER

Per ottenere un elenco di quelli utilizzati:

get-service | foreach {Write-Host NT Service\$($_.Name)}
  • Pool di applicazioni IIS

Ogni pool di applicazioni IIS che viene eseguito in ApplicationPoolIdentity viene eseguito con un account speciale chiamato IIS APPPOOL\NameOfThePool

Supponendo che siano installati gli strumenti di scripting di gestione IIS, è possibile eseguire:

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

Su Server 2008+ e Windows 8+ hai Hyper-V, ogni macchina virtuale crea il proprio account virtuale, che assomiglia a: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

per ottenere un elenco utilizzare:

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

Sebbene questi account non siano accettati nella finestra di dialogo delle autorizzazioni, è possibile utilizzarli con icacls.exe per impostare le autorizzazioni.

C'è anche un gruppo speciale NT Virtual Machine\Virtual Machines, che non si presenta altrove. Tutti gli account delle macchine virtuali sono membri di questo gruppo, quindi è possibile utilizzarlo per impostare le autorizzazioni per tutti i file VM.

Questi nomi sono specifici della lingua, ad esempio in tedesco è chiamato NT Virtual Machine\Virtuelle Computer

  • Desktop Window Manager

Il processo dvm.exe (Desktop Window Manager) viene eseguito da un utente Windows Manager\DWM-1

Ancora una volta non è possibile utilizzare questo tipo di utenti nelle finestre di dialogo delle autorizzazioni. Non è davvero possibile elencarli neanche perché ne esiste uno per ogni "sessione desktop", quindi quando si usano due sessioni RDP, si ha anche DWM-2e DWM-3in aggiunta DVM-1. Quindi ce ne sono tanti quanti sono i desktop disponibili.

  • Nomi di computer

In alcuni casi è anche possibile utilizzare i nomi dei computer nella finestra di dialogo delle autorizzazioni, in genere quando si fa parte di un dominio di Active Directory.

  • Utenti virtuali remoti di Windows

Quando si utilizzano PowerShell e "JEA (amministrazione sufficiente)" e ci si connette a un server con una sessione remota PS, è possibile creare un utente virtuale temporaneo.

questi hanno il seguente formato:

winrm virtual users\winrm va_x_computername_username

e un SID che inizia con S-1-5-94-

la 'x' è un numero intero.

Questi account possono essere utilizzati durante l'assegnazione delle autorizzazioni NTFS, ma non so come elencare tutti questi possibili utenti virtuali.

Durante una sessione JEA è possibile utilizzare whoamiper scoprire il nome dell'account corrente.

  • finalmente:

Anche queste liste non ti danno tutti i possibili account.

Ad esempio, è possibile creare un pool di applicazioni, FooBarPoolquindi eliminarlo di nuovo, è ancora possibile utilizzarlo IIS APPPOOL\FooBarPoolnella finestra di dialogo delle autorizzazioni, pertanto è necessario che sia presente un elenco interno da qualche parte.


Molto bella! La prima query restituito “utenti” speciali come everyone, restrictede così via, e la vostra discussione dei NT Service\*conti spiega altri come TrustedInstaller. Hai anche coperto casi speciali più esotici, ma sembra che tutti quelli comuni siano presi in considerazione.
Synetech,

@Ahmed - quali utenti? Se hai un problema, dovresti creare una nuova domanda e descriverlo dettagliatamente lì. Questo non è il posto giusto.
Peter Hahndorf,

Mi scuso, ho cancellato il mio commento. Ecco la mia domanda se curioso.
Ahmed,

3
Salve, il codice PowerShell per elencare gli utenti del pool di app IIS non ha funzionato per me, quindi ho finito per usarlo Get-WebConfiguration system.applicationHost/applicationPools/add.
Tahir Hassan,

1
Bella risposta. Ci sono ulteriori informazioni da MS sugli account di servizio qui: docs.microsoft.com/en-us/windows/security/identity-protection/…
CJBS

10

Questo perché TrustedInstaller è un servizio e non un oggetto "utente". Con Vista, i servizi sono ora entità di sicurezza e possono essere assegnati autorizzazioni.

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


Sì; questo è esattamente ciò di cui sto parlando. Sto cercando un elenco completo di cose che possono essere concesse autorizzazioni, che siano utenti, servizi o che cosa hai. Esiste un elenco completo di "entità di sicurezza"?
Synetech,

Non penso che ci sia un modo per attingere agli ACL e trovare un elenco COMPLETO di entità di sicurezza. Non sono sicuro del motivo per cui in primo luogo desideri un elenco completo di entità di sicurezza. Tecnicamente, il programma di installazione dei moduli di Windows (nome del servizio TRUSTEDINSTALLER) viene eseguito con l'account di SISTEMA locale.
surfasb,

4
> In primo luogo non sono sicuro del motivo per cui si desidera un elenco completo di entità di sicurezza. Curiosità. (Qualcuno ce l'ha più in questi giorni ...?)
Synetech,

Puoi puntare quella curiosità verso la libreria MSDN.
Surfasb,

7
  1. Vai a qualsiasi file sul tuo disco rigido, fai clic con il pulsante destro del mouse e seleziona Proprietà.
  2. Vai alla scheda sicurezza e fai clic Edit

    modificare le impostazioni di sicurezza

  3. Clic Add...
  4. Clic Advanced...

    seleziona utenti o gruppi

  5. Fare clic Object Types...e deselezionare Groups, quindi fare clic suOK

    tipi di oggetti

  6. Fare clic Find Now. Questo elencherà tutti gli utenti regolari e gli utenti di sistema integrati ("principi di sicurezza integrati", come li chiamano Windows).

    trova adesso

Si noti che non tutti gli account visualizzati in questa pagina possono essere utilizzati in un comando Run-As, sebbene possano essere utilizzati tutti in una finestra di dialogo delle autorizzazioni.


4
Ho familiarità con quella finestra di dialogo e l'ho già menzionata nella domanda: "trova ora". Si noti che mentre "l'utente" SYSTEMè (o almeno dovrebbe esserlo) lì, TrustedInstaller non lo è .
Synetech

Spiacenti, pensavo che ti riferissi al find nowpulsante nel pannello di controllo Utenti e gruppi, che è simile ma leggermente diverso. Per quanto ne sappia, l'unico account che non appare qui è TrustedInstaller. Questo perché Microsoft fa di tutto per impedirti di fare qualsiasi cosa con / con l'account TrustedInstaller. Ti farò sapere se penso ad altri modi per farlo.
Pensa

Ecco perché lo sto chiedendo; Mi chiedo quali altri utenti non documentati esistano ...
Synetech,

C'è un articolo di Microsoft TechNet con informazioni sulla maggior parte di essi, ma TrustedInstaller non è presente. support.microsoft.com/kb/243330
nhinkle

1
non dimenticare di impostare Locations...sul tuo computer se sei in un dominio (ma vuoi solo il tuo computer).
n611x007,

4

Da Windows Vista in poi, i servizi vengono trattati come utenti. Cioè, un identificatore di sicurezza (SID) è assegnato a ogni servizio. Questo non è specifico del servizio TrustedInstaller . È possibile visualizzare il SID assegnato a qualsiasi servizio utilizzando il sc showsidcomando:

USO: sc showsid [nome]

DESCRIPTION : Visualizza la stringa SID del servizio corrispondente a un nome arbitrario. Il nome può essere quello di un servizio esistente o inesistente.

Si noti che non è necessario che il servizio esista sul sistema. Esempi:

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

oppure, per il servizio Strumentazione gestione Windows ( Winmgmt):

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

e, infine, per un servizio falso:

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

Si noti che tutti i SID iniziano con S-1-5-80, dove 80è assegnato alla SECURITY_SERVICE_ID_BASE_RIDsotto-autorità. Inoltre, questo incarico è deterministico: non vengono utilizzati RID e il SID sarà lo stesso su tutti i sistemi (vedere i riferimenti alla fine di questo post per ulteriori informazioni).

Ad esempio, assegnerò il NT Service\Winmgmtservizio, scriverò l'autorizzazione per alcuni file:

inserisci qui la descrizione dell'immagine

Windows sottolinea il nome Winmgmt, confermando che si tratta di un'identità valida:

inserisci qui la descrizione dell'immagine

Ora, fai clic su OK, quindi assegna l'autorizzazione di scrittura:

inserisci qui la descrizione dell'immagine

Ciò conferma che qualsiasi nome di servizio può essere utilizzato come identità utente. Pertanto, non li definirei account "nascosti a cena": D

Per ulteriori informazioni, leggi i seguenti articoli:


1
Molto interessante. Grazie per l'informazione!
Synetech,

1

È possibile utilizzare l'API NetQueryDisplayInformation, combinare con controllo bit a bit sul flag informazioni utente. Ho esattamente gli stessi requisiti, quindi cucino un codice di esempio (modificato dalla query MSDN GROUP).

I flag utente che ho usato sono UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> questo assicura che otteniamo un account Human, l'account Human richiede sempre una password.

codice di lavoro su: http://www.cceye.com/list-system-normal-user-account-only/


Espandi la tua risposta per contenere direttamente le informazioni pertinenti alla domanda in corso. Se questo link smette di funzionare, la tua risposta non sarà altrettanto utile.
Mxx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.