net user /domain 返回错误 5 - 访问被拒绝

net user /domain 返回错误 5 - 访问被拒绝

我确实有一个域,其中所有用户和计算机对象的默认 ACL 都已被更改,并且列表对象模式(目录对象的基于访问的枚举)已启用。最值得注意的是,Everyone:Read 权限已从大多数目录对象的列表中删除,因此用户无法读取“外部”对象以遵守隐私保护策略。

在这个组合中,应用程序的客户端(基于UniPaas框架如果这很重要)正在尝试读取特定用户的组成员身份,但由于未知原因而失败。 我们从软件制造商那里得到了一个简单的测试案例,其中net user %USERNAME% /domain失败并出现错误 5 - 此基础架构中的访问被拒绝。 网络协议net use正在使用,并且它失败的方式与我们在对应用程序进行网络跟踪时看到的情况相对应。

我现在有点不知所措,因为我对调用的内部机制一无所知net user(尤其是它使用什么 API 来读取属性以及用户需要什么权限才能获取这些属性)。我该如何开始调试它?

编辑:我想到的一个办法是运行 Wireshark 来记录由呼叫引起的网络流量net user %username% /domain。一切看起来都很好,直到对 BUILTIN 域 (S-1-5-32) 发出 SAMR OpenDomain 调用并返回 STATUS_ACCESS_DENIED,之后所有连接都被断开。请参阅此 pcap 跟踪中的数据包 33 和 34。这似乎是拒绝访问回复来自net user,尽管我不知道这里出了什么问题。

答案1

看起来您已经设法阻止了对builtin组的枚举。该net user调用在其操作过程中打开了与两个域的连接:

  1. 根据域 SID 到您的 AD 域。
  2. 到基于 BUILTIN 域众所周知的 SID(S-1-5-32)。

大多数查询都是通过第一个连接进行的,一个查询通过第二个连接。此过程变成了$YOURDOMAIN\Domain Users众所周知的BUILTIN\Domain Users(S-1-5-32-545) 原则,系统知道要对其进行特殊处理。当与 BUILTIN 域的连接被拒绝时,整个调用将失败。

Builtin检查域树中 AD 容器的权限- 它应该有一个 ACE。还应该允许容器"Authenticated Users:Read"的枚举-域顶层的 ACE 也应该处理这个问题。BuiltinAuthenticated Users:Read

答案2

我们上周也遇到过类似的问题。最终发现是域控制器上的 gpo 设置出了问题。

GPO:计算机配置\Windows 设置\安全设置\本地策略\安全选项 - 网络访问:限制允许对 SAM 进行远程调用的客户端

它被设置为启用,我们必须将其删除。

相关内容