首先,访问令牌
包含的内容远远超过安全标识符(SID)。只需“以管理员身份运行”程序,即可在任务管理器中看到其用户是自己而不是管理员,而这个奇迹仅通过修改访问令牌而不是替换SID即可实现。
其次,尽管有各种说法(即使在Microsoft内部),NT-AUTHORITY和SYSTEM也不是帐户也不是组。SID通常具有在需要时显示的名称。用户帐户将其SID作为主体SID贡献给访问令牌,访问令牌还将确定各种实用程序显示的名称。但是访问令牌可能包含其他SID,例如该用户帐户所属的所有组的SID。在检查权限时,Windows将在具有该权限的访问令牌中查找任何SID。
一些众所周知的Windows SID将具有Windows报告的名称,尽管它们实际上并不属于任何帐户。
维基百科将安全标识符定义为:
用户,用户组或其他安全主体的唯一的,不变的标识符
。
SID甚至不需要定义用户帐户或组。它只是定义了一组权限。上面的维基百科文章添加了:
Windows根据访问控制列表(ACL)授予或拒绝对资源的访问和特权,访问控制列表(ACL)使用SID唯一标识用户及其组成员身份。当用户登录计算机时,将生成一个访问令牌,其中包含用户和组SID和用户特权级别。当用户请求访问资源时,将根据ACL检查访问令牌,以允许或拒绝对特定对象的特定操作。
的SID NT-AUTHORITY\SYSTEM
可以添加到其他帐户。例如,这是关于LocalSystem帐户的说法
:
LocalSystem帐户是服务控制管理器使用的预定义本地帐户。[...] 它的令牌包括NT AUTHORITY \ SYSTEM和BUILTIN \ Administrators SID;这些帐户可以访问大多数系统对象。
在上面的文本中已经可以看到,即使在Microsoft文档中,关于系统SID的混乱也依然存在,系统SID并非完全是帐户或组-仅仅是一组权限。这种混乱进一步扩展到其他实用程序和文章,因此,应仔细检查返回的任何信息。
Microsoft文章
Windows操作系统中的知名安全标识符
详细介绍了所有系统SID,我在其中包括了其中的一些:
结论:NT-AUTHORITY \ SYSTEM是安全ID的名称,它既不是组也不是帐户。当它是程序的主要SID时,在任务管理器中显示为SYSTEM。我最多称其为“伪帐户”。