Почему пользователи, созданные на контроллере домена, всегда являются частью домена?

10

Почему пользователи, созданные на контроллере домена, всегда являются частью домена?

Когда я хочу создать локального пользователя на контроллере домена net user <username> <password> /add, я обнаруживаю, что пользователь автоматически включается в Domain Usersгруппу.

Я хочу создать учетную запись локального администратора на контроллере домена, не являющемся частью домена, который может интерактивно входить в контроллер домена и выполнять административные задачи.

Это возможно?

Shuzheng
источник
2
Нет, это невозможно
Joeqwerty

Ответы:

3

Локальные учетные записи хранятся в файле, называемом базой данных SAM . Это существует на контроллере домена - если вы загружаете контроллер домена в режиме восстановления, то для этого используется учетная запись локального администратора в базе данных SAM. Однако, когда Windows работает нормально, доступ к базе данных SAM отключен, и ни одна из учетных записей в ней не может использоваться. Это означает, что невозможно войти в систему с локальной учетной записью на контроллере домена.

Однако это можно сделать, если вы счастливы работать из командной строки и если вам не требуется доступ к сети. Хитрость заключается в том, чтобы войти в систему как локальная системная учетная запись. Windows не предоставляет никакого способа сделать это, но я сделал это, написав простой сервер telnet, затем запустив его в качестве службы с использованием учетной записи локальной системы. Когда вы подключаетесь к серверу telnet, вы входите в систему как системная учетная запись, а не как учетная запись домена. Единственным ограничением является то, что это только командная строка и системная учетная запись не имеет доступа к сети. Если вы собираетесь использовать такой взлом, будьте очень, очень осторожны с безопасностью!

Хотя все это звучит как ужасный хак, у него есть законное применение. Например, на работе мы используем инструмент управления, называемый N-способный, который позволяет удаленный доступ к консоли на серверах, и он делает это, используя в основном технику, которую я описал выше. Если я открою консоль на одном из наших контроллеров домена и использую команду whoami, я получу:

введите описание изображения здесь

сноска

В Windows нет встроенного метода для открытия удаленной командной строки, но, как упоминает самоуверенность в комментарии, утилита 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.
Джон Ренни
источник
Вы заново изобрели SysInternals psexec -s ?
user1686
1
@ grawity Я впервые сделал это на Windows NT 3.1 до того, как появились утилиты Sysinternals :-) Однако вы делаете хорошую мысль. Я забыл, что psexec может это сделать.
Джон Ренни
1
Дело принято. Хотя, надеюсь, оригинальный "широко открытый" telnetd сейчас не используется?
user1686
23

Нет, это невозможно. Контроллеры домена не имеют своей собственной базы данных аутентификации. Он заменяется Active Directory при повышении до контроллера домена.

длинная шея
источник
2
Это отвечает "Возможно ли это?" из тела вопроса, но не отвечает «почему» из заголовка. Есть какие-нибудь намеки на «почему»?
Молот
8
Domain controllers don't have their own authentication database. It is replaced by Active Directory when promoted to a Domain Controllerэто почему. Так что это ответ на вопрос почему.
Joeqwerty
4
@peterh Только Microsoft может знать, почему они разработали его таким образом, но я сомневаюсь, что они знают. Во время моей передачи на большинство вопросов «почему» мне приходилось отвечать «я отвечал, потому что это было первое, что пришло в голову, и это сработало, а после этого никогда не меняло работающую систему».
Александр
5
Честно говоря, если вопрос таков: «Почему Microsoft разработала его таким образом?» это вопрос, я бы VTC. Любой ответ, который мы дадим, будет чистой догадкой (разве кто-то здесь работал над этим проектом в MS около 1999 года?).
Кэтрин Вилльярд
2
В то время я был MS MVP для Windows-сервера и делал кое-какие вещи с бета-командой «NT 5», и посещал несколько встреч, на которых обсуждались решения по проектированию. Тогда аргумент состоял в том, что на контроллере домена не было такого понятия, как «локальное» действие администратора, поскольку что-либо могло повлиять на домен. Хотите перезагрузить DC? Хотите добавить или удалить роль? Хотите изменить настройки DNS на сетевой карте? Все они потенциально могут повлиять на способность этого DC обслуживать свой домен и, следовательно, на самом деле не выполнять действия локального администратора на DC.
Роб Мойр