Conexión remota vía CMD en Windows – PsExec

z00¡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 ).

z01

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:

z021

z03

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 )

z04


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:

z05

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:

z06

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!

Comentarios por Facebook

comentarios

24 respuestas a “Conexión remota vía CMD en Windows – PsExec”

  1. 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

  2. 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.

  3. 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.

  4. 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*