Почему пользователи, созданные на контроллере домена, всегда являются частью домена?
Когда я хочу создать локального пользователя на контроллере домена, net user <username> <password> /add
, Я обнаружил, что пользователь автоматически включается в Domain Users
группа.
Я хочу создать учетную запись локального администратора на контроллере домена, а не в домене, которая может интерактивно входить в контроллер домена и выполнять административные задачи.
Это возможно?
Нет, это невозможно. У контроллеров домена нет собственной базы данных аутентификации. Он заменяется Active Directory при повышении до контроллера домена.
Локальные учетные записи хранятся в файле, который называется База данных SAM. Это существует на контроллере домена - если вы загружаете контроллер домена в режиме восстановления тогда учетная запись, которую вы используете для этого, будет просто учетной записью локального администратора в базе данных SAM. Однако, когда Windows работает нормально, доступ к базе данных SAM отключен, и ни одна из учетных записей в ней не может использоваться. Это означает, что невозможно войти в систему с локальной учетной записью на контроллере домена.
Однако это можно сделать, если вам нравится работать из командной строки и если вам не требуется доступ к сети. Хитрость заключается в том, чтобы войти в систему под учетной записью локальной системы. Windows не предоставляет никакого способа сделать это, но я сделал это, написав простой сервер telnet, а затем запустил его как службу с использованием локальной системной учетной записи. Когда вы подключаетесь к серверу telnet, вы входите в систему как системная учетная запись, а не как учетная запись домена. Единственные ограничения - это только командная строка, а системная учетная запись не имеет доступа к сети. Если вы собираетесь использовать подобный взлом, будьте очень и очень осторожны с безопасностью!
Хотя все это звучит как ужасный взлом, у него есть законное применение. Например, на работе мы используем инструмент управления под названием N -able, который обеспечивает удаленный доступ к консоли на серверах, и делает это в основном с использованием техники, которую я описал выше. Если я открою консоль на одном из наших контроллеров домена и использую кто я команду я получаю:
Сноска
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.