Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Множество компаний использует среду 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
NltestИз вывода мы видим, что в исследуемой сети целых три леса. Между ними всеми установлено двустороннее доверие, а production.
имеет атрибут enable_tgt
, о котором мы поговорим немного позже.
Соберем чуть больше информации с помощью следующих инструментов:
# Получить информацию о лесе
# PowerView
Get-Forest
Get-Forest-Forestpriv.local
# AD Module
Get-ADForest
Get-ADForest-Identitypriv.local
# Получить все домены в лесу
# PowerView
# PowerView v3
Get-ForestDomain
Get-ForestDomain-Forestpriv.local
# PowerView v2
Get-NetForestDomain-Verbose
Get-NetForestDomain-Forestpriv.local
# AD Module
(Get-ADForest).Domains
Конечно же, мы можем использовать nltest с приведенным выше синтаксисом, чтобы узнать отношения и внутри леса, но рассмотрим вариант с PowerView и AD Module:
#v3Get-DomainTrustGet-DomainTrust-Domainpriv.localGet-DomainTrust-SearchBaseGC://priv.local# v2Get-NetDomainTrust-Domainpriv.local# Найти все внешние (external) доверия в текущем лесуGet-NetDomainTrust|?{$_.TrustType-eq'External'}# AD ModuleGet-ADTrustGet-ADTrust-Identitypriv.local
Полученный нами вывод показывает связи и отношения внутри леса в исследуемой сети.
Обеспечивает безопасность специальный ключ — ключ доверия, который автоматически генерируется при создании отношений. При установлении доверия в каждом домене создается связанный пользовательский объект для хранения ключа доверия. Имя пользователя — это NetBIOS-имя другого домена, которое заканчивается символом $
(аналогично имени учетной записи компьютера). Например, в случае доверия между доменами misha.
и mycra.
домен misha
будет хранить ключ доверия в пользователе mycra$
, а домен mycra
будет хранить его в пользователе misha$
.
|
|