¿Existe un equivalente de SU para Windows

32

¿Hay alguna forma (cuando inicie sesión como administrador o como miembro del grupo de administradores) para hacerse pasar por un usuario sin privilegios? Especialmente en un entorno AD.

Por ejemplo, en el mundo de Unix podría hacer lo siguiente (como root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Necesito probar / configurar algo en la cuenta de un usuario, y no quiero tener que saber su contraseña o tener que restablecerla.

Editar:
runas no lo cortará. Idealmente , todo mi escritorio se convertiría en el usuario, etc., y no solo en una ventana de cmd.

BIBD
fuente
Es curioso, pero ¿por qué necesita iniciar sesión como usuario? Por lo general, solo necesitaría hacer esto para configurar el correo electrónico. Sin embargo, he descubierto que la mayoría de las veces puedo configurar todo a través de la Política de grupo / Scripts / etc.
Dayton Brown

Respuestas:

20

Estoy bastante seguro de que no hay una forma compatible de ejecutarse como un usuario diferente sin tener las credenciales de ese usuario. Es una medida de no repudio. Alguien no puede decir: "No lo hice", porque o lo hicieron o alguien con sus credenciales lo hizo. Y por un segundo tendrían que darle a la otra persona las credenciales.

Normalmente, cómo hago lo que necesito hacer mientras estoy conectado como otro usuario es usar la asistencia remota para esencialmente RDP en la sesión y hacer que me otorguen el control. Luego hago lo que sea mientras están mirando (presumiblemente, de todos modos).

Cualquier otra cosa generalmente se puede hacer con GPO / scripts.

Orihara
fuente
8
Creo que esto es correcto. Y, en mi humilde opinión, esta es una mejora de seguridad en el mundo UNIX. Me gusta la idea de que ni siquiera un administrador pueda ser yo sin mi contraseña.
tomjedrz 01 de
3
Un administrador puede hacerse cargo de otro usuario restableciendo su contraseña. Luego pueden iniciar sesión como usted. Sin embargo, hay un rastro de evidencia si haces esto. Primero, se cambió la contraseña de los usuarios para que lo sepan. En segundo lugar, habrá registros de auditoría (suponiendo que la auditoría esté habilitada).
Erik Funkenbusch 01 de
3
Por lo general, también es así como opero. Sin embargo, hay puntos que digo "Sería mucho más fácil hacer esto para Bob si yo fuera Bob", pero Bob se fue a su casa hace una hora.
BIBD 01 de
1
En cuanto al "no repudio", hacer que restablezca su contraseña primero no me impide cometer actos maliciosos / estúpidos como otro usuario. Simplemente significa que tendría que hacer más trabajo para encubrir quién era el responsable.
BIBD
9
Entiendo lo que están tratando de hacer. Simplemente creo que es más un teatro de seguridad que la seguridad real.
BIBD 01 de
17

He notado que muchas otras personas mencionan variaciones en el comando runas y cómo necesita saber la contraseña de los usuarios, lo cual es cierto, pero no creo que nadie haya respondido en silencio a la pregunta. de "querer que todo el escritorio se convierta en usuario, etc. y no solo en una ventana de cmd". Así es como lo hago:

Nota : Me referiré a este primer símbolo del sistema como CP1 para eliminar la confusión más adelante.

Debajo de su cuenta de administrador, abra el símbolo del sistema

Para cuenta local

runas /profile /user:computernamehere\username cmd

Para cuenta de dominio

runas /profile /user:domainname\username cmd

O la forma en que lo prefiero

runas /profile /user:username@domainname cmd

Nota: Se abrirá un nuevo símbolo del sistema (CP2), este es el usuario con el que está intentando iniciar sesión.

Abra CP1 y escriba:

taskkill /f /IM explorer.exe

Abra CP2 y escriba:

explorer.exe

Dependiendo de la computadora, puede crear un perfil para el usuario si nunca antes ha iniciado sesión allí. Puede guardar el hassel más tarde manteniendo abiertas las ventanas del símbolo del sistema para su uso posterior.

Cuando haya terminado con su trabajo, simplemente haga lo mismo a la inversa.

En tipo CP2:

taskkill /f /IM explorer.exe

Abra CP1 y escriba:

explorer.exe

Ahora debería volver a la cuenta de administrador original. Puede hacer una comprobación rápida tocando la tecla de Windows y buscando el panel de usuario actual.

Espero que esto haya ayudado.

Michael H
fuente
3
Esa es una magia profunda.
mskfisher
@mskfisher Jaja, si crees que está loco, deberías ver lo que tuve que hacer para descubrir cómo matar una sesión psexec que se había bloqueado después de ejecutar un comando wmic incorrecto. ... Pskill desde un segundo símbolo del sistema, apuntó a la máquina remota, después de usar psservices para rastrear la identificación del proceso para psexec en el primer símbolo del sistema.
Michael H
Bueno, 4 años más tarde me acordé de esta pregunta y cuando tuve tiempo de probarla. ¡GUAUU!
BIBD
En Windows 10, el uso de runas solicita la contraseña del usuario.
TheAmigo
7

No hay un mecanismo incorporado en Windows para hacer esto. Se puede hacer, pero tendrá que tener algo escrito para hacer lo que desee, y probablemente tendrá que jugar con API indocumentadas.

Uno de los carteles aquí, Grawity, lo tiene correcto al llamar a CreateProcessAsUser (), pero primero deberá crear un token con la API nativa indocumentada zwCreateToken. Si eliminó Explorer y activó una nueva instancia de Explorer con CreateProcessAsUser () estoy bastante seguro de que obtendrá lo que desea.

Microsoft no facilita lo que quieres hacer porque no es la forma en que quieren que uses NT. Si necesita iniciar sesión como usuario para solucionar sus problemas, en la mayoría de los casos lo hará de una manera subóptima.

Puede realizar cambios en el registro del usuario sin iniciar sesión como ellos (adjuntando su sección de registro y manipulándola de esa manera). Puede realizar cambios en los archivos de su perfil de usuario sin haber iniciado sesión como usuario. Si necesita "configurar el correo electrónico" u otras actividades similares "como el usuario", debe escribir scripts o aprovechar la funcionalidad incorporada (Plantillas administrativas de políticas de grupo, preferencias, etc.) para hacer el trabajo sucio por usted.

Si tiene que hacer esto, eche un vistazo a RunAsEx en Code Project. Ese código debería darle una idea bastante buena de lo que tendrá que hacer. No he probado el programa, pero parece que va sobre todo de la manera correcta.

Evan Anderson
fuente
5

Puede usar el siguiente comando en Windows XP y versiones posteriores:

RunAs.exe

Las opciones de línea de comando están disponibles aquí .

Esto no funcionará sin conocer la contraseña de los usuarios. No creo que Windows pueda operar con una cuenta de usuario sin la contraseña debido a cómo se cargan los identificadores de seguridad.

Doug Luxem
fuente
3
Creo que el programa RunAs todavía requiere que sepas la contraseña de los usuarios, que creo que la pregunta original dice que no se conoce
Kevin Kuphal es el
Tienes razón ... Me había olvidado de eso.
Doug Luxem 01 de
2

(Solo una suposición.) Si su cuenta lo tiene SeCreateTokenPrivilege, podría escribir un pequeño programa para crear un proceso utilizando CreateProcessAsUser()o una función similar ... (Pero ni siquiera los administradores tienen el privilegio de forma predeterminada).

Gravedad
fuente
2

Aunque no tengo experiencia personal con algunas de las soluciones de sudo mencionadas en este sitio, recomiendo encarecidamente que el excelente Aaron Margosis haya comenzado . Es de gran ayuda a medida que implementa usuarios limitados. Principalmente salté con algo ya que todos los demás dicen que use Runas. Sin embargo, creo que la mayoría o la totalidad de estos llamados sudo para Windows tratan más con la elevación en lugar de actuar como otro usuario sin su contraseña.

Knox
fuente
0

Process Explorer procexp.exe en http://live.sysinternals.com tiene una ejecución como usuario limitado (en el menú de archivo) que le permitirá ejecutar un programa usando sus credenciales actuales, pero con su ACL reducida a la normal usuario (no administrador) usuario. No es exactamente lo que querías, pero es bueno para probar.

Booji Boy
fuente