Перейти к содержимому
AD Academy
Продвинутые атаки и современные средства защиты
Продвинутый14 мин.Обновлено: Тема 3 из 4

Злоупотребление ACL в Active Directory

GenericAll, WriteDACL и тихие пути повышения привилегий.

Не прочитано

Что вы узнаете

  • Как права ACL становятся путём атаки
  • Что такое GenericAll и WriteDACL
  • Как найти опасные права

Перед этой темой стоит прочитать:Golden Ticket и Silver Ticket

Небрежно предоставленные разрешения на объекты в — один из самых распространённых путей повышения привилегий, и они вообще не требуют эксплуатации технической уязвимости.

  • GenericAll — полный контроль над объектом (можно сбросить пароль).
  • WriteDACL — позволяет предоставить себе любые права.
  • WriteOwner — позволяет стать владельцем и затем изменить разрешения.
  • ForceChangePassword — сброс пароля другого пользователя.
# Проверка ACL на объекте
(Get-Acl "AD:\CN=Domain Admins,CN=Users,DC=lab,DC=local").Access |
  Where-Object { $_.ActiveDirectoryRights -match "GenericAll|WriteDacl|WriteOwner" }
powershell
Архитектура и теория — под капотом

Каждый объект в имеет DACL — список разрешений. 'Невинные' разрешения, такие как WriteDacl или GenericAll для группы, позволяют обычному пользователю добавить себя в Admins. Это более распространенный путь эскалации, чем любой эксплойт.

  • GenericAll — полный контроль над объектом.
  • WriteDacl — изменение самих разрешений.
  • WriteOwner — получение владения, а затем изменение всего.
  • ForceChangePassword — сброс пароля другого пользователя.
  • AddMember — добавление участников в группу.
Практическая настройка (PowerShell / GUI)
# Проверка ACL на критической группе
(Get-Acl "AD:$( (Get-ADGroup 'Domain Admins').DistinguishedName )").Access |
  Where-Object { $_.ActiveDirectoryRights -match 'Write|GenericAll' }

# Удаление подозрительного разрешения
$acl = Get-Acl "AD:$( (Get-ADGroup 'Domain Admins').DistinguishedName )"
$acl.RemoveAccessRuleAll(($acl.Access | Where IdentityReference -eq 'CORP\bad_user'))
Set-Acl -Path "AD:$( (Get-ADGroup 'Domain Admins').DistinguishedName )" -AclObject $acl
powershell
Реальные сценарии в организации
  • Helpdesk с ForceChangePassword для чувствительных пользователей = доступная эскалация.
  • Забытый OU с Everyone:GenericAll — классика слияний компаний.
  • AdminSDHolder с избыточными разрешениями — влияет на все защищенные учетные записи.
Диагностика и устранение неполадок
  • Event 5136 — изменение объекта (Directory Service Changes должно быть включено).
  • Event 4728/4732 — добавление участника в глобальную/локальную группу.
  • Посещайте AdminSDHolder каждый час (SDProp) — он возвращает разрешения на место.
Глоссарий и быстрая командная строка
  • DACL — Discretionary ACL.
  • SDProp — процесс, применяющий AdminSDHolder.
  • — бесплатный инструмент для картирования путей эскалации привилегий.

Проверь себя

Что позволяет разрешение WriteDACL на объекте?

Эта страница вам помогла?