给定一对用户和一个特权,我需要确定用户在服务器上是否具有特权。在我的设置中,以下是正确的:
- 服务器是域的一部分,但不是域控制器
- 基础架构中有几个具有信任关系的域
- 有时,用户(本地,域或来自其他域)可以凭借属于其他组(域或本地)的优点而属于本地组,而不是直接属于该组。
最后一点的示例方案:
- 用户1属于域A中的组TeamA
- DomaimA \ TeamA是DomainB \ SpecialAccess的成员
- DomainB \ SpecialAccess是DomainB \ DomainAdmins的成员
- 最后,DomainB \ DomainAdmins属于本地管理员组
- 本地管理员组具有SeRemoteInteractiveLogonRight特权
现在,如果我在输入DomainA \ User1和SeRemoteInteractiveLogonRight上输入,则需要输入是或否答案。因此,我在计算机上打开了“本地策略”,请注意我也对右边列出了哪些组,然后去服务器管理器,查看组成员中的成员,然后我需要查看这些组中任何组的成员等等。
我有一种直觉,感觉会更容易。当我发现AccessChk实用程序时,我感到非常兴奋。它持续了整整三分钟,让我发现它只列出直接关系,因此不会列出组内的用户。
现在,我猜测可以将AccessChk的结果进行某种方式的组合,以便我可以检查用户是否属于AccessChk返回的任何组,但是鉴于它不是单个域,而是其中的几个不知道该如何处理。另外,AccessChk的输出似乎无法区分组和用户。
编辑:本着不陷入XY问题陷阱的精神,我真正需要做的是确保在一组服务器上没有用作IIS应用程序池标识的特定用户帐户具有SeInteractiveLogonRight或SeRemoteInteractiveLogonRight特权。我的IIS部分没有问题,但是检查帐户是否具有特权的最后一步是我在努力寻找一种简单的检查方法。我还想使检查自动化,因为这需要定期进行。
6
这听起来像是一项工作...最终结果集(RSoP)!technet.microsoft.com/zh-CN/library/cc758010%28v=WS.10%29.aspx
—
Davidw 2014年
@zespri-我的回答是垃圾,我将其删除。SeInteractiveLogonRight和SeRemoteInteractiveLogonRight用户权限的处理方式与“普通”特权不同,并且对它们的报告似乎有问题。如果我想为您提供解决方案,我将发布另一个答案,但是,到目前为止,我什么都没有。
—
埃文·安德森
@Davidw-RSoP存在问题,因为本地安全策略的默认设置不会反映在输出中。因此,任何“未配置”条目都将显示为“未配置”,并且您实际上将看不到本地安全策略授予了哪些主体权限。最后,即使确实从组策略中获得了主体列表,您也将不得不扩展组成员身份(也可能跨域)以复制OS功能。实际上,事实证明这是一个比我预期的更具挑战性的问题。
—
埃文·安德森
@EvanAnderson就是这样!当要求我估计要花费多长时间时,这似乎是一项简单的任务。经过几天的谷歌搜索和尝试不同的事情...什么都没有。当前,我的计划是使用TokenPrivileges 令牌信息类来调用GetTokenInformation 。当然,我首先需要弄清楚如何获得令牌本身。该路线目前看来是最有前途的。
—
Andrew Savinykh
@zespri-NtOpenProcessToken()可能是获得令牌的最佳方法。(看一看leeholmes.com/blog/2006/07/21/...)
—
埃文安德森