给定一对用户和一个特权,我需要确定用户是否在服务器上具有特权。在我的设置中,以下是正确的:
- 服务器是域的一部分,但不是域控制器
- 基础设施中有多个具有信任关系的域
- 有时用户(本地、域或来自不同域)可以属于本地组,因为他们属于属于本地组的其他组(域或本地),而不是直接属于该组。
最后一点的示例场景:
- User1 属于 DomainA 中的组 TeamA
- DomaimA\TeamA 是 DomainB\SpecialAccess 的成员
- DomainB\SpecialAccess 是 DomainB\DomainAdmins 的成员
- 最后 DomainB\DomainAdmins 属于本地管理员组
- 本地管理员组具有 SeRemoteInteractiveLogonRight 特权
现在,如果我有输入 DomainA\User1 和 SeRemoteInteractiveLogonRight 我需要到达是或否的答案。所以我在机器上打开本地策略,注意我感兴趣的右边列出了哪些组,然后去服务器管理器查看组成员的内容,然后我需要查看这些组中任何组的哪些成员等等。
我有一种直觉,它可以更容易。当我发现AccessChk 实用程序时我真的很兴奋它持续了整整三分钟,我发现它只列出了直接关系,因此不会列出组内的用户。
现在我猜测有可能将 AccessChk 的结果结合起来,以便我可以检查用户是否属于 AccessChk 返回的任何组,但鉴于它不是单个域,而是其中几个我是不知道如何解决这个问题。此外,AccessChk 输出似乎没有区分组和用户。
编辑:本着不陷入 XY 问题陷阱的精神,我真正需要做的是确保在一组服务器上,没有用作 IIS 应用程序池标识的特定用户帐户具有 SeInteractiveLogonRight 或 SeRemoteInteractiveLogonRight 权限。我对 IIS 部分没有任何问题,但是根据特权检查帐户的最后一步是我正在努力寻找一种简单的检查方法。我也想自动化检查,因为这是需要定期进行的事情。
访问令牌没有关于权限的信息,只有关于特权的信息。
你需要做的是:
以上依赖于帐户身份对应的进程(和令牌)的存在。在您的情况下,这应该不是问题。在出现此问题的情况下,您可以尝试使用 Active Directory 查找Token-Groups 计算属性。本文列出了一些如何实现这一目标的方法。