Frage

Ich laufe zur Zeit Vista und ich möchte manuell die gleichen Operationen wie mein Windows-Dienst beenden. Da der Windows-Dienst wird unter dem lokalen Systemkonto ausgeführt wird, würde Ich mag dieses gleiche Verhalten emulieren. Im Grunde möchte ich cmd.exe unter dem lokalen Systemkonto ausgeführt werden.

fand ich Informationen online, die die CMD.exe lauching AT-Befehl mit dem DOS-Taskplaner schlagen vor, aber ich erhielt eine Vista Warnung, dass „wegen Sicherheitsverbesserungen, diese Aufgabe zu der Zeit ausgenommen laufen wird, aber nicht interaktiv.“ Hier ist ein Beispiel Befehl:

AT 12:00 /interactive cmd.exe

Eine andere Lösung vorgeschlagen einen sekundären Windows-Dienst über den Service Control (sc.exe) zu schaffen, die nur CMD.exe startet.

C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA

In diesem Fall wird der Dienst nicht gestartet werden kann und führt ihm die folgende Fehlermeldung:

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 unter verschiedenen Konten geplante Aufgaben ausführen können, glaube ich nicht, das lokale Systemkonto ist einer von ihnen.

Ich habe versucht, auch die Runas verwenden, aber ich denke, in die gleiche Einschränkung renne wie gefunden, wenn eine geplante Aufgabe ausgeführt wird.

Bisher jedem meiner Versuche gescheitert. Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Obwohl ich nicht persönlich getestet, habe ich guten Grund zu glauben, dass die oben AT COMMAND Lösung angegeben wird für XP arbeiten, 2000 und Server 2003. Per meinem und Test Bryant, wir haben festgestellt, dass der gleiche Ansatz nicht Arbeit mit Vista oder Windows Server 2008 - höchstwahrscheinlich auf zusätzliche Sicherheit und die / interactive Schalter veraltet ist.

Aber ich kam in dieser Artikel , die die Verwendung von PSTools von

Andere Tipps

  1. Herunterladen psexec.exe von Sysinternals .
  2. Legen Sie es in Ihrem Laufwerk C: \
  3. .
  4. Melden Sie sich als ein Standard-oder Admin-Benutzer und verwenden Sie den folgenden Befehl ein: cd \. Damit stehen Sie in dem Stammverzeichnis des Laufwerks, wo psexec befindet.
  5. Verwenden Sie den folgenden Befehl ein: psexec -i -s cmd.exe wo -i für interaktive und es ist für Systemkonto
  6. .
  7. Wenn der Befehl abgeschlossen ist, wird ein cmd Shell gestartet werden. Typ whoami; es wird sagen: ‚System"
  8. Öffnen Taskmanager. Töten explorer.exe.
  9. Von einer erhöhten Kommando-Shell-Typ start explorer.exe.
  10. Wenn Explorer Hinweis gestartet wird der Name „System“ in Startmenüleiste. Jetzt können Sie einige Dateien in system32-Verzeichnis löschen, die als Administrator Sie nicht oder als Administrator löschen würden Sie müssen versuchen, hart Berechtigungen zu ändern, diese Dateien zu löschen.

Benutzer, die versuchen, umbenennen oder deleate Systemdateien in dem geschützten Verzeichnis von Fenstern sollte wissen, dass alle Windows-Dateien von DACLs geschützt werden, während das Umbenennen einer Datei müssen Sie den Besitzer wechseln und Trusted zu ersetzen, die die Datei besitzt und jeder Benutzer machen wie ein Benutzer, der als Besitzer der Datei zu Administratorgruppe gehört dann versuchen, es zu benennen, nachdem die Erlaubnis zu ändern, wird es funktionieren, und während Sie Windows mit Kernel privilages explorer können Sie in Bezug auf Netzwerkzugriff aus Sicherheitsgründen etwas eingeschränkt sind, und es ist nach wie vor für mich ein Forschungsthema Zugang zurück

bekommen

Gefunden eine Antwort hier , die das Problem zu lösen scheint durch das Hinzufügen / k zum binPath Parameter starten. Also das würden Sie:

sc create testsvc binpath= "cmd /K start" type= own type= interact

Allerdings, sagte Ben, die nicht für ihn arbeiten, und wenn ich es auf Windows Server 2008 versuchte, tat es den cmd.exe Prozess unter lokalem System erstellen, aber es war nicht interaktiv (ich das Fenster nicht sehen konnte) .

Das glaube ich nicht, dass es eine einfache Möglichkeit, zu tun, was Sie fragen, aber ich frage mich, warum Sie es überhaupt tun? Versuchen Sie, nur um zu sehen, was passiert, wenn Sie Ihren Dienst ausführen? Scheint, als ob Sie nur die Protokollierung nutzen könnten, um zu bestimmen, was mit der exe als lokales System geschieht, anstatt laufen ...

Ich würde Sie empfehlen, den Mindestberechtigungssatz ausrechnen, dass Ihr Dienst wirklich braucht und zu verwenden, die, anstatt die viel zu privilegierte lokale Systemkontext. Zum Beispiel Service vor Ort .

Interaktive Dienste nicht mehr funktionieren - oder zumindest nicht mehr UI zeigen - unter Windows Vista und Windows Server 2008 aufgrund Sitzung 0 Isolation .

Eine Alternative dazu ist Hacker-Prozess, wenn Sie gehen in Ausführen als ... (Interactive arbeitet nicht für Leute mit den Sicherheits enhancments aber das wird nicht Angelegenheit), und wenn Feld öffnet Dienst gestellt in die Box-Typ und setzen SYSTEM in Box und setzen C: \ Benutzer \ Windows \ system32 \ cmd.exe den Rest Klicken Sie auf OK verlassen und boch haben Sie ein Fenster mit cmd drauf und laufen als System nun die weiteren Schritte für sich selbst tun bekam weil in Sie kennen sie

was darauf hindeutet,

Mit Secure Desktop cmd.exe als system ausführen

Wir können Kernel-Zugriff über CMD in Windows XP / Vista / 7 / 8.1 leicht erhalten durch einen Debugger Befestigung:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
  1. Ausführen CMD als Administrator

  2. Dann in Elevated diesen Befehl verwenden:

     CMD REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
    
  3. Dann laufen osk (OnScreenKeyboard). Es ist immer noch nicht mit dem System Integrity Level laufen, wenn Sie Process Explorer überprüfen durch, aber wenn Sie OSK in Dienstsitzung verwenden können, wird es laufen als NT Authority\SYSTEM

so hatte ich die Idee muss man es auf Secure Desktop ausgeführt werden.

Starten Sie eine beliebige Datei als Administrator an. Wenn UAC Prompts erscheinen, drücken Sie einfach Win + U und starten OSK und wird es CMD stattdessen starten. Dann in der erhöhten Eingabeaufforderung geben Sie whoami und Sie werden NT Authority\System bekommen. Danach können Sie Explorer aus dem Systembefehl Shell starten und das System-Profil verwenden, aber Sie sind etwas begrenzt, was Sie auf dem Netzwerk über SYSTEM-Privilegien aus Sicherheitsgründen tun können. Ich werde später mehr Erklärung hinzufügen, wie ich es vor einem Jahr entdeckt.

Eine kurze Erklärung, wie dies geschieht

Ausführen Cmd.exe unter Local System Account Ohne PsExec Verwendung. Dieses Verfahren läuft Debugger-Trap-Technik, das früher entdeckt wurde, und diese Technik hat seine eigenen Vorteile kann es einig schlauen / bösartigen Wurm oder Malware im Debugger und führen Sie eine andere exe anstatt zu stoppen verwendet werden, um die Ausbreitung oder Beschädigung vorübergehend zu stoppen. hier der Registrierungsschlüssel Fallen Bildschirmtastatur in nativen Windows-Debugger und läuft cmd.exe stattdessen aber cmd wird nach wie vor mit angemeldeten Benutzer Privilegien laufen, aber wenn wir in session0 cmd laufen wir System-Shell erhalten. also fügen wir hier eine andere Idee, die wir die cmd auf sicheren Desktop umspannen erinnern sicheren Desktop läuft in Sitzung 0 unter Systemkonto und wir bekommen System-Shell. Also, wenn Sie etwas so erhöhten laufen, müssen Sie die UAC-Eingabeaufforderung beantworten und UAC fordert auf dunklen, nicht interaktiven Desktop und wenn Sie es sehen können, müssen Sie die Taste Win + U und wählen Sie dann OSK Sie CMD.exe läuft unter Lokales Systemprivilegien erhalten. Es gibt noch mehr Möglichkeiten, lokalen Systemzugriff mit CMD

zu bekommen

Es gibt eine andere Art und Weise. Es gibt ein Programm PowerRun genannt, die für erhöhten cmd ermöglicht ausgeführt werden. Auch bei Trusted Rechten. Es ermöglicht sowohl für Konsole und GUI-Befehle.

Wenn Sie eine Batch-Datei schreiben können, die nicht interaktiv sein muss, versuchen, diese Batch-Datei als Dienst ausgeführt wird, zu tun, was getan werden muss.

Ich verwende die RunAsTi Dienstprogramm auszuführen als Trusted (hohe Privileg). Das Dienstprogramm kann auch im Wiederherstellungsmodus von Windows verwendet werden (der Modus, indem Sie Shift + Restart eingeben), die psexec Dienstprogramm nicht, dass es nicht funktioniert. Aber Sie müssen Ihre C:\Windows und C:\Windows\System32 Pfade zum X:\Windows Umgebungsvariable (nicht X:\Windows\System32 und PATH) hinzuzufügen, sonst RunAsTi nicht im Recovery-Modus arbeiten, wird es nur Druck: AdjustTokenPrivileges für SeImpersonateName . Nicht alle zugewiesen verwiesen Privilegien oder Gruppen an den Anrufer werden

/ User:

Task-Scheduler verwenden, einen Lauf von CMDKEY unter SYSTEM mit den entsprechenden Argumenten / add ausgeführt planen und / pass:

Keine Notwendigkeit, etwas zu installieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top