Ja, es wird mit erhöhten Berechtigungen ausgeführt.
Einfacher Test:
Sie können dies ganz einfach testen, indem Sie eine erhöhte und eine nicht erhöhte Eingabeaufforderung öffnen. Führen Sie den Befehl notepad.exe
in beiden Fällen aus und versuchen Sie, eine leere Textdatei in zu speichern C:\Windows
. Man wird speichern, man wird einen Berechtigungsfehler auslösen.
Gründlicher Test:
Wenn dies nicht ausreicht, um es für Sie zu bestätigen (es hat mich nicht wirklich zufriedengestellt), können Sie AccessChk von SysInternals verwenden. Sie müssen dies an einer Eingabeaufforderung mit erhöhten Rechten ausführen.
Beginnen wir mit dem Auschecken der beiden laufenden Notepad-Prozesse:
Notizblock: ( accesschk.exe -v -p notepad
)
[11140] notepad.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[11004] notepad.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Einer wird unter meinem Domänenbenutzernamen ausgeführt, der andere unter der integrierten Gruppe Administratoren. Es hat auch ein hohes Pflichtniveau . Sie können auch mit dem -f
Flag eine Aufschlüsselung der Berechtigungen und Token ausführen .
MSIExec- und MSI-Dateien
Ich dachte, die Dinge könnten beim Laufen etwas komplizierter werden msiexec
. Ich habe ein eigenständiges Google Chrome-Installationsprogramm, das zum Testen praktisch war.
msiexec.exe Starten des Chrome-Installationsprogramms über eine Eingabeaufforderung mit erhöhten Rechten:
D:\Users\tannerf>accesschk.exe -p msiexec.exe
[10540] msiexec.exe
RW BUILTIN\Administrators
RW NT AUTHORITY\SYSTEM
chrome_installer.exe von MSI erzeugt:
D:\Users\tannerf>accesschk.exe -p chrome_installer.exe
[5552] chrome_installer.exe
NT AUTHORITY\SYSTEM
OWNER RIGHTS
RW NT SERVICE\msiserver
Nicht mehr so geschnitten und trocken! Es sieht so aus, als ob ein chrome_installer.exe
Prozess über den MSIServer-Dienst ausgeführt wurde.
Ich frage mich daher, wie sich andere Installer verhalten könnten, und habe daher eine Evernote.msi ausgeführt, die ich zur Hand hatte:
Erhöhte msiexec.exe startet ein Evernote-Installationsprogramm:
[6916] msiexec.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4652] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Interessant; Es gibt eine msiexec.exe, die diesmal unter Systemebene ausgeführt wird. Ich habe Process Monitor verwendet, um festzustellen, dass das tatsächlich angezeigte Installationsfenster vom msiexec-Prozess auf Systemebene stammt. Das Beenden der hohen obligatorischen Stufe hat auch den Prozess auf Systemebene beendet.
Nicht erhöhte msiexec.exe startet ein Evernote-Installationsprogramm:
[7472] msiexec.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4404] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Es sieht so aus, als würde Evernote in beiden Fällen Zugriff auf Systemebene erhalten. Ein Doppelklick auf das Installationsprogramm führt zum gleichen Ergebnis.
Fazit:
Ich denke, es ist ziemlich gut demonstriert, dass ein Prozess Berechtigungen erbt, sofern nicht anders angegeben. Dies garantiert nicht, msiexec SomeProgram.msi
dass alle Prozessprozesse mit einem hohen Pflichtniveau ausgeführt werden. Es kann unter Systemebene oder unter MSIServer ausgeführt werden. Ihr Kilometerstand kann variieren, und ich wäre nicht überrascht, wenn viele Fälle auftreten, in denen diese Regeln "gebrochen" zu sein scheinen.
C:\Windows
obwohl Notepad von der erhöhten cmd.exe aus gestartet wurde. Gibt es eine Möglichkeit, die Regel "soll vom Elternteil erben" zu brechen?Standardmäßig erben Windows-Prozesse ihren Sicherheitskontext vom übergeordneten Element:
MSDN zu Prozesssicherheit und Zugriffsrechten
Es ist jedoch möglich, Prozesse mit weniger Berechtigungen zu erzeugen:
Wikipedia zur obligatorischen Integritätskontrolle in Bezug auf diese andere MSDN-Seite , die ebenfalls hier erwähnt wird . In einer anderen Präsentation wird auch die Prozessvererbung erwähnt.
Ich glaube jedoch, dass cmd.exe untergeordnete Prozesse mit der größtmöglichen Vererbung von Berechtigungen starten wird, wie die Tests und Antworten von @ Tanner zeigen.
quelle
Es gibt zwei Möglichkeiten, die Berechtigungen des ausgeführten Befehls aufzuheben:
runas /trustlevel:0x20000 "msiexec SomeProgram.msi"
(Ausführenrunas /showtrustlevels
, um zu erfahren, dass dies0x20000
die Standard-Vertrauensstufe für Benutzer ist - dies funktioniert sogar zum Installieren / Ausführen von Programmen, für die erhöhte Berechtigungen "erforderlich" sind - ohne sie tatsächlich zu gewähren, wenn sie als Administrator ausgeführt werden. Dies besteht Tanners Notizblock-Test ) gemäß dieser SU-Antwortpsexec -l -d msiexec SomeProgram.msi
gemäß dieser SU-Antwort (vielleicht sind auch einige "" erforderlich, ich habe dies nicht getestet, da esrunas
für mich gut genug funktioniert)quelle