Como usar o psexec sem privilégios de administrador na máquina de destino?

27

É possível usar psexecpara executar um comando em uma máquina remota sem ter privilégios de administrador na máquina remota?

Tentei executar psexec \\<machine> -u <username> -p <password>, onde <username>e <password>são credenciais de não administrador, mas recebo um erro "acesso negado"

Posso usar a área de trabalho remota na máquina remota com as mesmas credenciais sem problemas.

Minha máquina local está executando o Windows 7 Enterprise de 64 bits e a máquina remota está executando o Windows Server 2008 de 64 bits. Eu tenho privilégios de administrador na máquina local.

EDIT : Para todas as pessoas que estão downvoting esta pergunta: Eu sou não tentar contornar qualquer tipo de medida de segurança. Eu já posso executar o processo na máquina remota usando a área de trabalho remota na máquina remota e executando-a. Estou simplesmente procurando uma maneira da linha de comando de fazer algo que já posso fazer por meio de uma GUI.

HC4 - restabelecer a Monica
fonte
É uma pergunta ruim porque, neste site, objetamos aos usuários finais nos perguntando como burlar os sistemas de segurança. Talvez você deva ler este: meta.serverfault.com/questions/1659/… , seguido de uma leitura das Perguntas frequentes.
John Gardeniers
7
Estou não tentar contornar qualquer sistema de segurança. Estou tentando fazer algo que já posso fazer por meio de uma GUI, por meio da linha de comando, o que acho mais conveniente. Por favor, explique-me como isso constitui contornar um sistema de segurança.
HC4 - restabelecer Monica 15/06
4
Muitas vezes, uma pessoa que é administrador tem boas razões para encontrar uma maneira de executar um processo sem usar todos os direitos administrativos. Às vezes, é claro, não é possível ou não é prático, mas se alguns ajustes no sistema puderem fazer a diferença entre abrir um sistema completamente versus configurá-lo para ser acessado usando uma conta mais limitada, geralmente é bom fazer o trabalho necessário para executar sob a conta mais limitada.
Shannon Wagner
8
Administro hosts Windows, Linux e UNIX em minha função de trabalho e, se eu abordasse a pergunta de um usuário, atacando-o por fazer a pergunta, logo ficaria sem trabalho. Essa pessoa não está solicitando um método para contornar os direitos administrativos. Ele está pedindo um método de uso do PSEXEC com direitos limitados para executar um processo que ele já possui direitos para executar na GUI.
Robert Ebers

Respostas:

26

Como encontrado em: https://stackoverflow.com/questions/534426/psexec-help-needed

Você precisa ter direitos de administrador no destino, como parte do psexec inicia um serviço do Windows no destino e precisa de direitos de administrador para poder fazer isso.

O psexec copia um arquivo psexecsvc para o compartilhamento do administrador e, em seguida, o uso do gerenciamento remoto inicia um serviço usando esse arquivo. Ele abre pipes nomeados e os usa para comunicação adicional. Quando termina, ele se arruma.

Embora eu não consiga encontrar a documentação OFICIAL que diz a mesma coisa.

Safado
fonte
5

Peça para ser administrador local na máquina.

Editar: ou execute o comando como uma tarefa agendada. Ou use a opção -l no PsExec: Executar processo como usuário limitado (retira o grupo Administradores e permite apenas privilégios atribuídos ao grupo Usuários). No Windows Vista, o processo é executado com baixa integridade. Veja aqui: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Desculpe dizer, mas RTFM!

Por exemplo: Para executar o Internet Explorer como com privilégios limitados de usuário, use este comando:

psexec -l -d "c: \ arquivos de programas \ internet explorer \ iexplore.exe"

Observe que a senha é transmitida em texto não criptografado para o sistema remoto.

Guido van Brakel
fonte
11
Os administradores de sistemas não permitirão isso e não será necessário. Não é necessário no Linux.
HC4 - restabelecer Monica 15/06
4
@ HighCommander4, que diferença importa se é necessário ou não no Linux? Este é um ambiente Windows. Pare de comparar maçãs com laranjas.
John Gardeniers
2
@ John: Eu estava apenas explicando que não estou tentando fazer nada que exija privilégios de administrador. Eu tenho duas máquinas, com uma conta em cada uma, e estou tentando iniciar remotamente um processo em uma máquina a partir da outra. Isso me parece uma coisa muito natural, e parece absurdo exigir privilégios de administrador para fazê-lo.
HC4 - reinstala Monica 15/06
@ HighCommander4, o que você está tentando fazer, que é acessar administrativamente um computador remoto, exige acesso de administrador no Windows. Embora isso possa parecer absurdo para você, faz todo o sentido para aqueles que precisam administrar uma rede Windows.
John Gardeniers
4
@ John: O que é "administrativo" sobre a execução de um programa em sua própria conta?
HC4 - restabelecer Monica 15/06
2

Não, não de uma maneira útil. Por que você gostaria de fazer isso e não ser um administrador?

Tony Roth
fonte
2
Peça ao administrador do domínio para fazer isso por você. O que não deve ser um problema, a menos que o que você esteja fazendo seja suspeito, certo?
Safado
2
Peça ao meu administrador de domínio para fazer o que por mim? Eu já posso executar o processo executando a área de trabalho remota na máquina usando a conta de não administrador e executando o processo nessa conta, ou seja, o processo em si não precisa de privilégios de administrador para ser executado. Eu só quero poder fazer isso na linha de comando, em vez de ter que usar a área de trabalho remota na máquina.
HC4 - restabelecer Monica
11
É possível instalar o ssh em um servidor Windows sem privilégios de administrador? Se sim, você poderia me indicar um link? Eu tentei o OpenSSH, mas parece exigir privilégios de administrador.
HC4 - restabelecer Monica 15/06
11
@ Tony Roth: Você não precisa de permissões elevadas para executar um daemon SSH no Linux. Você só precisa de permissões elevadas para executá-lo em uma porta privilegiada (0-1023). Você pode configurar o cliente e o servidor para usar uma porta não privilegiada, sem a necessidade de permissões elevadas em qualquer máquina.
HC4 - restabelecer Monica 15/06
2
Na verdade, eu consegui configurar o OpenSSH no servidor Windows sem privilégios de administrador executando o daemon SSH em uma porta não privilegiada. Vá em frente e me derrote por me atrever a tomar a iniciativa de aumentar minha produtividade no meu trabalho sem consultar os Sysadmins primeiro.
HC4 - restabelecer Monica 15/06
1

Você provavelmente estaria melhor usando os comandos do Powershell:

Robert Ebers
fonte
0

Uma solução seria usar um script AutoIT para fazer logon na sua área de trabalho remota em uma programação da sua estação de trabalho. Faça com que sua pasta "startup" execute seu processo por meio de um script em lote ou outro script AutoIT (para que você possa cancelar se estiver executando outro trabalho). Isso não é linha de comando, mas automatiza seu trabalho dentro dos parâmetros que o sysadmin forneceu a você. Espero que ajude.

Thrakorzog
fonte
-1

Provavelmente existe uma maneira de fazer isso. Provavelmente é tão simples quanto editar permissões WMI na máquina. Se não for possível, usar algo como o WinRM definitivamente funcionaria.

Tudo isso é discutível para você. Você não tem acesso de administrador à máquina. Portanto, você não pode fazer nenhuma das alterações necessárias para fazer isso funcionar. Você precisa resolver isso com o administrador do sistema em vez de pedir para ajudá-lo a contorná-lo. Lembre-se de uma coisa muito claramente: a maioria de nós aqui é administrador de sistemas e não gostamos de usuários tentando nos ajudar. Isso não nos torna muito propensos a ajudá-lo a tentar contornar seus administradores de sistemas.

Jason Berg
fonte
2
Não vejo como estou tentando "dar a volta" em nada. Os administradores de sistemas querem que eu seja capaz de executar processos nessa máquina, caso contrário, não seria possível fazer o desktop remoto nela. Tudo o que quero é uma maneira de executar o processo usando a linha de comando e não a GUI da área de trabalho remota. Agora eu poderia incomodar os administradores do sistema sobre isso, ou simplesmente poderia encontrar uma maneira de fazer isso sozinho. Eu pensei que uma comunidade de administradores de sistemas profissionais tentaria me ajudar, não me ensinando.
HC4 - restabelecer Monica 15/06
@ HighCommander - A resposta é que os administradores de sistema devem fornecer essa capacidade a você. Você não pode fazer isso sozinho, pois não possui direitos administrativos na máquina. Se eles realmente aprovarem isso, peça-lhes que lhe concedam os direitos de que você precisa para poder fazer o que precisa.
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
fonte
4
Uma maneira segura de chamar a atenção do sistema é postar respostas idênticas às perguntas antigas. Apenas despejar código sem explicação também não é bom. Atualize suas respostas com algumas explicações sobre o que o código faz e como ele resolve o problema dos OPs.
user9517 suporta GoFundMonica
11
Ok, algumas vezes o evento PsExec, apesar de instalado, não invocará outros exes quando solicitado. O problema está relacionado à definição do valor EulaAccepted DWORD como 1. Não foi possível encontrar uma página que discuta esse problema, portanto, adicionada aqui.
Shyam
-1

Por que alguém não apenas diz que não é possível? Eu preciso fazer algo semelhante (Remote Exec a SAS Program), que eu tenho acesso se fizer RDP nesse servidor (ou seja, eu tenho acesso de logon ao servidor. Eu tenho acesso ao sistema de arquivos na pasta de código-fonte e tenho acesso para executar o SAS).

Nenhum administrador de sistemas está com a mente correta, que me concederá direitos de administrador completos nessa caixa apenas para executar remotamente. Basicamente, o PSTools é uma ferramenta sysadmin não projetada para ser usada na implantação de soluções reais de sistemas de TI.

GMT
fonte
11
Este discurso retórico não responde à pergunta.
Flup
Na verdade, sim. +1
Amit Naidu