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

the*_*bit 7 active-directory windows-server-2008-r2

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

在这个星座中,应用程序的客户端(如果这很重要,则基于UniPaas 框架)正在尝试读取特定用户的组成员身份,但由于未知原因而失败。我们从软件制造商那里得到了一个简单的测试用例,其中 anet 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。这似乎是Access denied响应的原因net user,尽管我不知道这里出了什么问题。

sys*_*138 6

看起来您以某种方式设法阻止了对builtin组的枚举。net user作为其操作的一部分,该调用打开与两个域的连接:

  1. 基于域 SID 到您的 AD 域。
  2. 到基于广为人知的 SID (S-1-5-32)的 BUILTIN 域。

大多数查询都对第一个连接完成,一个通过第二个连接。此通行证变成$YOURDOMAIN\Domain Users了广为人知的BUILTIN\Domain Users(S-1-5-32-545)原则,系统知道将其特殊对待。当与 BUILTIN 域的连接被拒绝时,整个调用都会失败。

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