Welches Windows-Konto wird verwendet, wenn niemand angemeldet ist?

25

Wenn niemand bei Windows angemeldet ist (der Anmeldebildschirm wird angezeigt), unter welchem ​​Benutzer werden die aktuellen Prozesse ausgeführt? (Die Video- / Audiotreiber, Anmeldesitzungen, jegliche Serversoftware, Eingabehilfen usw. können keine Benutzer oder Vorgänger sein, da niemand angemeldet ist. Was ist mit Prozessen, die von einem Benutzer gestartet wurden, aber weiterhin ausgeführt werden?) Nach dem Abmelden ausführen (z. B. HTTP, FTP-Server und andere Netzwerkkomponenten) Wechseln sie zum SYSTEM-Konto Wenn ein vom Benutzer gestarteter Prozess zu SYSTEM wechselt, weist dies auf eine sehr schwerwiegende Sicherheitsanfälligkeit hin. Wird der Prozess als dieser Benutzer ausgeführt weiterhin als dieser Benutzer ausgeführt werden, nachdem sie sich abgemeldet haben?

Ermöglicht Ihnen der SETHC-Hack, CMD als SYSTEM zu verwenden?

Kunal Chopra
quelle
"Benutzer wechseln" ist unter Windows eigentlich kein Schwarzweißvorgang. Ein Dienst kann die Identität mehrerer Benutzer gleichzeitig annehmen und trotzdem das ursprüngliche Konto verwenden. Dies ist nützlich für Dienste, die im Namen bestimmter Benutzer handeln müssen, z. B. authentifizierte Website-Besucher.
MSalters
3
Windows ist ein Mehrbenutzer-Betriebssystem, was bedeutet, dass verschiedene Prozesse gleichzeitig verschiedenen Benutzern gehören können . Es ist nicht so, dass wenn Sie sich erst einmal angemeldet haben, der Computer zu Ihrem Konto "wechselt".
el.pescado

Antworten:

40

Wenn niemand bei Windows angemeldet ist (der Anmeldebildschirm wird angezeigt), unter welchem ​​Benutzer werden die aktuellen Prozesse ausgeführt? (Die Video- / Audiotreiber, die Anmeldesitzung, die Serversoftware, die Eingabehilfen usw.)

Fast alle Treiber werden im Kernel- Modus ausgeführt. Sie benötigen kein Konto, es sei denn, sie starten Userspace-Prozesse. Die wenigen User-Space-Treiber laufen unter SYSTEM.

Die Anmeldesitzung kann ich momentan nicht überprüfen, aber ich bin sicher, dass sie auch SYSTEM verwendet. Sie können logonui.exe in Process Hacker oder SysInternals ProcExp sehen . In der Tat können Sie alles so sehen.

"Serversoftware", siehe Windows-Dienste unten.

Was ist mit Prozessen, die von einem Benutzer gestartet wurden, aber nach dem Abmelden weiterhin ausgeführt werden? (Zum Beispiel HTTP, FTP-Server und anderes Netzwerkmaterial). Wechseln sie zum SYSTEM-Konto?

Hier gibt es drei Arten:

  1. Einfache alte "Hintergrund" -Prozesse. Diese werden unter demselben Konto wie derjenige ausgeführt, der sie gestartet hat, und nicht nach dem Abmelden. Der Abmeldeprozess beendet sie alle.

    "HTTP-, FTP-Server und anderes Netzwerkmaterial" werden nicht als reguläre Hintergrundprozesse ausgeführt. Sie laufen als Dienste.

  2. Windows "Service" -Prozesse. Diese werden nicht direkt, sondern über den Service Manager gestartet. Standardmäßig werden Dienste als LocalSystem ausgeführt (was laut Isanae SYSTEM entspricht), obwohl für sie dedizierte Konten konfiguriert werden können.

    (Natürlich stört praktisch niemand. Sie installieren einfach XAMPP oder WampServer oder irgendeinen anderen Mist und lassen es als SYSTEM laufen, für immer ungepatcht.)

    Ich denke, dass Dienste auf neueren Windows-Systemen auch eigene SIDs haben können, aber auch hier habe ich noch nicht so viel recherchiert.

  3. Geplante Aufgaben. Diese werden vom "Task Scheduler" -Dienst "im Hintergrund" gestartet und immer unter dem in der Aufgabe konfigurierten Konto ausgeführt (normalerweise wer auch immer die Aufgabe erstellt hat).

Wenn ein vom Benutzer gestarteter Prozess zu SYSTEM wechselt, weist dies auf eine sehr schwerwiegende Sicherheitsanfälligkeit hin

Dies ist keine Sicherheitsanfälligkeit, da Sie bereits über Administratorrechte verfügen müssen , um einen Dienst zu installieren. Mit Administratorrechten können Sie praktisch alles erledigen.

(siehe auch verschiedene andere nicht verwundbare Stellen der gleichen Art)

Grawity
quelle
2
Es kann erwähnenswert sein, dass ein Großteil von IIS unter Konten mit geringeren Berechtigungen ausgeführt wird, die speziell für IIS-Prozesse erstellt wurden. (Dies würde viele Windows-HTTP-, FTP- usw. Server abdecken.) Hier finden Sie einige Details. Daher hängt es oft von den Standardeinstellungen des von Ihnen verwendeten Programms ab.
jpmc26
1
SYSTEM und lokaler Administrator sind im Wesentlichen ein und dasselbe. Sobald Sie eines haben, können Sie das andere bekommen, und das Betriebssystem setzt nur Straßensperren auf, die in erster Linie dazu gedacht sind, Fehler zu verhindern. (Hinweis: The Old New Thing ist keine offizielle Microsoft-Dokumentation.)
ein Lebenslauf vom
3
Heutzutage werden viele Dienste als NetworkService oder LocalService ausgeführt, nicht als LocalSystem.
Ben Voigt
2
Ab Windows 7 und 2008 R2 ermöglichen verwaltete Dienstkonten und virtuelle Konten das Ausführen von Diensten unter ihrer eigenen Identität, sodass Sie nicht über eine Reihe von Diensten verfügen, die LocalService / NetworkService / LocalSystem gemeinsam nutzen, wodurch der Zugriff eingeschränkt wird, wenn ein Dienst eine Sicherheitsanfälligkeit aufweist.
afrazier
2

Anmelde- und Voranmeldeprozesse werden alle als SYSTEM (auch als LocalSystem bezeichnet) ausgeführt. Eine Möglichkeit, eine Shell (z. B. eine CMD-Eingabeaufforderung) unter einigen Windows-Versionen als SYSTEM auszuführen, besteht darin, ein Eingabehilfenprogramm (z. B. den Bildschirmleser, die Bildschirmlupe oder die Bildschirmtastatur) durch eine Kopie von (oder zu ersetzen Verknüpfen Sie mit) CMD.EXE, und aktivieren Sie diese Eingabehilfenfunktion vor dem Anmelden über die Verknüpfung. Sie erhalten eine Eingabeaufforderung, obwohl keine Benutzer angemeldet sind und CMDals SYSTEM ausgeführt werden.

(Hinweis: Dies ist natürlich gefährlich, da dadurch der Windows-Anmeldevorgang umgangen werden kann. Sie sollten niemals einen Computer auf diese Weise konfigurieren und ihn dann so belassen.)

CBHacking
quelle
1
Funktioniert unter Windows 7, ersetzt sethc.exe durch cmd.exe in C: \ Windows \ System32 \
1

Sie "wechseln" zu nichts; Solche Prozesse werden niemals im aktuellen Benutzerkontext ausgeführt.
Sie gehören dem SYSTEMBenutzer.

Alle Prozesse und Dienste, die einem einzelnen Benutzer gehören, werden beim Abmelden beendet.
Das bedeutet Abmelden .

Leichtigkeit Rennen mit Monica
quelle
Ich bin nicht sicher ... Erstens habe ich einen MS Technet-Post gefunden, in dem (nicht so viel bedeutet) eine vom Personal akzeptierte Antwort angab, dass Dienste beim Abmelden nicht beendet werden. Ich bin mir auch nicht sicher, ob dies eine genaue Definition des Ausloggens im Allgemeinen ist: Ich habe mehrere Daemons unter Linux gesehen, die geblieben sind, nachdem ich einen Benutzer psals einen anderen
underscore_d
1
Das stimmt nicht. Dienste können als ein anderer Benutzer gestartet werden. Sie werden gestartet und weiterhin ausgeführt, ohne dass dieser Benutzer "angemeldet" ist. Sie starten ihre eigene Sitzung mit den Anmeldeinformationen dieses Benutzers, sodass der Benutzer tatsächlich angemeldet ist, während der Dienst ausgeführt wird, die Desktop- / Autostart-Programme usw. jedoch nicht ausgeführt werden. Dies wird von normalen Benutzern als "angemeldet" verstanden. Der Dienst wird weiterhin mit diesen Benutzeranmeldeinformationen ausgeführt und hat Zugriff auf die Dateien dieses Benutzers.
Josef
@Josef: Ihr Argument scheint sich auf "einige Leute missbrauchen den Begriff" eingeloggt "" zu beschränken. Das tatsächliche Fleisch Ihres Kommentars stimmt mit meiner Antwort überein: Dieser Benutzer gilt als angemeldet, solange auf seinem Konto Dienste / Prozesse ausgeführt werden.
Leichtigkeit Rennen mit Monica
@LightnessRacesinOrbit nein, es gibt einen tatsächlichen Unterschied. Wenn Sie mit Ihrem Konto einen Dienst erstellen, der beim Booten ausgeführt wird, wird kein Prozess gestartet, bei dem der Desktop angezeigt wird (dwm.exe oder explorer.exe werden also nicht ausgeführt), und alle Autostart-Programme werden nicht gestartet läuft usw. Wenn Sie also eine interaktive Anmeldesitzung haben, sind viel mehr Dinge aktiv als wenn nur eine Dienstsitzung läuft. Was genau "eingeloggt" ist, kann diskutiert werden. Selbst wenn ein Dienst mit Ihren Anmeldeinformationen ausgeführt wird, müssen Sie sich anmelden, um Windows selbst zu verwenden!
Josef
1
Nun, "solche Prozesse laufen niemals im aktuellen Benutzerkontext" ist immer noch falsch. Dienste werden unter dem für sie festgelegten Benutzerkontext ausgeführt. Bei integrierten Windows-Diensten ist dies eines der Systemkonten. Bei anderen Diensten kann es sich um ein beliebiges Konto handeln. Insbesondere Server-Software sollte ein neues Benutzerkonto erstellen und mit diesen Anmeldeinformationen ausgeführt werden.
Josef