Найти имя контроллера домена Active Directory
Как я могу узнать имя / IP-адрес контроллера домена AD в моей сети?
На любом компьютере с DNS-сервером, настроенным для использования DNS-сервера AD, выполните:
- Пуск -> Выполнить -> nslookup
set type=all _ldap._tcp.dc._msdcs.DOMAIN_NAME
Замените DOMAIN_NAME реальным доменным именем, например, example.com . Узнайте больше здесь .
В ответе выше ввод set type = all (в nslookup) позволяет просматривать записи DNS SRV. Вы могли бы также ввести «set type = SRV», записи SRV показывают, как AD рекламирует себя в сети
Для компьютера, который является членом домена, переменная среды LOGONSERVER содержит имя контроллера домена, который аутентифицировал текущего пользователя. Очевидно, что это не все DC в среде с несколькими DC, но если все, что вам нужно, это быстрый способ найти имя контроллера домена, то из командной оболочки:
Вернет все переменные окружения, которые начинаются с «L», включая имя DC.
просто да, но если у вас есть VPN-подключение к интересующей вас сети, LOGONSERVER не даст вам этого. Принятый ответ даст вам правильный сервер во всех случаях, которые я могу придумать.
Это не идеально, но иногда важно также знать, как сделать что-то достаточно хорошее быстро. Это также не помогает при локальных входах, но я никогда не проверял это через VPN, хорошо знать, спасибо.
Не упомянутый, супер простой и быстрый вариант — запустить его из командной строки:
Просто замените «доменное имя» на ваш домен
Вы также можете запустить некоторые другие опции, чтобы узнать больше:
/dcname:domainname получает имя PDC для домена, /dsgetdc:domainname имеет флаги для другой информации
Попробуйте nltest /? в своем запросе, чтобы получить больше вариантов! 🙂
C:\> nltest /dclist:domainname Cannot find DC to get DC list from.Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN The command completed successfully Что это обозначает?
Это было очень полезно для меня, потому что [Bash # host -t srv _ldap._tcp.MYCOMPANY] сказал, что домен не найден. [CMD: \> nltest / dclist: MYCOMPANY] сказал мне, что доменное имя было corp.ad.mycompany.com, и затем я смог использовать эту информацию, чтобы другие команды работали. [Bash # host -t srv _ldap._tcp.corp.ad.mycompany.com] затем работал
Это вернет ваш ближайший контроллер домена в Powershell:
Import-Module ActiveDirectory (Get-ADDomainController -DomainName Domain FQDN> -Discover -NextClosestSite).HostName
Из командной строки запустите gpresult . Ты получишь:
- Общая информация о рабочей станции и домене
- Как для компьютера, так и для пользователя :
- Отличительное имя в AD и с какого DC была применена политика
- Прикладные объекты групповой политики
- Список групп безопасности, членом которых является
Вот пример вывода обкатки gpresult . Вы также можете указать, gpresult /z чтобы получить более подробную информацию.
DNS и DHCP являются наилучшим способом проверки, поскольку в сети могут находиться компьютеры Unix / Linux, управляемые контроллером домена AD или выполняющие роль контроллера домена.
Плюс, учитывая, что активный каталог — это не что иное, как версия Microsoft Kerberos, LDAP, dhcp и dns. Было бы лучше понимать и отлаживать вещи на нижних уровнях, чем на уровне 7+. Это связано с тем, что операционная система будет выполнять те же самые запросы, а подчеркивающий RFC для каждого протокола фактически работает на уровне OSI, а не на уровне «вставьте сюда любимый инструмент».
Можно пойти еще дальше и сделать запрос DHCP для вариантов 6, 15 и 44 , чтобы получить имя домена , сервер доменных имен , и имя сервера Выигрыши / NetBIOS .
Затем с помощью dns проверьте записи _kerberos._tcp, _kpasswd._tcp, _LDAP._TCP.dc._msdcs и _ldap._tcp SRV:
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
Это разбито на три области, две из которых являются поддерживаемыми протоколом записями DNS-SD:
- _kerberos._tcp и _kpasswd._tcp (также под UNIX / Linux / OSX + некоторые сети Windows имеет _kadmin._tcp ) для Kerberos
- _ldap._tcp предназначен для ldap (openldap, opendc, каталог sun / oracle, ms ad) _LDAP._TCP.dc._msdcs является единственным расширением Microsoft для ldap для сопоставления контроллера домена.
Сырая CMD
Просто найдите имена DC
Сохранить как GetDcNames.cmd :
nslookup -type=any %userdnsdomain%.
(Примечание: конечная точка в «% userdnsdomain%.» Предназначена специально. Она не позволяет вашему локальному nslookup использовать любые строки пути поиска DNS.)
Найти больше доменов DNS, связанных с AD
Я создал быстрый и грязный пакетный файл, чтобы мне не приходилось запоминать доменные имена DNS и / или вводить их все. (Список может быть неполным.)
Работает с подключенных к домену машин. Если ваша машина не подключена к домену, вы должны вручную установить для USERDNSDOMAIN то, что вам нужно.
Сохранить как TestAdDnsRecords.cmd :
@setlocal @REM Test AD DNS domains for presence. @REM For details see: http://serverfault.com/a/811622/253701 nslookup -type=srv _kerberos._tcp.%userdnsdomain%. nslookup -type=srv _kerberos._udp.%userdnsdomain%. @echo . nslookup -type=srv _kpasswd._tcp.%userdnsdomain%. nslookup -type=srv _kpasswd._udp.%userdnsdomain%. @echo . nslookup -type=srv _ldap._tcp.%userdnsdomain%. @echo . nslookup -type=srv _ldap._tcp.dc._msdcs.%userdnsdomain%. @echo . nslookup -type=srv _ldap._tcp.pdc._msdcs.%userdnsdomain%. @echo . @REM Those next few lines here are forest specific: @REM Change the next line your current domain is not also the forest root. @SET "DNSFORESTNAME=%USERDNSDOMAIN%" nslookup -type=srv _ldap._tcp.gc._msdcs.%DNSFORESTNAME%. @echo . nslookup -type=srv _gc._tcp.%DNSFORESTNAME%.
Запустить как TestAdDnsRecords.cmd | more . Там много текстового вывода.
источники
- Блог MSDN «ServerGeeks», 2014-07-12, Хабибар Рахман, DNS-записи, необходимые для правильной работы Active Directory (архивировано здесь ).
- TechNet, наборы ресурсов> Руководство по распределенным системам> Управление конфигурацией рабочего стола> Active Directory> Разрешение имен в Active Directory> Поиск серверов Active Directory>Записи ресурсов SRV (Архивировано здесь ).
Linux узнать контроллер домена
Проводя тестирование на проникновение, довольно часто приходится иметь дело с доменами Active Directory. Домен — группа подключенных к сети компьютеров, которые совместно используют информацию об учетных записях пользователей и политику безопасности. За его управление отвечает контроллер домена, на котором работает служба Active Directory, если используется Windows Server, или Samba — для Unix-подобных систем. Эти службы позволяют хранить информацию о самом домене, всех ее пользователях, настройках и т.д.
Чтобы получить информацию о домене, необходимо использовать специальный инструментарий, например Enum4linux. Этот инструмент написан на Perl и представляет собой обёртку вокруг инструментов из пакета Samba: smbclient, rpclient, net и nmblookup, поэтому необходимо установить сам пакет Samba в качестве зависимости.
Ключевые функции:
- вывод списка пользователей;
- вывод информации о членстве в группе;
- перечисление общих ресурсов;
- определение принадлежности к рабочей группе или к домену;
- идентификация удалённой операционной системы;
- получение информации о парольной политике.
Информация предоставлена исключительно в ознакомительных целях. Не нарушайте законодательство!
Установка
Если говорить про Kali Linux, то пакет присутствует в стандартном репозитории, поэтому проблем с установкой не возникает:
Основные опции для запуска:
- -U — получение списка пользователей;
- -M — получение списка машин в домене;
- -S — получение списка общих ресурсов;
- -P — получение информации о парольной политике;
- -G — получение списка групп и членов;
- -o — получить информацию об ОС на компьютерах.
Рассмотрим некоторые из них по отдельности:
Получение списка пользователей
Как правило, название домена определяется автоматически и довольно точно, поэтому указывать его нет необходимости. В случае, если по каким-либо причинам Enum4linux не смог определить этот параметр, то указать вручную его можно через опцию -w , например: -w EXAMPLE.COM . При сборе подобной информации обращаться необходимо непосредственно к контроллеру домена, иначе ответ получен не будет. Чтобы определить, какой сервер является контроллером домена, можно использовать nslookup. Выполняем команду:
# nslookup -q=SRV _ldap._tcp.dc._msdcs.EXAMPLE.COM 192.168.60.100 , где
В результате мы получим доменное имя DC. Дальше остается только узнать его IP-адрес:
# nslookup master.example.com 192.168.60.100
В нашем случае контроллер домена и DNS-сервер — это одна и та же машина, но такой вариант бывает не всегда, поэтому используя этот метод можно довольно точно определить контроллер домена в сети.
Получение списка компьютеров в домене
В текущем релизе функционал работает некорректно.
Получение списка общих ресурсов
В нашем случае каких-то специфичных общих ресурсов нет.
Получение списка групп и членов
Получение информации об ОС компьютеров в домене
Для выполнения данной команды применительно к Windows необходимо также указать логин/пароль от любой имеющейся доменной учетной записи. Сделать это можно используя опции -u и -p . Получить список пользователей можно с помощью опции -U , которую ранее рассматривали, а пароль — методом перебора для протоколов с включенной доменной аутентификацией, например, SSH или RDP для Linux и Windows соответственно.
Получение информации о парольной политике
Для получения этой информации необходим уже другой инструмент, который называется Polenum, а также логин/пароль от доменной учетной записи. Об этом написано в справочной информации вместе со ссылкой на него. Указав логин/пароль и выбрав один из двух вариантов протоколов (445/SMB или 139/SMB), получим информацию для конкретного компьютера.
# ./polenum.py ivanov:OIWjdjsid92@192.168.60.101 139/SMB
Узнать больше об инструментарии для проведения тестирования на проникновение на программах практической подготовки Корпоративные лаборатории Pentestit.
Оставить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.