Shu*_*eng 10 windows active-directory
为什么在域控制器上创建的用户总是域的一部分?
当我想在域控制器上创建本地用户时net user <username> <password> /add,我发现该用户自动包含在Domain Users组中。
我想在域控制器上创建一个本地管理员帐户,而不是域的一部分,它能够以交互方式登录到域控制器并执行管理任务。
这可能吗?
lon*_*eck 23
不,这是不可能的。域控制器没有自己的身份验证数据库。当提升为域控制器时,它被 Active Directory 取代。
本地帐户存储在名为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)