PSEXEC em Windows

Publicado: 22/12/2014 em Uncategorized

Esta ferramenta da linha de comando é muito útil para as tarefas rápidas e transparentes. Rápido porque você conecta á uma máquina remota, executa o comando, e volta á sua máquina em segundos (depende da conexão). Transparente porque quem está no outro lado não senti a execução dos comandos ou os arquivos que estão sendo copiados( depende do tamanho do arquivo que você vai copiar e executar, e o hardware do micro remoto).
Um usuário avançado pode estar executando um bom antivírus como Kaspersky que adverte o usuário que há um programa de acesso remoto tentando executar. É possível executar o comando tasklist /v e visualizar os tasks e os processos do todos os usuários
Para quem não gosta de linha de comando, ta na hora de começar gostar. Vamos falar sobre um ambiente de Domínio. A ferramenta pode ser abusada para fazer ataques contra computadores remotos, mais esse não é o nosso assunto aqui.
Ambiente : dois computadores no mesmo domínio.
Requisitos: autorização em forma de usuário e senha no computador remoto(o mais fácil é Administrador ou Administrator) ou uma conta de domínio com o acesso apropriado, por exemplo um membro do grupo Domain Admins.
Por enquanto vamos falar sobre os membros do grupo domain admins quem tem acesso total em todas as maquinas do domínio:

Linha de comando remota
psexec \\10.10.10.10 cmd

este vai executar o comando cmd no computador remoto com IP 10.10.10.10 usando os credenciais do computador local (neste exemplo um dos administradores do domínio). Ao executar esse comando o sistema irá verificar se temos autorização no computador remoto, se o serviço RPC está funcionando no remoto e também se o compartilhamento admin$ existe no remoto.
Ao conectar no sistema remoto, a pasta remota do linha de comando é c:\windows\system32. Para sair do prompt remoto basta digitar exit.

Copiar um arquivo local para executá-lo no remoto

Este recurso é muito útil para administradores de sistemas. Usamos esse recurso para copiar e executar um arquivo remotamente. O arquivo tem que estar na pasta onde o executável (programa) psexec está.

psexec -c kk.exe \\10.10.10.10

este comando irá copiar o programa kk.exe (Kido Killer-que remove o vírus conficker) e executa lo no computador remoto.

psexec -c kk.exe \\10.10.10.10,10.10.10.11,10.10.10.12 -a -y

neste exemplo executaremos o comando em três computadores remotos na ordem que está na lista. os switches -a -y pertencem ao KK.exe e são digitados no fim do comando.

Executar através de um arquivo contendo uma lista dos micros
psexec -c kk.exe @arquivo.txt -a -y

é importante seguir as dicas:
1) o arquivo.txt tem que ser na mesma pasta onde está o psexec
2) o arquivo.txt tem que ser criado usando um editor de texto puro(notepad, notepad++, etc), Word não funcionaria
3) o arquivo.txt deve conter os IP’s ou os nomes dos micros remotos sem os // , e um IP ou nome por linha.
Usando um usuário específico

psexec \\10.10.10.10 -u administrador cmd

bom aqui não estamos mais usando as credenciais locais más estamos usando uma conta que já existe no micro remoto. A senha será exigida na execução do comando. Podemos acrescentar;

psexec \\10.10.10.10 -u administrador -p master cmd

aqui estamos mandando o comando com a nossa senha remota descriptografada (texto normal). Este e totalmente não recomendado, e se estiver alguem com um sniffer na linha, ela irá capturar a nossa senha.

Excluir um arquivo remoto
psexec \\10.10.10.10 “del /p nome.exe”

o comando del é o comun que faz parte do shell do windows. Não esqueça das aspas pois o comando contem espaço.
Outros Exemplos úteis

psexec \\10.1.1.10 ipconfig /all

Bom para saber as configurações alem do endereço do IP (já sabemos nê :) ), outras opções também funcionam como

psexec \\10.1.1.10 ipconfig /flushdns
psexec \\10.1.1.10 ipconfig /registerdns

Matar um processo remotamente. Usamos o comando tasklist para ver o ID do processo e depois o taskill para matar aquilo processo.

psexec \\10.1.1.10 tasklist.exe /svc e em seguida
psexec \\10.1.1.10 taskkill /pid IDdoProcesso
psexec \\10.1.1.10 taskkill /f /pid IDdoProcesso (caso o processo necessita ser forçada para terminar)

O profissional de TI Guilherme Alves Stela deixou um comentário sobre listar e matar processos usando pslist e pskill – que também são ferramentas da Sysinternals.
para listar os processos em tempo real:
pslist -s \\10.1.1.10
para matar um processo:
pskill \\10.1.1.10 nomeDoProcesso
para matar processo forçadamente:
pskill -f \\10.1.1.10 nomeDoProcesso

comentários
  1. Mateus Biscaglia disse:

    se usa tbm o tskill para matar os processosexemplotskill (nome real do programa(que o sisterma identifica ex: notepad, calc, firefox)ou tambemtskill (numero do processo, que se acha no tasklist)

Deixe um comentário