Служба каталогов
Служба каталогов и LDAP
Служба каталогов — это специализированная база данных, которая хранит информацию об объектах в сети, таких как пользователи, компьютеры, принтеры и другие ресурсы. Она обеспечивает централизованное управление этими объектами, а также их аутентификацию и авторизацию. Наиболее распространённым примером службы каталогов является Active Directory (AD) от Microsoft, которая использует протокол LDAP (Lightweight Directory Access Protocol) для доступа к данным. Еще есть OpenLDAP и FreeIPA.
LDAP (Lightweight Directory Access Protocol) — это протокол для доступа к службам каталогов. Он позволяет клиентам запрашивать и изменять данные, хранящиеся в каталоге, таких как информация о пользователях, группах, компьютерах и других объектах.
Основные компоненты LDAP
Объекты:
Каждый элемент в каталоге (пользователь, группа, компьютер) представлен как объект.
Объекты имеют уникальный идентификатор (DN — Distinguished Name).
Distinguished Name (DN):
Уникальный путь к объекту в каталоге.
Пример:
cn=JohnDoe,ou=Users,dc=example,dc=com
— объект "JohnDoe" в организационном подразделении "Users" домена "example.com".
Атрибуты:
Объекты состоят из атрибутов, которые хранят информацию (например,
cn
— common name,mail
— электронная почта).Пример: объект пользователя может иметь атрибуты
cn=JohnDoe
,mail=johndoe@example.com
.
Схема (Schema):
Определяет типы объектов и их атрибуты.
Например, схема может указывать, что объект "пользователь" должен иметь атрибуты
cn
,mail
,uid
.
Атакующие используют LDAP для разведки и поиска уязвимостей, таких как слабые права доступа или неправильно настроенные объекты.
Домен
Домен — это логическая группа компьютеров, пользователей и других объектов, которые управляются централизованно с помощью службы каталогов, такой как Active Directory.
Ключевые элементы домена, которые важны для понимания его структуры и функционирования.
1. Контроллеры домена (Domain Controllers, DC) Серверы, которые управляют доменом и хранят базу данных Active Directory.
Основные функции:
Хранение информации об объектах домена. (LDAP — протокол доступа к каталогу)
Репликация данных между контроллерами домена. (Механизмы реплекации используются для атак DCShadow и DCSync).
Также на контроллере домена обычно находится DNS-сервер для разрешения имен в домене.
В домене Active Directory есть несколько ключевых сетевых папок, которые используются для хранения критически важных данных и обеспечения работы домена. Атакующие часто исследуют эти папки, так как они могут содержать уязвимые данные, такие как пароли или конфигурации.
SYSVOL (\\<domain>\SYSVOL\<domain>\
) - Сетевая папка, которая реплицируется между всеми контроллерами домена. Она содержит общие данные, такие как групповые политики (GPO) в формате XML, скрипты и другие файлы.
NETLOGON (\\<domain>\NETLOGON\
) - Сетевая папка, используемая для хранения скриптов и данных, связанных с аутентификацией и входом в систему.Скрипты могут содержать пароли или другие чувствительные данные.
2. Пользователи (Users) Учётные записи, которые представляют физических лиц или службы. Пользователи могут быть обычными или привилегированными (например, члены групп "Domain Admins" или "Enterprise Admins")
Основные атрибуты:
sAMAccountName
— логин пользователя.userPrincipalName
(UPN) — уникальный идентификатор (например,user@domain.com
). Для сервисных учетных записей еще используется SPN.memberOf
— группы, в которые входит пользователь.
BloodHound:
Поиск привилегированных учётных записей (например, членов групп "Domain Admins").
Анализ членства в группах для поиска путей повышения привилегий.
Поиск неактивных или устаревших учётных записей, которые могут быть скомпрометированы (Информация о последнем входе (lastLogon
) и смене пароля (pwdLastSet
)).
3. Группы (Groups) Коллекции пользователей, компьютеров или других групп, которые упрощают управление правами доступа.
Типы групп:
Security Groups — используются для управления доступом к ресурсам.
Distribution Groups — используются для рассылки сообщений (например, почтовые рассылки).
Примеры групп:
Domain Admins — полный контроль над доменом.
Enterprise Admins — полный контроль над всеми доменами в лесу.
Domain Users — все пользователи домена.
BloodHound: Поиск групп с высокими привилегиями (например, "Domain Admins", "Enterprise Admins"). Поиск групп, которые имеют опасные права на другие объекты (например, право изменять членство в группах). Поиск пользователей, которые могут быть добавлены в привилегированные группы.
4. Компьютеры (Computers) Учётные записи, представляющие компьютеры, присоединённые к домену.
Основные атрибуты:
sAMAccountName
— имя компьютера (заканчивается на$
, например,PC01$
).operatingSystem
— информация об операционной системе.
Роли:
Рабочие станции.
Серверы (например, контроллеры домена).
BloodHound:
Информация о настройках делегирования, таких как Unconstrained Delegation, Constrained Delegation и Resource-Based Constrained Delegation.
Информация о компьютерах, на которых используется LAPS. Атрибуты, связанные с LAPS, такие как ms-Mcs-AdmPwd
.
5. Организационные подразделения (Organizational Units, OU) Контейнеры для группировки объектов (пользователей, групп, компьютеров) в домене.
Зачем нужны:
Упрощение управления объектами.
Применение групповых политик (GPO) к определённым группам объектов.
Пример:
OU=Sales,DC=example,DC=com
— подразделение для отдела продаж.
6. Групповые политики (Group Policy Objects, GPO) Групповые политики используются для централизованного управления настройками пользователей и компьютеров в домене.
Они позволяют, например, ограничить доступ к определённым функциям операционной системы, настроить параметры безопасности или автоматически устанавливать программное обеспечение.
GPO могут быть привязаны к домену, сайту или организационному подразделению (OU).
BloodHound: Поиск слабых настроек безопасности в GPO. Поиск политик, которые могут быть использованы для распространения вредоносного ПО или повышения привилегий. Иногда пароли хранятся в GPO в открытом виде (например, в скриптах или настройках). Атакующие могут извлечь эти пароли с помощью инструментов, таких как Get-GPPPassword.
7. Лес (Forest) и Дерево (Tree)
Лес (Forest) - Коллекция доменов, которые используют общую схему и конфигурацию. Домены в лесу могут иметь доверительные отношения.
Дерево (Tree) - Иерархия доменов, которые имеют общее корневое доменное имя (например,
example.com
иsales.example.com
).
8. Доверительные отношения (Trusts) Механизмы, которые позволяют доменам взаимодействовать друг с другом. Например, пользователи из домена A могут получать доступ к ресурсам в домене B, если между ними установлено доверие.
Типы доверия:
Одностороннее — один домен доверяет другому, но не наоборот.
Двустороннее — оба домена доверяют друг другу.
Транзитивное — доверие распространяется на другие домены в лесу.
BloodHound: Поиск путей для перемещения между доменами (например, использование транзитивного доверия). Поиск доменов, которые имеют доверие к текущему домену, для атак, таких как SID History.
Инструменты для сбора информации о домене
BloodHound строит графы, которые показывают отношения между объектами и возможные пути атаки.
Пример: пользователь "UserA" имеет право
GenericWrite
на группу "Domain Admins", что позволяет ему добавить себя в эту группу.
Для чего это нужно атакующим:
Поиск кратчайших путей для повышения привилегий.
Поиск уязвимостей в структуре домена, которые могут быть использованы для атак.
Пример использования BloodHound
Атакующий запускает сбор данных с помощью SharpHound (сборщик данных для BloodHound).
BloodHound анализирует данные и показывает, что пользователь "UserA" имеет право
GenericWrite
на группу "IT Support".Атакующий использует это право, чтобы добавить себя в группу "IT Support".
BloodHound показывает, что группа "IT Support" имеет право
WriteDACL
на группу "Domain Admins".Атакующий использует это право, чтобы изменить ACL группы "Domain Admins" и добавить себя в неё.
Помимо BloodHound/SharpHound часто используют инструменты AD Explorer, PowerView, ldapsearch и другие. Большинство из них используют LDAP-запросы, чтобы получить информацию о домнне
Мониторинг
Для обнаружение разведки в домене (без привязки к конкретному инструменту) поможет мониторинг LDAP-запросов (Event ID 1644) или LDAP-трафика. Особое внимание стоит обращать на запросы специфичных атрибутов LDAP, связанных с делегированием, LAPS, SPN, службой сертификатов... А также на массовые выгрузки объектов из службы каталогов (но такие правила могут генерировать много False Positive), так как некоторые сервисы с доменной авторизацией тоже получают информацию о пользователях службы каталогов, их группах и правах.
Event ID 5136 поможет отследить изменения объектов. Такие как SID-History, изменение GPO, настройка делегирования, Shadow Cred и многих других.
Инетересные атрибуты LDAP, за изменением которых стоит следить:[Cheat Sheet] Интересные атрибуты LDAP
Last updated