Liste der versteckten / virtuellen Windows-Benutzerkonten

44

Ich versuche einen Weg zu finden, um eine umfassende Liste von Benutzerkonten auf einem Windows 7-System zu erhalten, einschließlich versteckter. Das Dialogfeld " Benutzerkonten " ( >control userpasswords2) zeigt nur die normalen Benutzerkonten an, und selbst der Editor " Lokale Benutzer und Gruppen" zeigt nur normale Benutzerkonten und standardmäßig ausgeblendete / deaktivierte wie Administrator und Gast an. Das Dialogfeld " Benutzer oder Gruppen auswählen" verfügt über eine Schaltfläche " Jetzt suchen", die Benutzer und Gruppen kombiniert, aber leider den gleichen Inhalt wie die LUG hat.

Ich suche nach einer umfassenderen Liste, die "versteckte" / virtuelle Benutzerkonten wie TrustedInstaller enthält (oder genauer gesagt, NT Service \ TrustedInstaller - beachten Sie die verschiedenen "Domänen").

Ich habe es überprüft HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList, aber der SpecialAccountsSchlüssel existiert nicht.

Ich habe auch überprüft HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList, und obwohl die Konten SystemProfile, LocalService und NetworkService aufgeführt sind, gibt es keine anderen Konten (wie TrustedInstaller und seine Art).

Insbesondere TrustedInstaller ist etwas verwirrend, da es sich um einen Benutzer, einen Dienst und eine ausführbare Datei handelt. Ich verwende es als Beispiel, weil es "super versteckt" ist, da es in keiner Art von Benutzerliste aufgeführt zu sein scheint. (Aus Versuchsgründen habe ich versucht, in der gesamten Registrierung nach "trustedinstaller" zu suchen, um festzustellen, ob ich einen Ort gefunden habe, an dem er als Benutzer aufgeführt ist, aber keinen.)

Um es klar auszudrücken , suche ich nach einer Liste aller Konten, die in einem Benutzereingabefeld verwendet werden können, z. B. in Berechtigungsdialogen oder als runasArgument.

Synetech
quelle

Antworten:

43

Ich glaube nicht, dass es eine endgültige Liste aller möglichen Konten gibt.

Es gibt verschiedene Arten von Namen, die Sie im Benutzereingabefeld verwenden können, z. B. in Berechtigungsdialogen.

Als Erstes sind Standard-Win32_Accounts aufgeführt. Um eine vollständige Liste zu erhalten, öffnen Sie eine PowerShell-Sitzung und führen Sie Folgendes aus:

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

Dies sind die üblichen Benutzer, Gruppen und die eingebauten Konten.

Seit Vista gibt es eine neue Klasse von Konten, die als virtuelle Konten bezeichnet werden, da sie in den üblichen Verwaltungstools nicht angezeigt werden. Es gibt manchmal auch so genannte Dienstkonten, und es gibt mindestens drei verschiedene Arten davon:

  • Windows-Dienstkonten

Da Vista jedem Windows-Dienst ein virtuelles Konto zugeordnet ist, wird es auch unter einem anderen Benutzerkonto ausgeführt und auch wenn es überhaupt nicht ausgeführt wird. Es sieht aus wieNT Service\MSSQLSERVER

So rufen Sie eine Liste dieser Anwendungen ab:

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

Jeder IIS-Anwendungspool, der unter ApplicationPoolIdentity ausgeführt wird, wird unter einem speziellen Konto mit dem Namen ausgeführt IIS APPPOOL\NameOfThePool

Vorausgesetzt, Sie haben die IIS-Verwaltungsskripttools installiert, können Sie Folgendes ausführen:

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

Unter Server 2008+ und Windows 8+ mit Hyper-V erstellt jede virtuelle Maschine ein eigenes virtuelles Konto. Dies sieht folgendermaßen aus: NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5

um eine liste zu bekommen benutze:

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

Obwohl diese Konten im Berechtigungsdialogfeld nicht akzeptiert werden, können Sie sie mit icacls.exe zum Festlegen von Berechtigungen verwenden.

Es gibt auch eine spezielle Gruppe NT Virtual Machine\Virtual Machines, die woanders nicht auftaucht. Alle Konten der virtuellen Maschine sind Mitglieder dieser Gruppe, sodass Sie hiermit Berechtigungen für alle VM-Dateien festlegen können.

Diese Namen sind sprachspezifisch, z. B. in Deutsch NT Virtual Machine\Virtuelle Computer

  • Desktop Window Manager

Der Prozess dvm.exe (Desktop Window Manager) wird unter einem Benutzer ausgeführt Windows Manager\DWM-1

Sie können diesen Benutzertyp auch in den Berechtigungsdialogen nicht verwenden. Es ist auch nicht wirklich möglich, diese aufzuzählen, da für jede 'Desktop-Sitzung' eine vorhanden ist. Wenn Sie also zwei RDP-Sitzungen verwenden, haben Sie auch DWM-2und DWM-3zusätzlich zu DVM-1. Es gibt also so viele Desktops wie verfügbar sind.

  • Computernamen

In bestimmten Fällen können Sie im Berechtigungsdialog auch Computernamen verwenden, normalerweise wenn Sie Teil einer Active Directory-Domäne sind.

  • Virtuelle Windows-Remotebenutzer

Wenn Sie PowerShell und 'JEA (Just enough Administration)' verwenden und eine Verbindung zu einem Server mit einer PS-Remotesitzung herstellen, wird möglicherweise ein temporärer virtueller Benutzer erstellt.

Diese haben folgendes Format:

winrm virtual users\winrm va_x_computername_username

und eine SID, die mit beginnt S-1-5-94-

Das 'x' ist eine ganze Zahl.

Diese Konten können beim Zuweisen von NTFS-Berechtigungen verwendet werden, aber ich kann nicht alle diese möglichen virtuellen Benutzer auflisten.

Während einer JEA-Sitzung können whoamiSie mit den aktuellen Kontonamen ermitteln.

  • schließlich:

Sogar diese Listen geben Ihnen nicht jeden möglichen Account.

Sie können beispielsweise einen Anwendungspool erstellen und FooBarPooldann wieder löschen. Sie können ihn weiterhin IIS APPPOOL\FooBarPoolim Berechtigungsdialog verwenden, sodass irgendwo eine interne Liste vorhanden sein muss.

Peter Hahndorf
quelle
Sehr schön! Die erste Abfrage zurückgegeben spezielle „Benutzer“ wie everyone, restrictedusw. und Ihre Diskussion über NT Service\*Konten erklärt andere wie TrustedInstaller. Sie haben sich auch mit exotischeren Sonderfällen befasst, aber es sieht so aus, als wären alle gängigen Fälle berücksichtigt.
Synetech
@Ahmed - welche Benutzer? Wenn Sie ein Problem haben, sollten Sie eine neue Frage erstellen und Ihr Problem dort detailliert beschreiben. Dies ist nicht der richtige Ort dafür.
Peter Hahndorf
Entschuldigung, ich habe mein Kommentar gelöscht. Hier ist meine Frage, wenn neugierig.
Ahmed
3
Hallo, der PowerShell-Code zum Auflisten von IIS-App-Pool-Benutzern hat bei mir nicht funktioniert, sodass ich Get-WebConfiguration system.applicationHost/applicationPools/addstattdessen letztendlich verwendet habe .
Tahir Hassan
1
Gute Antwort. Weitere Informationen von MS zu Dienstkonten finden
Sie
10

Dies liegt daran, dass TrustedInstaller ein Dienst und kein "Benutzer" -Objekt ist. Mit Vista sind Dienste jetzt Sicherheitsprinzipale und können Berechtigungen zugewiesen werden.

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

surfasb
quelle
Ja; Das ist genau das, wovon ich rede. Ich suche nach einer umfassenden Liste von Dingen, denen Berechtigungen erteilt werden können, sei es für Benutzer, Dienste oder für Sie. Gibt es eine vollständige Liste der "Sicherheitsprinzipale"?
Synetech
Ich glaube nicht, dass es eine Möglichkeit gibt, auf die ACLs zuzugreifen und eine KOMPLETTE Liste der Sicherheitsprinzipale zu finden. Ich bin mir nicht sicher, warum Sie überhaupt eine vollständige Liste der Sicherheitsprinzipale wünschen. Technisch gesehen wird das Installationsprogramm für Windows-Module (der Dienstname von TRUSTEDINSTALLER) unter dem Konto Local SYSTEM ausgeführt.
Surfasb
4
> Ich bin mir nicht sicher, warum Sie überhaupt eine vollständige Liste der Sicherheitsprinzipale benötigen. Neugierde. (Hat das heutzutage noch jemand ...?)
Synetech
Sie können diese Neugierde auf die MSDN-Bibliothek hinweisen.
Surfasb
7
  1. Gehen Sie zu einer beliebigen Datei auf Ihrer Festplatte, klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften aus.
  2. Gehen Sie zur Registerkarte Sicherheit und klicken Sie auf Edit

    Sicherheitseinstellungen bearbeiten

  3. Klicken Add...
  4. Klicken Advanced...

    Wählen Sie Benutzer oder Gruppen aus

  5. Klicken Sie auf Object Types...und deaktivieren Sie und klicken Sie Groupsdann aufOK

    Objekttypen

  6. Klicken Sie auf Find Now. Dies listet alle regulären Benutzer und Benutzer des integrierten Systems auf ("integrierte Sicherheitsprinzipien", wie Windows sie nennt).

    jetzt finden

Beachten Sie, dass nicht alle auf dieser Seite angezeigten Konten in einem ausführenden Befehl verwendet werden können, obwohl sie alle in einem Berechtigungsdialogfeld verwendet werden können.

nhinkle
quelle
4
Ich kenne diesen Dialog und habe ihn bereits in der Frage „Jetzt finden“ erwähnt. Beachten Sie, dass SYSTEMTrustedInstaller dies nicht tut , solange sich der Benutzer dort befindet (oder zumindest befinden sollte) .
Synetech
Entschuldigung, ich dachte, Sie beziehen sich auf die find nowSchaltfläche in der Systemsteuerung "Benutzer und Gruppen", die ähnlich, aber leicht unterschiedlich ist. Meines Wissens ist das einzige Konto, das hier nicht angezeigt wird, TrustedInstaller. Dies liegt daran, dass Microsoft große Anstrengungen unternimmt, um zu verhindern, dass Sie jemals mit dem TrustedInstaller-Konto etwas unternehmen. Ich werde Sie wissen lassen, ob mir andere Möglichkeiten dazu einfallen.
nhinkle
Deshalb frage ich; Ich frage mich, welche anderen undokumentierten Benutzer existieren ...
Synetech
Es gibt einen Microsoft TechNet-Artikel mit Informationen zu den meisten von ihnen, TrustedInstaller ist dort jedoch nicht verfügbar. support.microsoft.com/kb/243330
nhinkle
1
Vergessen Sie nicht Locations..., Ihren Computer einzurichten , wenn Sie sich in einer Domäne befinden (aber nur Ihren Computer möchten).
n611x007
4

Ab Windows Vista werden Dienste als Benutzer behandelt. Das heißt, jedem Dienst wird eine Sicherheitskennung (SID) zugewiesen. Dies gilt nicht speziell für den TrustedInstaller- Dienst. Sie können die jedem Dienst zugewiesene SID mit dem folgenden sc showsidBefehl anzeigen :

NUTZUNG: sc showsid [name]

BESCHREIBUNG : Zeigt die Service-SID-Zeichenfolge an, die einem beliebigen Namen entspricht. Der Name kann der eines vorhandenen oder nicht vorhandenen Dienstes sein.

Beachten Sie, dass der Dienst nicht auf dem System vorhanden sein muss. Beispiele:

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

oder für den Dienst Windows Management Instrumentation ( Winmgmt):

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

und zum Schluss für einen gefälschten Service:

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

Beachten Sie, dass alle SIDs mit " S-1-5-80where" beginnen , wobei " sub-authority" 80zugewiesen ist SECURITY_SERVICE_ID_BASE_RID. Darüber hinaus ist diese Zuweisung deterministisch: Es werden keine RIDs verwendet, und die SID ist auf allen Systemen gleich (weitere Informationen finden Sie in den Referenzen am Ende dieses Beitrags).

Als Beispiel werde ich den NT Service\WinmgmtDienst zuweisen , Schreibberechtigung für eine Datei:

Bildbeschreibung hier eingeben

Windows unterstreicht den Namen Winmgmtund bestätigt, dass es sich um eine gültige Identität handelt:

Bildbeschreibung hier eingeben

Klicken Sie nun auf OK und weisen Sie die Schreibberechtigung zu:

Bildbeschreibung hier eingeben

Dies bestätigt, dass jeder Dienstname als Benutzeridentität verwendet werden kann. Daher würde ich sie nicht als "Abendessen-versteckte" Konten bezeichnen: D

Weitere Informationen finden Sie in den folgenden Artikeln:

MS Dousti
quelle
1
Sehr interessant. Danke für die Auskunft!
Synetech
1

Sie können die NetQueryDisplayInformation-API verwenden und mit der bitweisen Überprüfung des Benutzerinformationsflags kombinieren. Ich habe genau die gleiche Anforderung, also koche ich einen Beispielcode (geändert von der MSDN GROUP-Abfrage).

Das von mir verwendete Benutzer-Flag ist UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> um sicherzustellen, dass wir ein Benutzerkonto erhalten, ist für das Benutzerkonto immer ein Kennwort erforderlich.

Arbeitscode unter: http://www.cceye.com/list-system-normal-user-account-only/

user3109641
quelle
Bitte erweitern Sie Ihre Antwort, um relevante Informationen zur vorliegenden Frage zu erhalten. Wenn dieser Link jemals nicht mehr funktioniert, ist Ihre Antwort nicht so nützlich.
Mxx