29 votos

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

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

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

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

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

EDITAR : A todas las personas que están votando en contra de esta pregunta: Yo soy no intentando burlar cualquier tipo de medida de seguridad. Ya puedo correr el proceso en la máquina remota mediante el 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 puedo hacer a través de una GUI.

0 votos

Es una pregunta pobre porque en este sitio nos oponemos a que los usuarios finales nos pregunten cómo burlar los sistemas de seguridad. Tal vez deberías leer esto: meta.serverfault.com/questions/1659/ y, a continuación, la lectura de las preguntas frecuentes.

9 votos

Yo soy no tratando de burlar cualquier sistema de seguridad. Estoy tratando de hacer algo que ya puedo hacer a través de una interfaz gráfica de usuario, a través de la línea de comandos en su lugar, que me parece más conveniente. Por favor, explícame cómo eso constituye burlar un sistema de seguridad.

5 votos

Hay muchas veces en las que una persona que es administradora tiene buenas razones para encontrar una manera de ejecutar un proceso sin usar los derechos administrativos completos. 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 frente a configurarlo para que se acceda usando una cuenta más limitada, entonces a menudo es bueno hacer el trabajo necesario para ejecutarlo bajo la cuenta más limitada.

27voto

David Anderson - DCOM Puntos 7724

Como se encuentra en: https://stackoverflow.com/questions/534426/psexec-help-needed

Es necesario tener derechos de administrador en el objetivo, ya que parte de psexec inicia un servicio de servicio de Windows en el objetivo, y usted necesita derechos de administrador para poder hacer hacer eso.

psexec copia un archivo psexecsvc al admin y luego, utilizando la gestión remota inicia un servicio utilizando ese archivo. Abre tuberías con nombre y utiliza eso para la comunicación posterior. Cuando termina, se limpia a sí mismo. de sí mismo.

Aunque no encuentro documentación OFICIAL que diga lo mismo.

4voto

Guido van Brakel Puntos 886

Pide ser administrador local en la máquina.

Editar: O ejecute el comando como una tarea programada. O utilice el parámetro -l en PsExec:Ejecutar el proceso como usuario limitado (elimina el grupo Administradores y sólo permite los privilegios asignados al grupo Usuarios). En Windows Vista el proceso se ejecuta con baja integridad. Véase aquí: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Lamento decirlo, pero ¡el RTFM!

Por ejemplo: Para ejecutar Internet Explorer como con privilegios de usuario limitados utilice este comando:

psexec -l -d "c: \program archivos \internet explorador \iexplore.exe "

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

1 votos

Los sysadmins no lo permitirán, y no debería ser necesario. No es necesario en Linux.

4 votos

@HighCommander4, ¿qué diferencia hay entre que sea necesario o no en Linux? Esto es un entorno Windows. Deja de comparar manzanas con naranjas.

2 votos

@John: Sólo estaba explicando que no estoy tratando de hacer nada que deba requerir privilegios de administrador. Tengo dos máquinas, con una cuenta en cada una, y estoy tratando de iniciar remotamente un proceso en una máquina desde la otra. Esto me parece algo muy natural, y me parece absurdo requerir privilegios de administrador para hacerlo.

1voto

tony roth Puntos 2985

No, no de forma útil. ¿Por qué quieres hacer esto y no ser un administrador?

0 votos

No tengo una cuenta de administrador en la máquina de destino. Sólo tengo una cuenta de no administrador, y me gustaría ejecutar un proceso bajo esta cuenta, utilizando la línea de comandos. ¿Cuál es la mejor manera de hacerlo?

2 votos

Pide a tu administrador de dominio que lo haga por ti. Lo cual no debería ser un problema a menos que lo que estés haciendo sea sospechoso, ¿verdad?

2 votos

¿Pedir al administrador de mi dominio que haga qué por mí? Ya puedo ejecutar el proceso mediante el escritorio remoto en la máquina utilizando la cuenta de no-administrador, y ejecutar el proceso bajo esa cuenta, es decir, el proceso en sí no necesita privilegios de administrador para ejecutarse. Sólo quiero ser capaz de hacer esto desde la línea de comandos en lugar de tener que el escritorio remoto en la máquina.

1voto

Robert Ebers Puntos 11

Probablemente sea mejor usar los comandos de Powershell:

-1voto

Shyam Puntos 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);
            }
        }`

4 votos

Una forma segura de llamar la atención del sistema es publicar respuestas idénticas a preguntas antiguas. El volcado de código sin explicación tampoco es bueno. Por favor, actualiza tus respuestas con alguna explicación sobre lo que hace el código y cómo resuelve el problema del usuario.

1 votos

Ok, a veces el PsExec aunque esté instalado no invoca otros exes cuando se le pide. El problema tiene que ver con la configuración del valor DWORD EulaAccepted a 1. No pude encontrar una página que discute este problema, por lo que agregó aquí.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: