没有人登录时使用哪个Windows帐户?


25

没有人登录Windows时(显示登录屏幕),当前进程以哪个用户身份运行?(视频/声音驱动程序,登录会话,任何服务器软件,可访问性控件等。它们不能是任何用户或以前的用户,因为没有人登录。关于用户已启动但继续执行的过程,该怎么办?是否在注销后运行(例如HTTP,FTP服务器和其他网络设备),它们是否切换到SYSTEM帐户?如果用户启动的进程切换到SYSTEM,则表明存在非常严重的漏洞。该进程是否以该用户身份运行退出后继续以该用户身份运行?

这就是为什么SETHC hack允许您将CMD用作SYSTEM的原因吗?


在Windows上,“切换用户”实际上不是黑白操作。服务可以同时模拟多个用户,并且仍在使用原始帐户。这对于需要代表特定用户(例如经过身份验证的网站访问者)采取行动的服务很有用。
MSalters 2015年

3
视窗是多用户操作系统,这意味着不同的进程可能属于不同的用户在同一时间。一旦您在整个计算机上登录“切换”到您的帐户,就不是那样了。
el.pescado 2015年

Answers:


40

没有人登录Windows时(显示登录屏幕),当前进程以哪个用户身份运行?(视频/声音驱动程序,登录会话,任何服务器软件,可访问性控件等。

几乎所有驱动程序都在内核模式下运行。他们不需要帐户,除非他们启动用户空间进程。少数用户空间驱动程序在SYSTEM下运行。

我现在无法检查登录会话,但是我确定它也使用SYSTEM。您可以在Process HackerSysInternals ProcExp中看到logonui.exe。实际上,您可以通过这种方式看到所有内容

“服务器软件”,请参见下面的Windows服务。

用户已启动但注销后仍可继续运行的进程又如何呢?(例如HTTP,FTP服务器和其他网络设备)。他们是否切换到SYSTEM帐户?

这里有三种:

  1. 普通的旧“背景”进程。它们与启动它们的人使用相同的帐户运行,并且在注销后运行。注销过程将全部杀死。

    “ HTTP,FTP服务器和其他网络设备” 作为常规后台进程运行。它们作为服务运行。

  2. Windows“服务”进程。这些不是直接启动的,而是通过Service Manager启动的。默认情况下,服务可以作为LocalSystem运行(isanae表示等于SYSTEM),尽管它们可以配置专用帐户。

    (当然,几乎没有人打扰。他们只是安装XAMPP或WampServer或其他废话,而让它作为SYSTEM运行,永远不会打补丁。)

    在最近的Windows系统上,我认为服务也可以有自己的 SID,但是我对此还没有进行过多研究。

  3. 计划任务。这些由“任务计划程序”服务“在后台”启动,并且始终在任务中配置的帐户下运行(通常是创建任务的人)。

如果用户启动的进程切换到SYSTEM,则表明存在非常严重的漏洞

这不是漏洞,因为您必须已经具有管理员特权才能安装服务。拥有管理员权限已使您几乎可以执行所有操作。

(另请参见相同类型的其他各种非漏洞



2
值得注意的是,许多IIS都是在为IIS进程专门创建的低特权帐户下运行的。(这将涵盖许多Windows HTTP,FTP等服务器。)有关详细信息,请参见此处。因此,这通常取决于您使用的任何程序的默认值。
2015年

1
SYSTEM和本地管理员本质上是相同的。一旦拥有一个,就可以得到另一个,而操作系统仅设置主要是为了防止错误的障碍。(请注意:Old New Thing不是官方的Microsoft文档。)
CVn 2015年

3
如今,许多服务作为NetworkService或LocalService而不是LocalSystem运行。
Ben Voigt

2
从Windows 7和2008 R2开始,托管服务帐户和虚拟帐户允许以自己的身份运行服务,因此,您没有一堆共享LocalService / NetworkService / LocalSystem的服务,如果一个服务存在漏洞,则限制访问。
afrazier 2015年

2

登录和预登录过程均以SYSTEM(也称为LocalSystem)运行。实际上,一种使外壳程序(例如CMD提示符)在某些Windows版本上以SYSTEM身份运行的方法是用(或链接到)CMD.EXE,然后在登录之前使用快捷方式启用该可访问性功能。即使没有任何用户登录,您也会得到命令提示符,并且CMD将以SYSTEM身份运行。

(注意:这显然很危险,因为它会让人们绕过Windows登录过程。您永远不要以这种方式配置计算机,然后再将其保留。)


1
在Windows 7上运行,在C:\ Windows \ System32 \中用cmd.exe替换了sethc.exe

1

他们不会“切换”到任何东西。这样的进程永远不会在当前用户上下文下运行。
它们归SYSTEM用户所有。

单个用户拥有的任何进程和服务都将在注销时终止。
这就是注销的意思


我不确定...首先,我发现了一个MS Technet帖子,其中(一个工作人员接受的答案)(不是很重要)指出服务未在注销时终止。我也不确定这是否是注销的准确定义:我注销了一个用户然后ps又注销了另一个用户后,我看到Linux上的几个守护进程仍然存在
underscore_d

1
那是不对的。可以以其他用户身份启动服务,并且服务将在没有该用户“登录”的情况下启动并继续运行。他们将使用该用户凭据启动自己的会话,因此实际上用户将在服务运行时登录,但是不会运行桌面/自动启动程序等,这就是普通用户理解为“登录”的状态。该服务仍将使用该用户凭据运行,并有权访问该用户文件。
约瑟夫

@约瑟夫:您的论点似乎可以归结为“某些人滥用了'已登录'一词。” 您评论的实际内容与我的回答一致:只要用户的帐户中有服务/进程在运行,该用户就被视为已登录
与Monica进行的Lightness竞赛

@LightnessRacesinOrbit不,存在实际差异。如果您使用帐户创建服务,并且该服务在引导时运行,则不会启动任何进程来显示桌面(因此不会运行dwm.exe或explorer.exe),所有自动启动程序都不会因此,如果您有一个交互式登录会话,那么与仅运行服务会话相比,活动得多。究竟“登录”的内容尚有争议。即使使用您的凭据运行服务,您仍然必须登录才能使用Windows!
2015年

1
嗯,“此类进程永远不会在当前用户上下文下运行”仍然是错误的。服务在为其设置的用户上下文中运行。对于内置的Windows服务,这是系统帐户之一。对于其他服务,它可以是任何帐户。尤其是服务器软件应创建一个新的用户帐户,并使用该凭据运行。
约瑟夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.