Ich verwende derzeit Vista und möchte dieselben Vorgänge wie mein Windows-Dienst manuell ausführen. Da der Windows-Dienst unter dem lokalen Systemkonto ausgeführt wird, möchte ich dasselbe Verhalten emulieren. Grundsätzlich möchte ich CMD.EXE unter dem lokalen Systemkonto ausführen.
Ich habe online Informationen gefunden, die darauf hindeuten, die CMD.exe mit dem Befehl DOS Task Scheduler AT zu starten, aber ich habe eine Vista-Warnung erhalten, dass "diese Aufgabe aufgrund von Sicherheitsverbesserungen zu dem Zeitpunkt ausgeführt wird, außer aber nicht interaktiv". Hier ist ein Beispielbefehl:
AT 12:00 /interactive cmd.exe
Eine andere Lösung schlug vor, einen sekundären Windows-Dienst über das Dienststeuerelement (sc.exe) zu erstellen, das lediglich CMD.exe startet.
C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA
In diesem Fall kann der Dienst nicht gestartet werden und es wird die folgende Fehlermeldung angezeigt:
FAILED 1053: The service did not respond to the start or control request in a timely fashion.
Der dritte Vorschlag war, CMD.exe über eine geplante Aufgabe zu starten. Obwohl Sie geplante Aufgaben unter verschiedenen Konten ausführen können, glaube ich nicht, dass das lokale Systemkonto eines davon ist.
Ich habe auch versucht, die Runas zu verwenden, denke aber, dass ich auf dieselbe Einschränkung stoße wie beim Ausführen einer geplanten Aufgabe.
Bisher ist jeder meiner Versuche gescheitert. Irgendwelche Vorschläge?
quelle
-d
hinzugefügt, so dass ich weiterhin die Konsole verwenden kann, von der ich es gestartet habe.cd \
. Dadurch werden Sie in das Stammverzeichnis Ihres Laufwerks verschoben, in dem sich psexec befindet.psexec -i -s cmd.exe
Dabei steht -i für interaktiv und -s für Systemkonto.whoami
; es wird "System" sagenstart explorer.exe
.Benutzer, die versuchen, Systemdateien in einem geschützten Windows-Verzeichnis umzubenennen oder zu löschen, sollten wissen, dass alle Windows-Dateien durch DACLS geschützt sind. Beim Umbenennen einer Datei müssen Sie den Eigentümer ändern und TrustedInstaller ersetzen, dem die Datei gehört, und jeden Benutzer zu einem Benutzer machen, der gehört zur Administratorgruppe als Eigentümer der Datei und versucht dann, sie nach dem Ändern der Berechtigung umzubenennen. Sie funktioniert. Während Sie Windows Explorer mit Kernel-Berechtigungen ausführen, sind Sie aus Sicherheitsgründen hinsichtlich des Netzwerkzugriffs etwas eingeschränkt und es handelt sich immer noch um ein Forschungsthema für mich, um wieder Zugang zu bekommen
quelle
Hier wurde eine Antwort gefunden, die das Problem durch Hinzufügen von / k start zum Parameter binPath zu lösen scheint. Das würde dir also geben:
sc create testsvc binpath= "cmd /K start" type= own type= interact
Ben sagte jedoch, dass dies für ihn nicht funktioniert habe und als ich es unter Windows Server 2008 ausprobierte, wurde der Prozess cmd.exe unter dem lokalen System erstellt, aber er war nicht interaktiv (ich konnte das Fenster nicht sehen).
Ich glaube nicht, dass es einen einfachen Weg gibt, das zu tun, was Sie fragen, aber ich frage mich, warum Sie das überhaupt tun? Versuchen Sie nur zu sehen, was passiert, wenn Sie Ihren Dienst ausführen? Scheint, als könnten Sie einfach die Protokollierung verwenden, um festzustellen, was passiert, anstatt die exe als lokales System ausführen zu müssen ...
quelle
HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices
muss 0 (Standard 1) festgelegt werdenIch würde empfehlen, dass Sie den Mindestberechtigungssatz erarbeiten, den Ihr Dienst wirklich benötigt, und diesen verwenden, anstatt den viel zu privilegierten lokalen Systemkontext. Zum Beispiel Local Service .
Interaktive Dienste funktionieren unter Windows Vista und Windows Server 2008 aufgrund der Isolation von Sitzung 0 nicht mehr - oder zeigen zumindest keine Benutzeroberfläche mehr an .
quelle
Verwenden von Secure Desktop zum Ausführen
cmd.exe
alssystem
Wir können den Kernelzugriff
CMD
in Windows XP / Vista / 7 / 8.1 einfach durch Anhängen eines Debuggers erhalten:Führen Sie
CMD
als AdministratorVerwenden Sie dann diesen Befehl in Erhöht:
Führen Sie dann
osk
(onscreenkeyboard) aus. Es wird immer noch nicht mit Systemintegritätsstufe ausgeführt, wenn Sie den Prozess-Explorer überprüfen. Wenn Sie jedoch OSK in einer Servicesitzung verwenden können, wird es als ausgeführtNT Authority\SYSTEM
Ich hatte also die Idee, dass Sie es auf Secure Desktop ausführen müssen.
Starten Sie eine beliebige Datei als Administrator. Wenn UAC-Eingabeaufforderungen angezeigt werden, drücken Sie einfach Win+ Uund starten Sie
OSK
und es wirdCMD
stattdessen gestartet . Gebenwhoami
Sie dann in der erhöhten Eingabeaufforderung ein und Sie erhaltenNT Authority\System
. Danach können Sie den Explorer über die Systembefehlsshell starten und das Systemprofil verwenden. Aus Sicherheitsgründen sind Sie jedoch etwas eingeschränkt, was Sie über SYSTEM-Berechtigungen im Netzwerk tun können. Ich werde später weitere Erklärungen hinzufügen, wie ich es vor einem Jahr entdeckt habe.Eine kurze Erklärung, wie dies geschieht
Wird
Cmd.exe
unter einem lokalen Systemkonto ohne Verwendung ausgeführtPsExec
. Diese Methode führt die zuvor entdeckte Debugger-Trap-Technik aus. Diese Technik hat ihre eigenen Vorteile. Sie kann verwendet werden, um einen schlauen / böswilligen Wurm oder Malware im Debugger abzufangen und stattdessen eine andere Exe auszuführen, um die Ausbreitung oder den vorübergehenden Schaden zu stoppen. Hier fängt dieser Registrierungsschlüssel die Bildschirmtastatur im nativen Windows-Debugger ein und führt stattdessen cmd.exe aus, aber cmd wird weiterhin mit den Berechtigungen für angemeldete Benutzer ausgeführt. Wenn wir jedoch cmd in Sitzung 0 ausführen, können wir die Systemshell erhalten. Deshalb fügen wir hier eine weitere Idee hinzu, die wir auf dem sicheren Desktop überspannen. Denken Sie daran, dass sichere Desktops in Sitzung 0 unter dem Systemkonto ausgeführt werden und wir die System-Shell erhalten. Wenn Sie also etwas als erhöht ausführen, müssen Sie die UAC-Eingabeaufforderung und die UAC-Eingabeaufforderungen auf einem dunklen, nicht interaktiven Desktop beantworten und sobald Sie es sehen, müssen Sie Win+ drückenU und dann auswählenOSK
Sie werdenCMD.exe
unter den lokalen Systemberechtigungen ausgeführt. Es gibt noch mehr Möglichkeiten, um lokalen Systemzugriff zu erhaltenCMD
quelle
Eine Alternative dazu ist Process Hacker, wenn Sie als ... ausgeführt werden (Interactive funktioniert nicht für Personen mit Sicherheitsverbesserungen, aber das spielt keine Rolle). Wenn die Box geöffnet wird, setzen Sie Service in den Box-Typ und setzen Sie SYSTEM in die User-Box und setzen Sie C. : \ Users \ Windows \ system32 \ cmd.exe Lassen Sie den Rest auf OK klicken und boch Sie haben ein Fenster mit cmd darauf und führen Sie es als System aus. Führen Sie jetzt die anderen Schritte für sich selbst aus, da ich Ihnen vorschlage, sie zu kennen
quelle
Es geht auch anders. Es gibt ein Programm namens PowerRun, mit dem erhöhte cmd ausgeführt werden können. Auch mit TrustedInstaller-Rechten. Es ermöglicht sowohl Konsolen- als auch GUI-Befehle.
quelle
Wenn Sie eine Batchdatei schreiben können, die nicht interaktiv sein muss, versuchen Sie, diese Batchdatei als Dienst auszuführen, um das zu tun, was getan werden muss.
quelle
Ich verwende das Dienstprogramm RunAsTi , um als TrustedInstaller (hohe Berechtigung) ausgeführt zu werden. Das Dienstprogramm kann auch im Wiederherstellungsmodus von Windows verwendet werden (der Modus, den Sie mit
Shift
+ aufrufenRestart
). Das Dienstprogramm psexec funktioniert dort nicht. Sie müssen jedoch IhreC:\Windows
undC:\Windows\System32
(nichtX:\Windows
undX:\Windows\System32
) Pfade zurPATH
Umgebungsvariablen hinzufügen , da sonst RunAsTi im Wiederherstellungsmodus nicht funktioniert, sondern nur Folgendes gedruckt wird: AdjustTokenPrivileges for SeImpersonateName: Dem Aufrufer werden nicht alle Berechtigungen oder Gruppen zugewiesen, auf die verwiesen wird .quelle
Planen Sie mit dem Taskplaner einen CMDKEY-Lauf, der unter SYSTEM ausgeführt wird, mit den entsprechenden Argumenten / add: / user: und / pass:
Sie müssen nichts installieren.
quelle