Как найти domain controller

Как найти все контроллеры домена

Как вы думаете, сколько есть способов получить список контроллеров домена? Давайте посчитаем. Для примера возьмет тестовый домен с оригинальным именем TEST.LOCAL, в котором есть один контроллер домена с еще более оригинальным 🙂 именем DC-TEST.

Первый способ, которым я обычно пользуюсь — утилита командной строки Netdom. Для получения списка контроллеров домена воспользуемся командой:

Netdom query DC

вывод списка контроллеров домена с помощью утилиты Netdom

Второй пойдет утилита Nltest. Выведем список контроллеров командой:

Nltest /dclist:test.local

вывод списка контроллеров домена с помощью утилиты Nltest

Способ третий — утилита DSQUERY, специально предназначенная для поиска объектов в Active Directory. Найти контроллеры домена с ее помощью можно так:

DSQUERY server -o rdn

или так:

DSQUERY server

вывод списка контроллеров домена с помощью утилиты DSQUERY

Перейдем к PowerShell. Поименно вывести контроллеры домена можно командой:

Get-ADDomainController -Filter * | select Name

вывод списка контроллеров домена с помощью PowerShell

Переходим к нестандартным методам поиска. Выведем список контроллеров с помощью утилиты Nslookup. Каждый контроллер домена регистрирует в DNS запись SRV вида _ldap._tcp.dc._msdcs.domain.com, по которой его и можно найти. Для поиск по DNS воспользуемся командой:

Nslookup -type=all _ldap._tcp.dc._msdcs.test.local

вывод списка контроллеров домена с помощью nslookup

С помощью WMI в Windows можно сделать практически все, в том числе и получить список контроллеров домена. Для этого нам потребуется класс Win32_NTDomain, в котором помимо прочего хранятся имена контроллеров домена. Получить их можно из командной строки:

wmic NTDOMAIN GET DomainControllerName

или из PowerShell:

Get-WmiObject -Class win32_NTDomain | ft -a DomainControllerName

вывод списка контроллеров домена с помощью WMI

Ну и последний из известных мне способов. Все домен контроллеры являются членами группы «Domain Controllers», и для их получения остается только вывести список членов этой группы. Сделать это можно из командной строки:

net group "Domain Controllers" /domain

или из PowerShell:

Get-ADGroupMember -Identity "Domain Controllers" | select Name

ывод списка контроллеров домена с помощью членства в группе

Всего получается семь способов. Если знаете еще, пишите.

DNS and DHCP are the best way to check since there can be Unix/Linux machines on the network managed by the AD domain controller or acting as the domain controller.

Plus, considering active directory is nothing more than Microsoft’s version of Kerberos, LDAP, dhcp and dns. It would be better to understand and debug things at lower layers than layer 7+. This is because the operating system would preform these same requests and the underlining RFC for each protocol actually operates at a OSI level not the «insert favorite tool here» level.

One can go a step further and query the dhcp for options 6, 15, and 44 to get the domain name, domain name server, and Wins/NetBIOS name server.

Then using dns to check for the _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs, and _ldap._tcp SRV records:

nslookup -type=srv _kerberos._tcp.EXMAPLE.COM
nslookup -type=srv _kpasswd._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.EXAMPLE.COM
nslookup -type=srv _ldap._tcp.dc._msdcs.EXAMPLE.COM

.EXAMPLE.COM ::= value returned from dhcp option-1

This breaks down into three areas, two are protocol supported DNS-SD records:

  • _kerberos._tcp and _kpasswd._tcp (also under UNIX/Linux/OSX+some windows networks has _kadmin._tcp) are for kerberos
  • _ldap._tcp is for ldap (openldap, opendc, sun/oracle directory, ms ad)
    _LDAP._TCP.dc._msdcs is the Microsoft only extension to ldap to map the domain controller.

В некоторых случаях вам нужно определить на каком контроллере домена вы аутентифицированы (ваш logonserver). Это может пригодиться при проблемах с применением групповых политик, когда пользователи жалуются на медленный вход в систему. Пользователь может аутентифицироваться на неверном контроллере домена из-за того, что ближайший к нему DC не доступен, доступ к нему блокируется межсетевым экраном, неверной настройки подсетей и сайтов в Active Directory или проблемами с DNS. В результате пользователь может получать все GPO, скрипты, и т.д., не с ближайшего контроллера домена, а с любого другого DC. Это может привести к долгому применению GPO, медленной установке программ, медленной загрузки перемещаемых профилей или файлов в перенаправленных папках.

Содержание:

  • Как узнать на каком контроллере домена вы залогинены?
  • Как Windows определяет ближайший контроллер домена?

Как узнать на каком контроллере домена вы залогинены?

Вы можете узнать контроллер домена, через который вы выполнили вход в домен несколькими способами:

Если вы вошли на компьютер под локальной учетной записью, то вместо имени контроллера домена в переменной LogonServer будет указано имя вашего компьютера.

Зная контроллер домена, можно различную информацию о пользователя из журналов безопасности DC (например, историю входов пользователя в домен и другие логи).

Можно автоматически записывать информацию, на каком контроллере домена авторизовался пользователь в описание компьютера в AD. Так можно узнать LogonServer для конкретного компьютера из AD, не обращаясь к конкретному компьютеру по сети или локально.

Как Windows определяет ближайший контроллер домена?

За определение LogonServer при загрузке Windows отвечает служба NetLogon. Она должны быть запущена:

get-service netlogon

служба netlogon нужна для обнаружения контроллера домена

Упрощенно процесс поиска контроллера домена клиентом Windows выглядит так:

  1. При загрузке Windows служба NetLogon делает DNS запрос за списком контроллеров домена (SVR записи
    _ldap._tcp.dc._msdcs.domain_
    ;
  2. DNS возвращает список DC в домене;
  3. Клиент делает LDAP запрос к DC для определения сайта AD по-своему IP адресу;
  4. DC возвращает сайт, которому соответствует IP клиента или наиболее близкий сайт (эта информация кэшируется в ветке реестра
    HKLMSystemCurrentControlSetServicesNetlogonParameters
    и используется при следующем входе для более быстрого поиска);
  5. Клиент через DNS запрашивает список контроллеров домена в сайте (в разделе _
    tcp.sitename._sites...
    ); ldap записи в DNS зоне сайта
  6. Windows пытается связаться со всеми DC в сайте и первый ответивший используется для выполнении аутентификации и в качестве LogonServer.

Вы можете переключить ваш компьютер на другой контроллер домена AD вручную с помощью команды:

nltest /SC_RESET:WINITPROMSK-DC02.winitpro.ru

nltest сменить контроллер домена

Flags: 30 HAS_IP HAS_TIMESERV
Trusted DC Name \MSK-DC02.winitpro.ru
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully

Если указанный DC не доступен, появится ошибка:

I_NetLogonControl failed: Status = 1311 0x51f ERROR_NO_LOGON_SERVERS

Если ни один из контроллеров домена не доступен, или компьютер отключен от сети, то при входе пользователя появится надпись:

There are currently no logon servers available to service the logon request.
Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть.

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

Найти ближайший к вам контроллер домена согласно иерархии сайтов, подсетей и весов можно с помощью командлета Get-ADDomainController из модуля Active Directory для PowerShell:

Get-ADDomainController -Discover -NextClosestSite

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

Находим контроллер домена в сети.

Для того чтобы узнать IP-адреса и имена контроллеров домена в сети нужно в командной строке ввести следующий командлет:

nslookup

Как найти контроллер домена в сети

Информация о материале
Автор: Максим Донецкий
Категория: Администрирование компьютерной сети

Опубликовано: 08 августа 2016

  • Системное администрирование

  • Windows

  • Active Directory

Комментарии   


0


#2
Имя
12.03.2021 13:45

Если комп уже в домене, то можно и так. А если нужно зайти по РДП на КД с не-доменного компа? Например, чтобы посмотреть крайнее использованное имя и назначить следующее.


Цитировать


+5


#1
Ivan
01.11.2017 14:14

Неверно.
Так мы узнаем DNS сервер по умолчанию, но он не обязательно совпадает с контроллером домена.

Нужно так
> set logon
В ответе получим имя сервера, на котором мы залогинились.


Цитировать

При проведении внутреннего тестирования на проникновение требуется определить цели атаки.
Одними из главных целей являются контроллеры домена Active Directory. Найти контроллеры домена можно множеством способов.

Получение имени домена

Для начала нам нужно узнать имя домена. Как правило оно передается в параметрах DHCP сервера domain-name (5) и или domain-search (119). Посмотреть значения этих параметров можно в файле /etc/resolv.conf.

Пример файла resolv.conf:

# Generated by NetworkManager
search pentestlab.lan
nameserver 192.168.1.1
nameserver 192.168.1.2
nameserver 172.16.2.2

соответствено, скорее всего, имя домена – pentestlab.lan.

После получения имени домена, мы можем запросить у DNS сервера список всех контроллеров домена.

Первый способ

Запрос ldap SRV записей.

nslookup -type=srv _ldap._tcp.dc._msdcs.

Пример:

nslookup -type=srv _ldap._tcp.dc._msdcs.pentestlab.lan

Второй способ

Запрос kerberos записей.

dig any _kerberos._tcp.полное_имя_домена

Пример:

dig any _kerberos._tcp.pentestlab.lan

Третий способ

Запрос A записей.

dig полное_имя_домена

Пример:

dig pentestlab.lan

Четвертый способ

Запрос c использованием nltest.
Данный способ работает только с АРМ, который уже входит в состав домена.

nltest /dclist:полное_имя_домена

Пример:

nltest /dclist:pentestlab.lan

Не все способы применимы ко всем доменам, но один из них сработает точно.

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Безопасные и надежные IT решения

Понравилась статья? Поделить с друзьями:
  • Как найти хорошие туфли
  • Как составить план дня спорт
  • Как составить свой словарный портрет
  • Менеджер файлов для андроид как найти
  • Как найти аналог к пульту