¿Cómo usar psexec sin privilegios de administrador en la máquina de destino?

27

¿Es posible utilizar psexecpara ejecutar un comando en una máquina remota sin tener privilegios de administrador en la máquina remota?

Intenté ejecutar psexec \\<machine> -u <username> -p <password>, donde <username>y <password>son credenciales que no son de administrador, pero recibo un error de "acceso denegado"

Puedo usar el escritorio remoto en la máquina remota con las mismas credenciales sin ningún problema.

Mi máquina local ejecuta Windows 7 Enterprise de 64 bits y la máquina remota ejecuta Windows Server 2008 de 64 bits. Tengo privilegios de administrador en la máquina local.

EDITAR : Para todas las personas que están downvoting esta pregunta: Puedo no tratando de eludir cualquier tipo de medida de seguridad. Ya puedo ejecutar el proceso en la máquina remota haciendo un escritorio remoto en la máquina remota y ejecutándolo. Simplemente estoy buscando una forma de línea de comandos para hacer algo que ya pueda hacer a través de una GUI.

HC4 - reinstalar a Monica
fuente
Es una pregunta pobre porque en este sitio nos oponemos a que los usuarios finales nos pregunten cómo eludir los sistemas de seguridad. Tal vez debería leer esto: meta.serverfault.com/questions/1659/… , seguido de una lectura de las preguntas frecuentes.
John Gardeniers
77
Estoy no tratando de eludir cualquier sistema de seguridad. Estoy tratando de hacer algo que ya puedo hacer a través de una GUI, a través de la línea de comandos, lo que me parece más conveniente. Por favor explíqueme cómo eso constituye eludir un sistema de seguridad.
HC4 - reinstalar a Monica el
44
Hay muchas ocasiones en que una persona que es administrador tiene buenas razones para encontrar una manera de ejecutar un proceso sin utilizar todos los derechos administrativos. A veces, por supuesto, no es posible o no es práctico, pero si unos pocos ajustes en el sistema pueden marcar la diferencia entre abrir un sistema por completo o configurarlo para acceder a él utilizando una cuenta más limitada, entonces a menudo es bueno hacer el El trabajo necesario para ejecutarse bajo la cuenta más limitada.
Shannon Wagner
8
Administro hosts Windows, Linux y UNIX en mi puesto de trabajo y si tuviera que responder a la pregunta de un usuario atacándolo por hacer la pregunta, pronto quedaría sin trabajo. Esta persona no solicita un método para eludir los derechos administrativos. Él está pidiendo un método para usar PSEXEC con derechos limitados para ejecutar un proceso que ya tiene derechos para ejecutar a través de la GUI.
Robert Ebers

Respuestas:

26

Como se encuentra en: /programming/534426/psexec-help-needed

Debe tener derechos de administrador en el objetivo como parte de psexec inicia un servicio de Windows en el objetivo, y necesita derechos de administrador para poder hacerlo.

psexec copia un archivo psexecsvc en el recurso compartido de administración y luego, mediante la administración remota, se inicia un servicio con ese archivo. Abre tuberías con nombre y las usa para una mayor comunicación. Cuando termina, se arregla después de sí mismo.

Aunque no puedo encontrar documentación OFICIAL que diga lo mismo.

Safado
fuente
5

Solicite ser administrador local en la máquina.

Editar: O ejecute el comando como una tarea programada. O use el modificador -l en PsExec: Ejecute el proceso como usuario limitado (elimina el grupo Administradores y solo permite privilegios asignados al grupo Usuarios). En Windows Vista, el proceso se ejecuta con baja integridad. Ver aquí: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Lamento decirlo, pero RTFM!

Por ejemplo: Para ejecutar Internet Explorer como con privilegios de usuario limitado, use este comando:

psexec -l -d "c: \ archivos de programa \ internet explorer \ iexplore.exe"

Tenga en cuenta que la contraseña se transmite en texto claro al sistema remoto.

Guido van Brakel
fuente
1
Los administradores de sistemas no lo permitirán, y no debería ser necesario. No es necesario en Linux.
HC4 - reinstalar a Monica el
44
@ HighCommander4, ¿qué diferencia importa si es necesario o no en Linux? Este es un entorno de Windows. Deja de comparar manzanas con naranjas.
John Gardeniers
2
@ John: Estaba explicando que no estoy tratando de hacer nada que requiera privilegios de administrador. Tengo dos máquinas, con una cuenta en cada una, y estoy tratando de iniciar de forma remota un proceso en una máquina desde la otra máquina. Esto me parece algo muy natural, y parece absurdo requerir privilegios de administrador para hacerlo.
HC4: restablecer a Monica el
@ HighCommander4, lo que intenta hacer, que es acceder administrativamente a una computadora remota, REQUIERE acceso de administrador en Windows. Si bien eso puede parecer absurdo, tiene mucho sentido para aquellos que tienen que administrar una red de Windows.
John Gardeniers
44
@John: ¿Qué es "administrativo" acerca de ejecutar un programa en su propia cuenta?
HC4 - reinstalar a Monica el
2

No, no de una manera útil. ¿Por qué querrías hacer esto y no ser administrador?

Tony Roth
fuente
2
Pídale a su administrador de dominio que lo haga por usted. Lo que no debería ser un problema a menos que lo que estás haciendo sea sospechoso, ¿verdad?
Safado
2
¿Pedirle a mi administrador de dominio que haga algo por mí? Ya puedo ejecutar el proceso mediante el escritorio remoto en la máquina usando la cuenta que no es de administrador y ejecutando el proceso con esa cuenta, es decir, el proceso en sí no necesita privilegios de administrador para ejecutarse. Solo quiero poder hacer esto desde la línea de comandos en lugar de tener que usar el escritorio remoto en la máquina.
HC4 - reinstalar a Monica el
1
¿Es posible instalar ssh en un servidor de Windows sin privilegios de administrador? Si es así, ¿podría señalarme un enlace? Intenté OpenSSH pero parece requerir privilegios de administrador.
HC4 - reinstalar a Monica el
1
@tony roth: No necesita permisos elevados para ejecutar un demonio SSH en Linux. Solo necesita permisos elevados para ejecutarlo en un puerto privilegiado (0-1023). Puede configurar tanto el cliente como el servidor para usar un puerto no privilegiado, sin necesidad de permisos elevados en ninguna de las máquinas.
HC4 - reinstalar a Monica el
2
Y de hecho, he logrado configurar OpenSSH en el servidor de Windows sin ningún privilegio de administrador ejecutando el demonio SSH en un puerto no privilegiado. Anímate y vótame por atreverme a tomar la iniciativa de aumentar mi productividad en mi trabajo sin consultar primero con los Santos Administradores.
HC4 - reinstalar a Monica el
0

Una solución sería utilizar un script de AutoIT para iniciar sesión en su escritorio remoto en un horario desde su estación de trabajo. Haga que su carpeta de "inicio" ejecute su proceso a través de un script por lotes u otro script de AutoIT (para que pueda cancelar si realiza otro trabajo). Esto no es una línea de comando, pero automatiza su trabajo dentro de los parámetros que su administrador de sistemas le ha dado. Espero eso ayude.

Thrakorzog
fuente
-1

Probablemente hay una manera de hacer esto. Probablemente sea tan simple como editar permisos WMI en la máquina. Si no es posible, entonces usar algo como WinRM definitivamente funcionaría.

Sin embargo, todo eso es discutible para ti. No tiene acceso de administrador a la máquina en absoluto. Por lo tanto, no puede realizar ninguno de los cambios necesarios para que esto funcione. Necesita resolver esto con su administrador de sistemas en lugar de pedirnos que lo ayudemos a rodearlo. Recuerde una cosa muy claramente, la mayoría de nosotros aquí somos administradores de sistemas y no nos gustan los usuarios que intentan rodearnos. Eso no nos hace muy propensos a ayudarlo a tratar de sortear sus administradores de sistemas.

Jason Berg
fuente
2
No veo cómo estoy tratando de "dar la vuelta" a nada. Los administradores de sistemas quieren que pueda ejecutar procesos en esa máquina, de lo contrario no podría acceder al escritorio remoto. Todo lo que quiero es una forma de ejecutar el proceso utilizando la línea de comandos en lugar de la GUI de escritorio remoto. Ahora podría molestar a los administradores de sistemas sobre esto, o simplemente podría encontrar una manera de hacerlo yo mismo. Pensé que una comunidad de administradores de sistemas profesionales trataría de ayudarme, no de darme conferencias.
HC4 - reinstalar a Monica el
@HighCommander: la respuesta es que los administradores de sistemas deben proporcionarle esta capacidad. No puede hacerlo usted mismo, ya que no tiene derechos administrativos en la máquina. Si realmente aprueban esto, pídales que le den los derechos que necesita para poder hacer lo que necesita hacer.
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
fuente
44
Una forma segura de llamar la atención del sistema es publicar respuestas idénticas a viejas preguntas. Simplemente arrojar código sin explicación tampoco es genial. Actualice sus respuestas con alguna explicación sobre lo que hace el código y cómo resuelve el problema de los OP.
user9517 es compatible con GoFundMonica el
1
Ok, a veces el evento PsExec aunque esté instalado no invocará otros exes cuando se solicite. El problema tiene que ver con establecer el valor DWORD EulaAccepted en 1. No pude encontrar una página que discuta este problema, por lo que se agregó aquí.
Shyam
-1

¿Por qué alguien no solo dice que no es posible? Necesito hacer algo similar (Remote Exec a SAS Program), que tengo acceso si hago RDP en ese servidor (es decir, tengo acceso de inicio de sesión al servidor. Tengo acceso del sistema de archivos a la carpeta del código fuente y tengo acceso para ejecutar SAS).

Ningún administrador de sistemas es su mente correcta me va a otorgar derechos de administrador completos en ese cuadro solo para ejecutar de forma remota. Básicamente, PSTools es una herramienta de administrador de sistemas no diseñada para ser utilizada para el despliegue de soluciones de sistemas de TI reales.

GMT
fuente
1
Esta diatriba no responde a la pregunta en absoluto.
Flup
En realidad lo hace. +1
Amit Naidu