¿Qué cuenta de Windows se usa cuando nadie ha iniciado sesión?

25

Cuando nadie inicia sesión en Windows (se muestra la pantalla de inicio de sesión), ¿a qué usuario se están ejecutando los procesos actuales? (Los controladores de video / sonido, sesión de inicio de sesión, cualquier software de servidor, controles de accesibilidad, etc. No pueden ser usuarios ni el usuario anterior porque nadie ha iniciado sesión. ¿Qué sucede con los procesos iniciados por un usuario pero que continúan ejecutándose después del cierre de sesión? (Por ejemplo, HTTP, servidores FTP y otras cosas de redes). ¿Se cambian a la cuenta del SISTEMA? Si un proceso iniciado por el usuario cambia a SISTEMA, eso indica una vulnerabilidad muy seria. ¿Se ejecuta el proceso a medida que el usuario continúa ejecutándose como ese usuario después de que se haya desconectado?

¿Es por esto que el hack de SETHC le permite usar CMD como SISTEMA?

Kunal Chopra
fuente
"Cambiar de usuario" en realidad no es una operación en blanco y negro en Windows. Un servicio puede personificar múltiples usuarios al mismo tiempo, y seguir utilizando la cuenta original también. Esto es útil para los servicios que deben actuar en nombre de usuarios específicos, dicen los visitantes autenticados del sitio.
MSalters
3
Windows es un sistema operativo multiusuario, lo que significa que diferentes procesos pueden pertenecer a diferentes usuarios al mismo tiempo . No es así una vez que inicias sesión en la computadora completa, "cambia" a tu cuenta.
el.pescado

Respuestas:

40

Cuando nadie inicia sesión en Windows (se muestra la pantalla de inicio de sesión), ¿a qué usuario se están ejecutando los procesos actuales? (Los controladores de video / sonido, sesión de inicio de sesión, cualquier software de servidor, controles de accesibilidad, etc.

Casi todos los conductores corren en núcleo modo; no necesitan una cuenta, a menos que inicien procesos de espacio de usuario. Los pocos controladores de espacio de usuario se ejecutan bajo SISTEMA.

La sesión de inicio de sesión, no puedo verificar ahora, pero estoy seguro de que también usa SISTEMA. Puedes ver logonui.exe en Proceso Hacker o SysInternals ProcExp . De hecho, puedes ver todo de esa manera.

"Software del servidor", consulte los servicios de Windows a continuación.

¿Qué sucede con los procesos iniciados por un usuario pero que continúan ejecutándose después del cierre de sesión? (Por ejemplo, HTTP, servidores FTP y otras cosas de redes). ¿Se cambian a la cuenta del SISTEMA?

Hay tres tipos aquí:

  1. Procesos de "fondo" antiguos simples. Los que se ejecutan bajo la misma cuenta que quien los inició, y no haga Ejecutar después de cerrar la sesión. El proceso de cierre de sesión los mata a todos.

    "HTTP, servidores FTP y otras cosas de redes" no haga Ejecutar como procesos de fondo regulares. Se ejecutan como servicios.

  2. Procesos de "servicio" de Windows. No se lanzan directamente, sino a través de Service Manager. De forma predeterminada, los servicios se ejecutan como LocalSystem (que, como dice Isanae, es igual a SYSTEM), aunque pueden tener cuentas dedicadas configuradas.

    (Por supuesto, prácticamente nadie se molesta. Simplemente instalan XAMPP o WampServer o alguna otra basura, y lo dejan funcionar como SISTEMA, sin parchear para siempre).

    En los sistemas Windows recientes, creo que los servicios también pueden tener su propia SID, pero una vez más no he investigado mucho todavía.

  3. Tareas programadas. Estos se inician con el "servicio" del "Programador de tareas" en segundo plano ", y siempre se ejecutan en la cuenta configurada en la tarea (generalmente quien creó la tarea).

Si un proceso iniciado por el usuario cambia a SISTEMA, eso indica una vulnerabilidad muy seria

No es una vulnerabilidad porque debes ya Tener privilegios de administrador para instalar un servicio. Tener privilegios de administrador ya te permite hacer prácticamente todo.

(ver también varias otras no-vulnerabilidades del mismo tipo)

grawity
fuente
2
Podría valer la pena tener en cuenta que gran parte de IIS se ejecuta bajo cuentas con privilegios más bajos creados específicamente para procesos de IIS listos para usar. (Esto cubriría muchos servidores HTTP, FTP, etc. de Windows.) Ver aquí para algunos detalles Por lo tanto, a menudo depende de los valores predeterminados de cualquier programa que esté utilizando.
jpmc26
1
SISTEMA y administrador local son esencialmente uno y el mismo. Una vez que tiene uno, puede obtener el otro, y el sistema operativo solo pone obstáculos para prevenir errores. (Nota: Lo viejo y nuevo no es documentación oficial de Microsoft.)
a CVn
3
En estos días muchos servicios se ejecutan como NetworkService o LocalService, no LocalSystem.
Ben Voigt
2
A partir de Windows 7 y 2008 R2, Cuentas de servicios gestionados y cuentas virtuales permite ejecutar servicios bajo sus propias identidades, por lo que no tiene un montón de servicios que compartan LocalService / NetworkService / LocalSystem, lo que limita el acceso si un servicio tiene una vulnerabilidad.
afrazier
2

Los procesos de inicio de sesión y preinicio se ejecutan como SISTEMA (también denominado LocalSystem). De hecho, una forma de ejecutar un shell (como un indicador de CMD) como SYSTEM en algunas versiones de Windows es reemplazar un programa de accesibilidad, como el lector de pantalla, la lupa o el teclado en pantalla, con una copia de enlace a) CMD.EXEy luego use el acceso directo para habilitar esa función de accesibilidad antes de iniciar sesión. Obtendrá un símbolo del sistema, aunque no haya usuarios registrados, y CMD se ejecutará como sistema.

(Nota: esto es peligroso, obviamente, ya que permite que las personas omitan el proceso de inicio de sesión de Windows. Nunca debe configurar una computadora de esta manera y luego dejarla así)

CBHacking
fuente
1
Funciona en Windows 7, reemplazó sethc.exe con cmd.exe en C: \ Windows \ System32 \
1

Ellos no "cambian" a nada; tales procesos Nunca ejecutar en el contexto de usuario actual.
Son propiedad de la SYSTEM usuario.

Todos los procesos y servicios que son propiedad de un usuario individual se terminan al cerrar la sesión.
Eso es lo que desconecta medio .

Lightness Races in Orbit
fuente
No estoy seguro ... En primer lugar, encontré una publicación de MS Technet en la que (no como esto significa mucho) una respuesta aceptada por el personal declaró que los servicios no se terminan al cerrar la sesión. Tampoco estoy seguro de que esta sea una definición precisa de cierre de sesión más general: vi varios daemons en Linux después de cerrar sesión en un usuario ps como otro
underscore_d
1
Eso no es correcto. Los servicios pueden iniciarse como otro usuario y se iniciarán y continuarán ejecutándose sin que ese usuario haya "iniciado sesión". Comenzarán su propia sesión con las credenciales de los usuarios, así que en realidad el usuario iniciará sesión mientras se ejecuta el servicio, pero no se ejecutarán los programas de escritorio / inicio automático, etc., y eso es lo que los usuarios normales entienden como "conectado". Aún así, el servicio se ejecutará con las credenciales de ese usuario y tendrá acceso a los archivos de ese usuario.
Josef
@Josef: su argumento parece reducirse a "algunas personas hacen mal uso del término 'conectado'". La carne real de su comentario concuerda con mi respuesta: ese usuario se considera conectado durante el tiempo que tengan servicios / procesos ejecutándose en su cuenta.
Lightness Races in Orbit
@LightnessRacesinOrbit no, hay una diferencia real. Si crea un servicio con su cuenta y se ejecuta al inicio, no se iniciará ningún proceso para que muestre el escritorio (por lo que no se está ejecutando dwm.exe ni explorer.exe), no se ejecutarán todos los programas de inicio automático. estar ejecutando, etc. Entonces, si tiene una sesión de inicio de sesión interactiva, hay muchas más cosas activas que si solo se está ejecutando la sesión de servicio. Lo que exactamente es "iniciar sesión" está abierto a debate. Incluso si un servicio se ejecuta con sus credenciales, ¡debe iniciar sesión para usar Windows por su cuenta!
Josef
1
Bueno, "tales procesos nunca se ejecutan en el contexto del usuario actual" sigue siendo incorrecto. Los servicios se ejecutan bajo el contexto de usuario establecido para ellos. Para los servicios integrados de Windows, esa es una de las cuentas del sistema. Para otros servicios, puede ser cualquier cuenta. Especialmente el software del servidor debe crear una nueva cuenta de usuario y ejecutar esas credenciales.
Josef