Come usare psexec senza i privilegi di amministratore sulla macchina target?


27

È possibile utilizzare psexecper eseguire un comando su un computer remoto senza avere i privilegi di amministratore sul computer remoto?

Ho provato a correre psexec \\<machine> -u <username> -p <password>, dove <username>e <password>sono credenziali non amministrative, ma viene visualizzato l'errore "Accesso negato"

Posso desktop remoto nel computer remoto con le stesse credenziali senza problemi.

Il mio computer locale esegue Windows 7 Enterprise a 64 bit e il computer remoto esegue Windows Server 2008 a 64 bit. Ho i privilegi di amministratore sul computer locale.

EDIT : A tutte le persone che stanno downvoting questa domanda: sto non cercando di aggirare qualsiasi tipo di misura di sicurezza. Posso già eseguire il processo sul computer remoto eseguendo il desktop remoto nel computer remoto ed eseguendolo. Sto semplicemente cercando un modo da riga di comando per fare qualcosa che posso già fare attraverso una GUI.


È una domanda scadente perché su questo sito ci opponiamo agli utenti finali che ci chiedono come aggirare i sistemi di sicurezza. Forse dovresti avere una lettura di questo: meta.serverfault.com/questions/1659/… , seguito da una lettura delle FAQ.
John Gardeniers,

7
Sto Non cercando di aggirare qualsiasi sistema di sicurezza. Sto provando a fare qualcosa che posso già fare attraverso una GUI, attraverso la riga di comando, che trovo più conveniente. Per favore, spiegami in che modo ciò aggira un sistema di sicurezza.
HC4 - Ripristina Monica il

4
Ci sono molte volte in cui una persona che è un amministratore ha buone ragioni per trovare un modo per eseguire un processo senza usare i diritti amministrativi completi. A volte, ovviamente, non è possibile o non pratico, ma se alcune modifiche al sistema possono fare la differenza tra l'apertura di un sistema completamente rispetto alla configurazione per accedervi utilizzando un account più limitato, è spesso bene fare il il lavoro doveva essere eseguito con un account più limitato.
Shannon Wagner,

8
Gestisco gli host Windows, Linux e UNIX nel mio ruolo lavorativo e se dovessi rispondere alla domanda di un utente attaccandolo per porre la domanda, sarei presto senza lavoro. Questa persona non richiede un metodo per eludere i diritti amministrativi. Sta chiedendo un metodo per utilizzare PSEXEC con diritti limitati per eseguire un processo di cui dispone già dei diritti per eseguire la GUI.
Robert Ebers,

Risposte:


26

Come trovato su: /programming/534426/psexec-help-needed

È necessario disporre dei diritti di amministratore sulla destinazione poiché parte di psexec avvia un servizio Windows sulla destinazione e sono necessari i diritti di amministratore per poterlo fare.

psexec copia un file psexecsvc nella condivisione admin e quindi l'utilizzo della gestione remota avvia un servizio usando quel file. Apre le pipe denominate e le utilizza per ulteriori comunicazioni. Quando è finito, riordina se stesso.

Anche se non riesco a trovare la documentazione UFFICIALE che dice la stessa cosa.


5

Chiedere di essere amministratore locale sulla macchina.

Modifica: oppure esegui il comando come attività pianificata. Oppure usa l'opzione -l in PsExec: esegui il processo come utente limitato (elimina il gruppo Administrators e consente solo i privilegi assegnati al gruppo Users). Su Windows Vista il processo viene eseguito con bassa integrità. Vedi qui: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Mi dispiace dirlo ma RTFM!

Ad esempio: per eseguire Internet Explorer come con privilegi di utente limitato utilizzare questo comando:

psexec -l -d "c: \ programmi \ internet explorer \ iexplore.exe"

Si noti che la password viene trasmessa in chiaro al sistema remoto.


1
Gli amministratori di sistema non lo permetteranno e non dovrebbe essere necessario. Non è necessario su Linux.
HC4 - Ripristina Monica il

4
@ HighCommander4, che differenza importa se è necessario o meno su Linux? Questo è un ambiente Windows. Smetti di confrontare le mele con le arance.
John Gardeniers,

2
@John: stavo solo spiegando che non sto provando a fare nulla che dovrebbe richiedere i privilegi di amministratore. Ho due macchine, con un account su ciascuna, e sto provando ad avviare in remoto un processo su una macchina dall'altra macchina. Questa mi sembra una cosa molto naturale da fare e mi sembra assurdo richiedere i privilegi di amministratore per farlo.
HC4 - Ripristina Monica il

@ HighCommander4, cosa stai cercando di fare, che è l'accesso amministrativo a un computer remoto, richiede l'accesso come amministratore su Windows. Sebbene ciò possa sembrare assurdo per te, ha perfettamente senso per coloro che devono amministrare una rete Windows.
John Gardeniers,

4
@Giovanni: che cos'è "amministrativo" nell'esecuzione di un programma sul tuo account?
HC4 - Ripristina Monica il

2

No, non in modo utile. Perché vorresti fare questo e non essere un amministratore?


2
Chiedi al tuo amministratore di dominio di farlo per te. Quale non dovrebbe essere un problema a meno che quello che stai facendo non sia buono, giusto?
Safado,

2
Chiedi al mio amministratore di dominio di fare cosa per me? Posso già eseguire il processo eseguendo il desktop remoto nella macchina utilizzando l'account non amministratore ed eseguendo il processo con tale account, ovvero il processo stesso non ha bisogno dei privilegi di amministratore per essere eseguito. Voglio solo essere in grado di farlo dalla riga di comando piuttosto che dover desktop remoto nella macchina.
HC4 - Ripristina Monica il

1
È possibile installare ssh su un server Windows senza privilegi di amministratore? Se è così, potresti indicarmi un link? Ho provato OpenSSH ma sembra richiedere i privilegi di amministratore.
HC4 - Ripristina Monica il

1
@tony roth: non hai bisogno di permanenti elevati per eseguire un demone SSH su Linux. Hai solo bisogno di permessi elevati per eseguirlo su una porta privilegiata (0-1023). È possibile configurare sia client che server per utilizzare una porta senza privilegi, senza la necessità di permessi elevati su entrambe le macchine.
HC4 - Ripristina Monica il

2
E infatti sono riuscito a configurare OpenSSH sul server Windows senza privilegi di amministratore eseguendo il demone SSH su una porta non privilegiata. Vai avanti e declassami per aver osato prendere l'iniziativa di aumentare la mia produttività nel mio lavoro senza prima consultare i Sysadmins.
HC4 - Ripristina Monica il


0

Una soluzione sarebbe quella di utilizzare uno script AutoIT per accedere al desktop remoto in base a una pianificazione dalla workstation. Chiedi alla tua cartella di "avvio" di eseguire il processo tramite uno script batch o un altro script AutoIT (in modo da poter annullare se si esegue altro lavoro). Questa non è una riga di comando, ma automatizza il tuo lavoro entro i parametri che ti ha dato il tuo amministratore di sistema. Spero che sia d'aiuto.


-1

C'è probabilmente un modo per farlo. Probabilmente è semplice come modificare le autorizzazioni WMI sulla macchina. Se non è possibile, utilizzare qualcosa come WinRM funzionerebbe sicuramente.

Tutto ciò è discutibile per te. Non hai affatto l'accesso come amministratore alla macchina. Pertanto, non è possibile apportare alcuna delle modifiche necessarie per farlo funzionare. Devi risolverlo con il tuo amministratore di sistema invece di chiederci di aiutarti a aggirarlo. Ricorda una cosa molto chiaramente, molti di noi qui sono amministratori di sistema e non ci piacciono gli utenti che cercano di aggirarci. Questo non ci rende molto probabili per aiutarti a cercare di aggirare i tuoi amministratori di sistema.


2
Non vedo come sto cercando di "aggirare" qualsiasi cosa. Gli amministratori di sistema vogliono che io sia in grado di eseguire processi su quella macchina, altrimenti non sarei in grado di eseguire il desktop remoto in esso. Tutto quello che voglio è un modo per eseguire il processo utilizzando la riga di comando anziché la GUI del desktop remoto. Ora potrei infastidire gli amministratori di sistema su questo, o potrei semplicemente trovare un modo per farlo da solo. Pensavo che una comunità di amministratori di sistema professionisti avrebbe cercato di aiutarmi, non di insegnarmi.
HC4 - Ripristina Monica il

@HighCommander - La risposta è che gli amministratori di sistema devono fornirti questa capacità. Non è possibile farlo da soli poiché non si dispone dei diritti amministrativi sulla macchina. Se lo approvano davvero, chiedi loro di darti i diritti di cui hai bisogno per essere in grado di fare ciò che devi fare.
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);
            }
        }`

4
Un modo sicuro per attirare l'attenzione del sistema è pubblicare risposte identiche a vecchie domande. Anche solo il dumping del codice senza spiegazione non è eccezionale. Aggiorna le tue risposte con alcune spiegazioni su cosa fa il codice e su come risolve il problema dei PO.
user9517 supporta GoFundMonica il

1
Ok, a volte l'evento PsExec sebbene sia installato non invocherà altri ex quando richiesto. Il problema riguarda l'impostazione del valore DWORD EulaAccepted su 1. Non sono riuscito a trovare una pagina in cui si discute di questo problema, quindi aggiunto qui.
Shyam,

-1

Perché qualcuno non dice semplicemente che non è possibile? Devo fare qualcosa di simile (Remote Exec un programma SAS), che ho accesso a fare se eseguo il RDP in quel server (cioè ho accesso al server. Ho accesso al file system alla cartella del codice sorgente e ho accesso per eseguire SAS).

Nessun amministratore di sistema ha la mente giusta che mi concederà i diritti di amministratore completi su quella casella solo per l'esecuzione in remoto. Fondamentalmente PSTools è uno strumento sysadmin non progettato per essere utilizzato per l'implementazione di soluzioni di sistemi IT reali.


1
Questo sfogo non risponde affatto alla domanda.
Flup,

In realtà lo fa. +1
Amit Naidu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.