Wie verwende ich psexec ohne Administratorrechte auf dem Zielcomputer?

27

Ist es möglich psexec, einen Befehl auf einem Remotecomputer auszuführen, ohne über Administratorrechte auf dem Remotecomputer zu verfügen?

Ich habe versucht , laufen psexec \\<machine> -u <username> -p <password>, wo <username>und <password>sind nicht-Admin - Anmeldeinformationen, aber ich erhalte eine „Zugriff verweigert“ -Fehler

Ich kann mit den gleichen Anmeldeinformationen problemlos einen Remotedesktop in den Remotecomputer einbinden.

Auf meinem lokalen Computer wird Windows 7 Enterprise 64-Bit ausgeführt, und auf dem Remotecomputer wird Windows Server 2008 64-Bit ausgeführt. Ich habe Administratorrechte auf dem lokalen Computer.

EDIT : An alle, die diese Frage ablehnen: Ich versuche nicht , irgendeine Sicherheitsmaßnahme zu umgehen. Ich kann den Prozess bereits auf dem Remotecomputer ausführen, indem ich einen Remotedesktop auf dem Remotecomputer ausführe . Ich suche einfach nach einer Befehlszeilenmethode, um etwas zu tun, das ich bereits über eine GUI tun kann.

HC4 - Setzen Sie Monica wieder ein
quelle
Das ist eine schlechte Frage, da wir auf dieser Website Einwände gegen Endbenutzer haben, die uns fragen, wie wir Sicherheitssysteme umgehen sollen. Vielleicht sollten Sie diese lesen: meta.serverfault.com/questions/1659/… , gefolgt von einer Lektüre der FAQ.
John Gardeniers
7
Ich versuche nicht , ein Sicherheitssystem zu umgehen. Ich versuche, etwas zu tun, was ich bereits über eine GUI tun kann, stattdessen über die Befehlszeile, was ich bequemer finde. Erklären Sie mir bitte, wie das bedeutet, ein Sicherheitssystem zu umgehen.
HC4 - wieder einzusetzen Monica
4
Es gibt viele Fälle, in denen eine Person, die ein Administrator ist, gute Gründe hat, einen Weg zu finden, um einen Prozess auszuführen, ohne die vollständigen Administratorrechte zu nutzen. Manchmal ist das natürlich nicht möglich oder nicht praktikabel, aber wenn ein paar Änderungen am System den Unterschied zwischen dem vollständigen Öffnen eines Systems und dem Konfigurieren des Zugriffs auf ein eingeschränkteres Konto ausmachen können, ist es oft sinnvoll, dies zu tun Die für die Ausführung unter dem eingeschränkteren Konto erforderliche Arbeit.
Shannon Wagner
8
Ich verwalte Windows-, Linux- und UNIX-Hosts in meiner Jobrolle. Wenn ich die Frage eines Benutzers beantworten würde, indem ich ihn angreife, weil er die Frage gestellt hat, wäre ich bald arbeitslos. Diese Person fordert keine Methode zur Umgehung von Verwaltungsrechten an. Er fragt nach einer Methode zur Verwendung von PSEXEC mit eingeschränkten Rechten, um einen Prozess auszuführen, für den er bereits Rechte zur Ausführung über die GUI besitzt.
Robert Ebers

Antworten:

26

Wie zu finden unter: https://stackoverflow.com/questions/534426/psexec-help-needed

Sie müssen über Administratorrechte auf dem Ziel verfügen, da im Rahmen von psexec ein Windows-Dienst auf dem Ziel gestartet wird. Dazu benötigen Sie Administratorrechte.

psexec kopiert eine psexecsvc-Datei auf die Administratorfreigabe und startet dann mithilfe der Remoteverwaltung einen Dienst, der diese Datei verwendet. Es öffnet Named Pipes und nutzt diese für die weitere Kommunikation. Wenn es fertig ist, räumt es auf.

Obwohl ich keine OFFIZIELLE Dokumentation finde, die dasselbe aussagt.

Safado
quelle
5

Bitten Sie darum, lokaler Administrator des Computers zu sein.

Bearbeiten: Oder führen Sie den Befehl als geplante Aufgabe aus. Oder verwenden Sie die Option -l in PsExec: Prozess als begrenzter Benutzer ausführen (entfernt die Gruppe Administratoren und lässt nur die der Gruppe Benutzer zugewiesenen Berechtigungen zu). Unter Windows Vista wird der Prozess mit niedriger Integrität ausgeführt. Siehe hier: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Entschuldigung, aber RTFM!

Beispiel: Um Internet Explorer mit eingeschränkten Benutzerrechten auszuführen, verwenden Sie diesen Befehl:

psexec -l -d "c: \ Programme \ Internet Explorer \ iexplore.exe"

Beachten Sie, dass das Passwort im Klartext an das Remote-System übertragen wird.

Guido van Brakel
quelle
1
Die Sysadmins erlauben dies nicht und es sollte nicht notwendig sein. Es ist unter Linux nicht erforderlich.
HC4 - wieder Monica
4
@ HighCommander4, welchen Unterschied macht es aus, ob es unter Linux notwendig ist oder nicht? Dies ist eine Windows-Umgebung. Hör auf, Äpfel mit Orangen zu vergleichen.
John Gardeniers
2
@ John: Ich habe nur erklärt, dass ich nicht versuche, etwas zu tun, das Administratorrechte erfordert. Ich habe zwei Computer mit jeweils einem Konto, und ich versuche, einen Prozess auf einem Computer remote von dem anderen Computer aus zu starten. Dies scheint mir eine ganz natürliche Sache zu sein, und es erscheint unsinnig, dafür Administratorrechte zu benötigen.
HC4
@HighCommander4, was Sie tun möchten, ist administrativer Zugriff auf einen Remotecomputer. Benötigt Administratorzugriff unter Windows. Dies mag für Sie absurd erscheinen, für diejenigen, die ein Windows-Netzwerk verwalten müssen, ist es jedoch durchaus sinnvoll.
John Gardeniers
4
@ John: Was ist "administrativ", wenn Sie ein Programm auf Ihrem eigenen Konto ausführen?
HC4 - wieder einzusetzen Monica
2

Nein, nicht in nützlicher Weise. Warum solltest du das tun und kein Administrator sein?

Tony Roth
quelle
2
Bitten Sie Ihren Domain-Administrator, dies für Sie zu tun. Was kein Problem sein sollte, es sei denn, Sie machen etwas faul, oder?
Safado
2
Bitten Sie meinen Domain-Administrator, was für mich zu tun? Ich kann den Prozess bereits ausführen, indem ich mithilfe des Nicht-Administratorkontos einen Remotedesktop auf dem Computer ausführe und den Prozess unter diesem Konto ausführe, dh der Prozess selbst benötigt keine Administratorrechte, um ausgeführt zu werden. Ich möchte nur in der Lage sein, dies von der Befehlszeile aus zu tun, anstatt einen Remote-Desktop auf dem Computer zu haben.
HC4 - wieder Monica
1
Ist es möglich, ssh auf einem Windows Server ohne Administratorrechte zu installieren? Wenn ja, können Sie mich auf einen Link verweisen? Ich habe OpenSSH ausprobiert, aber es scheint Administratorrechte zu erfordern.
HC4 - wieder Monica
1
@tony roth: Sie benötigen keine erhöhten Berechtigungen, um einen SSH-Daemon unter Linux auszuführen. Sie benötigen nur erhöhte Berechtigungen, um es auf einem privilegierten Port (0-1023) auszuführen. Sie können sowohl Client als auch Server so konfigurieren, dass sie einen nicht privilegierten Port verwenden, ohne dass auf beiden Computern erhöhte Berechtigungen erforderlich sind.
HC4 - wieder Monica
2
Und tatsächlich habe ich es geschafft, OpenSSH auf dem Windows-Server ohne Administratorrechte einzurichten, indem ich den SSH-Dämon auf einem nicht privilegierten Port ausgeführt habe. Machen Sie weiter und stimmen Sie mir zu, dass ich es wage, die Initiative zu ergreifen, um meine Produktivität bei meiner Arbeit zu steigern, ohne vorher die Heiligen Sysadmins zu konsultieren.
HC4 - wieder Monica
1

Mit Powershell-Befehlen sind Sie wahrscheinlich besser dran:

Robert Ebers
quelle
0

Eine Lösung wäre die Verwendung eines AutoIT-Skripts, um sich nach einem Zeitplan von Ihrer Workstation auf Ihrem Remotedesktop anzumelden. Lassen Sie Ihren "Start" -Ordner Ihren Prozess entweder über ein Batch-Skript oder ein anderes AutoIT-Skript ausführen (damit Sie den Vorgang abbrechen können, wenn Sie andere Arbeiten ausführen). Dies ist keine Befehlszeile, aber sie automatisiert Ihre Arbeit innerhalb der Parameter, die Ihnen Ihr Sysadmin gegeben hat. Ich hoffe es hilft.

Thrakorzog
quelle
-1

Es gibt wahrscheinlich einen Weg, dies zu tun. Es ist wahrscheinlich so einfach wie das Bearbeiten von WMI-Berechtigungen auf dem Computer. Wenn es nicht möglich ist, würde die Verwendung von WinRM definitiv funktionieren.

All dies ist jedoch für Sie umstritten. Sie haben überhaupt keinen Administratorzugriff auf den Computer. Daher können Sie keine der Änderungen vornehmen, die erforderlich sind, um dies in Gang zu setzen. Sie müssen dies mit Ihrem Systemadministrator klären, anstatt uns zu bitten, Ihnen zu helfen, ihn zu umgehen. Erinnern Sie sich an eine Sache ganz genau, die meisten von uns sind hier Sysadmins und wir mögen keine Benutzer, die versuchen, uns zu umgehen. Das macht es nicht sehr wahrscheinlich, dass wir Ihnen helfen, Ihre Sysadmins zu umgehen.

Jason Berg
quelle
2
Ich verstehe nicht, wie ich versuche, irgendetwas zu "umgehen". Die Systemadministratoren möchten, dass ich Prozesse auf diesem Computer ausführen kann, da ich sonst keinen Remotedesktop verwenden kann. Alles, was ich möchte, ist eine Möglichkeit, den Prozess über die Befehlszeile und nicht über die Remotedesktop-GUI auszuführen. Jetzt könnte ich die Sysadmins dazu überreden, oder ich könnte einfach einen Weg finden, es selbst zu tun. Ich dachte, eine Gemeinschaft professioneller Sysadmins würde versuchen, mir zu helfen, nicht mich zu belehren.
HC4 - wieder Monica
@ HighCommander - Die Antwort ist, dass die Sysadmins diese Fähigkeit für Sie bereitstellen müssen. Sie können dies nicht selbst tun, da Sie keine Administratorrechte auf dem Computer haben. Wenn sie dem wirklich zustimmen, bitten Sie sie, Ihnen die Rechte zu geben, die Sie benötigen, um das zu tun, was Sie tun müssen.
Jason Berg
-1

`const string subkey =" Software \ Sysinternals \ PsExec ";

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }`
Shyam
quelle
4
Eine sichere Möglichkeit, das System auf sich aufmerksam zu machen, besteht darin, identische Antworten auf alte Fragen zu veröffentlichen. Nur Code ohne Erklärung auszugeben, ist auch nicht großartig. Bitte aktualisieren Sie Ihre Antworten mit einer Erklärung, was der Code bewirkt und wie er das OP-Problem löst.
user9517 unterstützt GoFundMonica
1
Ok, manchmal ruft das PsExec-Ereignis, obwohl es installiert ist, keine anderen Exes auf, wenn es angefordert wird. Das Problem besteht darin, den EulaAccepted DWORD-Wert auf 1 zu setzen. Ich konnte keine Seite finden, auf der dieses Problem behandelt wird. Daher wurde es hier hinzugefügt.
Shyam
-1

Warum sagt jemand nicht einfach, dass es nicht möglich ist? Ich muss etwas Ähnliches tun (Remote Exec a SAS Program), auf das ich zugreifen kann, wenn ich RDP auf diesem Server ausführe (dh, ich habe Anmeldezugriff auf den Server. Ich habe Dateisystemzugriff auf den Quellcodeordner und ich habe Zugang zum Ausführen von SAS).

Kein Systemadministrator ist der Ansicht, dass sein / ihr Verstand mir vollständige Administratorrechte für diese Box gewähren wird, nur um sie remote auszuführen. Grundsätzlich handelt es sich bei PSTools um ein Sysadmin-Tool, das nicht für die Bereitstellung tatsächlicher IT-Systemlösungen entwickelt wurde.

mittlere Greenwich-Zeit
quelle
1
Diese Beschimpfung beantwortet die Frage überhaupt nicht.
Flup
Eigentlich schon. +1
Amit Naidu