logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Ferramentas de apoio Win32: psexec

Achei melhor "desamarrar" esses posts de ferramentas da palestra do quinto encontro, pois assim eu posso escrever sobre mais ferramentas do que eu falei ou planejei falar.

O psexec é mais uma ferramenta Sysinternals, e permite que você execute um processo remotamente sem fazer login interativo (no popular, "sentar na máquina"). A sintaxe é simples, algo como "psexec \\maquina-remota executavel.exe". O que é mais interessante é que o psexec redireciona a saída (stdout) do programa para sua máquina, assim como redireciona seu stdin para a máquina remota. Isso permite que você faça de qualquer máquina um servidor de telnet chamando "psexec \\servidor cmd.exe". Use sua criatividade para usar isso para diagnóstico, resolução de problemas em servidores, execução de um servidor para debug remoto, rodar scripts, etc. Ah, antes que você ache o mundo um lugar maravilhoso demais, devo lembrá-lo que você precisa ser administrador da máquina remota. Só espero não ter afetado o estado emocional de ninguém subitamente.

Ele instala um serviço na máquina remota, e esse serviço cria os processos e redireciona o input/output:

(você também consegue instalar serviços em uma máquina remota usando a API CreateService ou usando o comando sc do Windows).

Uma coisa que deve ser notada é que o psexec executa o processo remoto com impersonate - simplificadamente, muda o token processo para um token do seu usuário - e o processo criado não tem acesso à rede. Para conseguir acesso à recursos remotos, use "psexec -u dominio\usuario \\nome-da-maquina-remota comando". Ele vai pedir para você digitar a senha e a enviará sem criptografia via um Named Pipe, que acaba indo via socket (para ver os Named Pipes do psexecsvc, use o Process Explorer. No post anterior eu expliquei como ver os handles de um processo).

(Sim, é possível rodar "psexec \\maquina-remota wmplayer.exe fart.mp3" em uma máquina remota se você for admin. Mas eu não disse nada)


Em 17/10/2008 06:19, por Rodrigo Strauss


  
 
 
Comentários
Wanderley Caloni | website | em 20/10/2008 | #
Existem diversos usos muito úteis dessa ferramenta. Como a usei, posso enumerar apenas alguns:

- Subir servidor de depuração para depurar remoto um processo que está tendo problemas antes do logon ou em uma máquina inacessível "sentando na máquina".

- Habilitar debug de kernel e reiniciar a máquina (no Windows Vista, pode ser usado o bcdedit pelo prompt de comando).

- Matar um processo que está arruinando o processamento e travando todo o sistema (sim, isso pode ser feito usando pskill remoto, também).

[]s
Jonathan Xavier | em 23/10/2008 | #
Fala Lameiro;

Engraçado comecei a usar o psexec essa semana, para emular um ssh no windows:
psexec \\maquina-remota -u usuario -p senha cmd

Vc abre um prompt remoto e tudo fica mais fácil. Outra utilidade que eu já estava usando faz um tempo é o psService que possui uma sintaxe similar ao anterior mas permite manipular os servicos locais ou remotos:
psservice \\maquina-remota -u usuario -p senha start mssql$sqlexpress

Praticamente mágica!!!
Renato Gerevini | em 03/05/2016 | #
Bom dia, to tentando executar o psexec em algumas maquinas, tenho o login e senha de administrador mas mesmo assim so da acesso negado, aguem pode me dar uma ajuda?
rebarba rebarba
  ::::