¿Hay alguna manera de ejecutar una aplicación como otro usuario actualmente registrado sin necesidad de su contraseña?

¿Hay alguna manera de ejecutar una aplicación como otro usuario actualmente registrado sin necesidad de su contraseña?

Me gustaría usar 'psexec' a través de una LAN para ejecutar un comando como otro usuario que haya iniciado sesión en el sistema al mismo tiempo.

En otras palabras: quiero usar 'psexec' con la credencial de cuenta de administrador integrada para ejecutar un programa en el escritorio de Bob. Este programa debe creer que fue iniciado por Bob utilizando sus credenciales. Como estoy usando la cuenta de Administrador, me gustaría evitar la necesidad de la contraseña de Bob para hacer esto (con 'runas', tal vez).

Editar 1

Aclaraciones:

Ya tengo acceso al sistema, ya que soy dueño de la cuenta de Administrador.

No tengo ganas de tener un agente/servicio/exe ejecutándose todo el tiempo en segundo plano.

Esta es una configuración casera.

Estaba pensando en algo como esto:http://reboot.pro/files/file/237-runassystem-and-runfromtoken/pero se aplica a cualquier otro usuario.

Quiero poder iniciar un programa como un juego o un cliente de correo que guarde archivos en rutas por usuario.** Por lo tanto, ejecutarlo como Administrador no sería efectivo ya que el programa cargaría el perfil de datos del Administrador y no el de Bob (que es sesión iniciada).

Mi objetivo final es poder ejecutar el comando 'whoami' y hacer que diga que soy el usuario registrado.

Actualizar

Pude obtener un 'cmd.exe' como SISTEMA y luego obtener una instancia como mi cuenta (protegida con contraseña) usando RunFromToken. Voy a probar esto más a fondo.

Respuesta1

No. Esto pasaría por alto por completo el punto de seguridad individual.

Sin embargo, agregaré que si tiene acceso a un sistema de implementación como SCCM, puede ejecutar un paquete solo cuando el usuario haya iniciado sesión y luego se ejecutará en el contexto del usuario. También puede ejecutar el paquete como parte de un script de inicio de sesión que también se ejecutaría en el contexto del usuario.

Respuesta2

Todas estas respuestas son correctas en cuanto a hacerse pasar por un usuario a través de la red. Sin embargo, puedes hacerte pasar por un usuario local sin necesidad de contraseña, bajo ciertas condiciones:

  1. Debe ser miembro del grupo de administradores locales.
  2. Solo puede hacerse pasar por otro usuario que actualmente esté conectado al sistema.
  3. La suplantación de usuarios se limita al sistema local. No puede hacerse pasar por un usuario en un sistema remoto sin antes iniciar sesión en el sistema remoto como miembro del grupo de administradores locales.

Esto está permitido debido a cómo Windows delega el PRIVILEGIO para hacerse pasar por usuarios que han iniciado sesión localmente en el SISTEMA y en los administradores locales. Puede encontrar información sobre este PRIVILEGIO en la política del grupo local > Políticas locales > Asignaciones de derechos de usuario > Suplantar a un cliente después de la autenticación.

Una herramienta que conozco que le permite hacer esto es Process Hacker 2. Ejecute la herramienta como administrador y busque un proceso que se esté ejecutando como el usuario que desea hacerse pasar. Haga clic derecho sobre él, seleccione Misc > Ejecutar como este usuario..., luego escriba la ruta binaria que desea ejecutar como ese usuario, por ejemplo cmd. Luego, CMD se abriría como ese usuario sin solicitar la contraseña de ese usuario.

Respuesta3

No puedes hacer eso y por muy buenas razones.

Sería el Santo Grial para cualquier virus si fuera posible.
Siempre hay una serie de procesos ejecutándose en varias cuentas de administrador en una computadora con Windows (como las cuentas LocalSystem y NetworkSystem, solo por nombrar 2).
Si su solicitud fuera posible lograr cualquier proceso arbitrario, podría insertar nuevos procesos en esas cuentas: De ninguna manera podrías proteger tu sistema de los virus. (Cualquier proceso arbitrario significa literalmente lo que dice: ¡Eso también incluye virus!)

Otras cuestiones son la privacidad y la responsabilidad.
Si puede fingir la operación como si la hubiera ejecutado otro usuario, puede obtener los datos de otros usuarios. La privacidad desaparece por la ventana.
Y ya no hay forma de saber si ese usuario o alguien que se hace pasar por él hizo realmente algo. Eso significa que ya no se puede rastrear de manera confiable quién hizo qué. Se pierde responsabilidad, lo cual es muy importante en los sistemas que deben cumplir con las normas de cumplimiento, como los sistemas médicos.

Estas son muy buenas razones para aislar los entornos de las cuentas entre sí. (Hay muchos más, pero eso está más allá del alcance de esta pregunta).

Respuesta4

Como se señaló en otras respuestas, probablemente realmente no desee hacer esto. Si fuera así de fácil, podría, por ejemplo, obligar a un usuario a cargar algún sitio web ilegal donde lo despedirían y lo arrestarían. Ni siquiera los administradores deberían tener ese tipo de poder divino.

Si todo lo que realmente desea hacer es averiguar quién está actualmente conectado a una computadora (local o remota), considere la utilidad "psloggedon" de MS TechNet (anteriormente SysInternals):https://technet.microsoft.com/en-us/sysinternals/bb897545.aspx

Si aún necesita ejecutar una tarea como usuario, busque ejecutar tareas al iniciar sesión... lo cual, por supuesto, aún se rastreará hasta usted, por razones de seguridad, pero Windows aún lo hará.correrla tarea como si fueras el usuario en cuestión.

información relacionada