为什么在域控制器上创建的用户总是域的一部分?

Shu*_*eng 10 windows active-directory

为什么在域控制器上创建的用户总是域的一部分?

当我想在域控制器上创建本地用户时net user <username> <password> /add,我发现该用户自动包含在Domain Users组中。

我想在域控制器上创建一个本地管理员帐户,而不是域的一部分,它能够以交互方式登录到域控制器并执行管理任务。

这可能吗?

lon*_*eck 23

不,这是不可能的。域控制器没有自己的身份验证数据库。当提升为域控制器时,它被 Active Directory 取代。

  • `域控制器没有自己的身份验证数据库。当提升为域控制器时,它被 Active Directory 取代,这就是原因。所以这确实回答了为什么。 (8认同)
  • 老实说,如果问题是“微软为什么要这样设计?” 问题是,我会VTC。我们提供的任何答案都将是纯粹的猜测(除非这里有人在大约 1999 年左右在 MS 从事该项目?)。 (5认同)
  • @peterh 只有微软可能知道他们为什么这样设计,但我怀疑他们知道。在我的交接过程中,我必须回答大多数“为什么”的问题,“我这样做是因为这是我想到的第一件事,它起作用了,在那之后,永远不会改变正在运行的系统。” (4认同)
  • 这回答“这可能吗?” 来自问题正文,但没有回答标题中的“为什么”。关于“为什么”部分的任何见解? (2认同)
  • 那时我是 Windows 服务器的 MS MVP,并与“NT 5”测试版团队一起做了一些事情,并参加了一些讨论设计决策的会议。当时的论点是,在域控制器上实际上没有任何诸如“本地”管理员操作之类的事情,因为任何事情都有可能影响域。想要重启 DC?想要添加或删除角色?想要更改网卡上的 DNS 设置?所有可能都会影响该 DC 为其域提供服务的能力,因此并不是 DC 上真正的“本地管理员”操作。 (2认同)

Joh*_*nie 3

本地帐户存储在名为SAM 数据库的文件中。它存在于域控制器上 - 如果您在还原模式下启动域控制器,则用于执行此操作的帐户只是 SAM 数据库中的本地管理员帐户。但是,当 Windows 正常运行时,对 SAM 数据库的访问将被禁用,并且其中的任何帐户都无法使用。这意味着无法使用域控制器上的本地帐户登录。

但是,如果您愿意从命令行工作并且不需要网络访问,则可以完成此操作。诀窍是作为本地系统帐户登录。Windows 没有提供任何方法来执行此操作,但我通过编写一个简单的 telnet 服务器然后使用本地系统帐户将其作为服务运行来完成。当您连接到 telnet 服务器时,您将以系统帐户而不是域帐户登录。唯一的限制是它只能使用命令行,并且系统帐户没有网络访问权限。如果您要使用这样的黑客攻击,请务必非常小心安全!

尽管这一切听起来像是一个可怕的黑客攻击,但它确实有合法的用途。例如,在工作中,我们使用名为 N-able 的管理工具,它允许远程访问服务器上的控制台,并且它基本上使用我上面描述的技术来实现。如果我在其中一个域控制器上打开控制台并使用whoami命令,我会得到:

在此输入图像描述

脚注

Windows 没有用于打开远程命令提示符的内置方法,但正如 grawity 在评论中提到的那样, SysInternals psexec 实用程序可以执行此操作,并且 SysInternals 实用程序由 Microsoft 提供和支持,因此这至少是半官方的。在我的一台服务器上使用 psexec 我得到:

D:\temp\psexec>psexec64 \\cheddar -s cmd.exe

PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com


Microsoft Windows [Version 10.0.17134.345]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
nt authority\system

C:\Windows\system32>exit
cmd.exe exited on cheddar with error code 0.
Run Code Online (Sandbox Code Playgroud)