¡Hola a todos!
En ocasiones muy específicas, es necesario conectarnos con algún equipo Windows remotamente vía consola, de tal manera el usuario no se dé cuenta que estamos conectados y hagamos tareas específicas puntuales… esto por motivos de configuraciones generalmente (por ejemplo, cambiar la configuración de red, gestión de servicios mediante… cosas así), ejecución de bat’s con tareas predefinidas, etc.
El mismo Microsoft, pensando en ésta necesidad, publicó en su sitio un kit de herramientas desarrolladas por Mark Russinovich, llamada PsTools; Nos sirve básicamente para administrar sistemas operativos Windows de forma remotamente. En ésta entrada, nos centraremos en el comando PsExec.exe, el cual es como un sustituto al viejo telnet; Permite ejecutar procesos en el Windows remoto en modo consola (CMD) sin tener que instalar manualmente algún software del lado del cliente.
Primero, debemos de descargar el kit de herramientas PSTools desde éste enlace:
Descomprimimos dicho archivo descargado en alguna carpeta en el C:\ (por ejemplo, C:\PSTools ).
Ejecutamos una CMD (Símbolo del sistema) como administrador y nos vamos a la unidad a C:\PSTools
Para mejor referencia, ver las siguientes imágenes:
Ahora, es importante mencionar que se requiere conocer el usuario y clave de algún usuario con privilegios de administrador local en el equipo remoto; si se está en un entorno de dominio, también se puede usar una cuenta con privilegios de administrador del dominio para poder acceder. Para nuestro ejemplo, usaremos la cuenta del administrador de dominio.
Realmente se pueden hacer muchísimas cosas con éste comando (PsExec), de hecho pueden ver la ayuda con psexec /? para verificar, pero nosotros nos enfocaremos en 2 acciones más comunes.
Requisitos indispensables para el equipo remoto:
- Deben de estar abiertos los puertos TCP:135, TCP:445, UDP:137 y UDP:138. En una LAN, creo que no habría problemas porque éstos puertos son necesarios para compartir archivos entre otras cosas; hay quienes bajan el firewall de los equipos, pero eso no es correcto xD
- Se deben de tener los recursos compartidos de sistema Admin$ y IPC$
- Entiendo que todos los Windows lo tienen por defecto (por lo menos las versiones Professional)
La primera vez que se ejecute el comando, aparecerá una ventana sobre el acuerdo de licencia, al cual debemos de dar clic en «Agree» (En teoría, habría que leerlo antes xD )
Ejecución de una línea de comando
Si solo queremos ejecutar algo en concreto y ver su salida, podemos usar una sola línea de comando así:
psexec \\10.20.30.40 -u dominio\administrator -s ipconfig
Donde:
- \\10.20.30.40
- Es la IP o nombre de equipo remoto al que nos queremos conectar.
- -u dominio\administrator
- El parámetro -u permite colocar un nombre de usuario para autenticarse al equipo remoto. En éste ejemplo, se uso la sintaxis de conectarse mediante el usuario Administrator de un dominio, pero perfectamente se puede usar una cuenta de usuario local del equipo remoto pero que tenga privilegios de administrador (que esté dentro del grupo Administradores).
- -s ipconfig
- El parámetro -s permite ejecutar directamente un comando en el equipo remoto; en nuestro caso, hemos utilizado el comando ipconfig para que nos devuelva la configuración de red del equipo remoto.
Aparecería algo similar al siguiente ejemplo:
Se ejecuta una vez y nos muestra la salida o resultado del comando nada más; O sea que se conecta al equipo remoto únicamente a hacer lo que le enviamos en el parámetro -s
Conexión completa al equipo remoto vía CMD
Nos podemos conectar directamente al equipo remoto mediante PsExec de la siguiente manera:
psexec \\10.20.30.40 -u dominio\administrator -s cmd
De ésta forma, ya estamos dentro del equipo remoto en su propio CMD. Desde aquí, podemos hacer lo que queramos (o lo que se pueda hacer con un CMD). A continuación, un ejemplo:
De más esta decir que, para salirnos de ésta CMD, hay que ingresar el comando exit
Bien, ¡eso sería todo! En otra entrada vamos a ver un poco sobre cómo gestionar servicios vía comando y cambiar la configuración IP con el comando netsh, dado que creo que pueda estar de la mano con ésta entrada.
¡Saludos!
Gracias, fue de gran ayuda tu tutorial, saludos desde colombia.
Excelente, ¡De nada!. ¡Saludos!
Muy buen tutorial y bien explicado, a algunas pc dentro de mi red logre entrar pero a otras me sale acceso denegado pero para todas tengo un mismo usuario y contraseña de administrador, a que se puede deber esto? saludos desde peru
Podría ser que el firewall de Windows (u otro) este bloqueando la comunicación de los puertos mencionados (TCP:135, TCP:445, UDP:137 y UDP:138).
Por seguridad está deshabilitado pero crea un script para ello
@echo off
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
@pause
Excelente!, buen aporte
Buenisimo el tuto, gracias.
¡Muchas gracias!, de nada. Saludos.
Que contraseña hay que conocer la tuya o la de la persona que deseas trollear
Hola. Sería necesario el usuario/contraseña de un usuario con privilegios de administrador en el equipo remoto; en un dominio, lo mejor sería el administrador del dominio. Saludos.
Veo que pide la contraseña al iniciar, es posible enviarsela como parametro para automatizar tareas en un servidor?, gracias, saludos.
Sí, creo que es el parámetro -p
Saludos.
Al momento de ingresar el comando me arroja el Msj de error
«Couldn´t access «ip»:
Acceso denegado.»
Tengo contraseña de administrador local y administrador de Dominio y con ninguna me permite el acceso.
Podría ser que la computadora destino ha de tener algún firewall activo.
Buenas,
Sería posible utilizar estas herramientas con la pantalla de una máquina que utiliza Windows CE.?
Desde ya gracias.
Buen día,
Esta conexión remota por consola por medio de un usuario administrado de red, sobre el equipo a conectare este hereda las politicas configuradas por gpo sobre el administrador?
Buenas. Supongo que sí, las que aplique claro está, dado que mediante una sesión de símbolo de sistema no creo que hayan muchas gpo que se le aplique, además de ser el administrador del dominio; siempre se puede usar también una cuenta local con privilegios de administrador. Saludos.
la herramienta mencionada tiene q estar instalada en todos los equipo es decir A y B?
Solo desde donde se inicia la conexión (A). Saludos!
Una herramienta que se saca mucho provecho, en la escuela en la materia de análisis de vulnerabilidades un reto fue subir privilegios de Admin a System usando Psexec. Buena explicación.
Gracias. Interesante el reto! Saludos.
Bro grasias me ayudo a llevaar comida ala kasa, saludos desde benezuela
De nada, que bueno que le fue de ayuda. Saludos!
Se enterará de esto el administrador, o le va a aparecer algo?