Содержание статьи
- Разведка
- Леса
- Домены
- Trust Keys
- Домены
- Леса
- Выдаем себя за контроллер домена
- Неограниченное делегирование
- Ограниченное делегирование
- PAM Trust
- Обнаружение
- Проверка, не в бастионном лесе ли мы
- Проверяем, не управляется ли текущий лес каким-то другим по PAM Trust
- Дополнительные проверки и новые угрозы
- Эксплуатация
- Заключение
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Множество компаний использует среду Active Directory для администрирования сети своей организации. Компании растут, домен расширяется, и рано или поздно наступает момент, когда требуется создать в домене другие домены, чтобы разграничить пользователей, обязанности, да и, в конце концов, позаботиться о безопасности.
Допустим, у нас есть компания MISHA Corporation. У нее может быть домен misha. для администраторов, bank. для финансового отдела, dev. для разработчиков и так далее.
Доверие между двумя доменами может быть двусторонним — пользователи домена bank. могут получать доступ к ресурсам dev., а пользователи dev. — к bank.. А может быть односторонним — в таком случае лишь пользователи одного определенного домена имеют доступ к ресурсам другого. Допустим, учетные записи домена dev. могут ходить в домен bank., а вот пользователи bank. в dev. не могут.

Наша прекрасная компания продолжает расширяться и покупает другую компанию, назовем ее MYCRASOFT Corporation. У этой фирмы также есть домен — mycra., в нем имеются пользователи, сервисы, группы. Все настроено и отлично работает. Само собой, теперь пользователям домена misha хотелось бы получить доступ к этому домену. Здесь мы плавно переходим к понятию леса.
Лес — самая крупная структура в AD. Внутри леса находятся деревья — некий набор доменов (misha., bank., dev.). Между лесами также можно настроить как одностороннее, так и двустороннее доверие.
Мы рассмотрим безопасность этих доверенных отношений. Опишем набор атак — от простых к сложным — и разберем такие темы, как SID Filtering, PAM Trust, TGT Delegation.
Когда я пишу «между лесами», я имею в виду атаку, которая выполняется из одного леса на другой, например misha.. Если я пишу «между доменами», то я имею в виду атаку между деревьями (dev.). Чтобы понимать, о чем тут идет речь, читателю нужно разбираться в Kerberos, делегировании, а также иметь базовые знания в Active Directory, так как статья не предполагает объяснение этих технологий, а лишь рассматривает их возможные недостатки.
Разведка
Сначала предлагаю определить масштаб проблемы. Иногда мы будем использовать PowerView и Active для перечисления объектов.
Леса
Выявить все отношения между лесами поможет встроенный инструмент nltest:
nltest /domain_trusts

Из вывода мы видим, что в исследуемой сети целых три леса. Между ними всеми установлено двустороннее доверие, а production. имеет атрибут enable_tgt, о котором мы поговорим немного позже.
Соберем чуть больше информации с помощью следующих инструментов:
# Получить информацию о лесе # PowerView Get-Forest Get-Forest -Forest priv.local # AD Module Get-ADForest Get-ADForest -Identity priv.local# Получить все домены в лесе # PowerView # PowerView v3 Get-ForestDomain Get-ForestDomain -Forest priv.local # PowerView v2 Get-NetForestDomain -Verbose Get-NetForestDomain -Forest priv.local # AD Module (Get-ADForest).Domains
Домены
Конечно же, мы можем использовать nltest с приведенным выше синтаксисом, чтобы узнать отношения и внутри леса, но рассмотрим вариант с PowerView и AD Module:
# PowerView #v3 Get-DomainTrust Get-DomainTrust -Domain priv.local Get-DomainTrust -SearchBase GC://priv.local # v2 Get-NetDomainTrust -Domain priv.local # Найти все внешние (external) доверия в текущем лесе Get-NetDomainTrust | ?{$_.TrustType -eq 'External'}# AD Module Get-ADTrust Get-ADTrust -Identity priv.localПолученный нами вывод показывает связи и отношения внутри леса в исследуемой сети.

Trust Keys
Домены
Обеспечивает безопасность специальный ключ — ключ доверия, который автоматически генерируется при создании отношений. При установлении доверия в каждом домене создается связанный пользовательский объект для хранения ключа доверия. Имя пользователя — это NetBIOS-имя другого домена, которое заканчивается символом $ (аналогично имени учетной записи компьютера). Например, в случае доверия между доменами misha. и mycra. домен misha будет хранить ключ доверия в пользователе mycra$, а домен mycra будет хранить его в пользователе misha$.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
