Event ID 5136: Объект службы каталогов AD был изменен (Скрытые правки)
Архитектура аудита DS Access (Directory Service)
Событие 5136 логируется в журнале Security на контроллерах домена, если включен расширенный аудит Directory Service Changes. Сообщение гласит: "Объект службы каталогов был изменен". В отличие от простых событий управления (>4738 - Account Changed), 5136 показывает прямые низкоуровневые манипуляции с атрибутами LDAP (добавление, удаление, замена) для ЛЮБОГО объекта AD: Подразделений (OU), Компьютеров, Пользователей и даже Контейнеров GPO.
Анатомия LDAP транзакции в 5136
Изменение одного атрибута в AD всегда генерирует два события 5136 подряд. Это связано с тем, как работает база NTDS.dit:
- Первое событие (Operation: Value Deleted): Удаление старого значения из базы. В поле Value вы увидите, что было раньше.
- Второе событие (Operation: Value Added): Запись нового значения. В поле Value вы увидите, что стало.
Пошаговое дерево решений (Мониторинг теневых атрибутов)
Сценарий 1: Контроль защиты AdminSDHolder (adminCount)
Атрибут adminCount равный 1 указывает на то, что объект является высокопривилегированным и защищается процессом SDProp. Если хакер снимает этот флаг (меняя на 0), он выводит учетку из-под защиты ядра AD для дальнейшего взлома.
# Ищем, кто модифицировал атрибут adminCount
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=5136; StartTime=(Get-Date).AddDays(-1)} |
Where-Object {$_.Properties[10].Value -eq 'adminCount'} |
Select-Object TimeCreated,
@{N='Admin';E={$_.Properties[1].Value}},
@{N='Object';E={$_.Properties[6].Value}},
@{N='Operation';E={$_.Properties[12].Value}},
@{N='NewValue';E={$_.Properties[13].Value}}Сценарий 2: Атака RBCD (Resource-Based Constrained Delegation)
Самая опасная современная атака в домене — изменение атрибута msDS-AllowedToDelegateTo. Злоумышленник (имея право записи в чужой объект компьютера) прописывает туда свою контролируемую УЗ, получая право генерировать Kerberos-билеты (Silver Ticket) от имени систем на этот сервер. Фильтруйте 5136 по этому атрибуту (LDAPDisplayName) — это 100% сигнал к тревоге (Red Team).
Сценарий 3: Защита корня домена
Если событие 5136 показывает изменение атрибута nTSecurityDescriptor (Списка контроля доступа ACL) на корневом объекте домена (DC=domain,DC=com), это означает, что кто-то выдал себе права репликации (DCSync) или полного контроля (Enterprise Admin) в обход стандартных групп.
Типовые ошибки администраторов
- Включение аудита без SACL: Само по себе включение политики 'Audit Directory Service Changes' не заставит сервер писать события 5136. Вы ОБЯЗАНЫ открыть ADSI Edit, зайти в свойства корня домена (или нужного OU), вкладка Безопасность -> Аудит, и добавить группу 'Everyone' с аудитом 'Успех' на нужные атрибуты (SACL).
Теневые правки атрибутов LDAP ведут к тихой компрометации домена без поднятия тревоги базовыми антивирусами. Передайте инфраструктуру на системную поддержку: мы настроим глубокий SIEM-аудит (Advanced Audit Policy) и возьмем под контроль каждую транзакцию в базе AD.
Частые вопросы (FAQ)
Почему 5136 генерирует терабайты логов?
Потому что вы включили SACL на 'Все атрибуты' (All Properties). Системные процессы постоянно меняют атрибуты LastLogon, BadPwdCount. Включайте аудит SACL точечно, только на критические атрибуты (member, userAccountControl, nTSecurityDescriptor).
Видно ли в 5136, с какого IP-адреса админ внес изменения?
Нет. Архитектура событий DS Access фиксирует только имя пользователя (Subject). Для поиска IP-адреса вам придется сопоставлять SubjectLogonId из 5136 с событием входа 4624.
Сгенерируется ли 5136 при удалении объекта?
Для самого факта удаления объекта генерируется отдельное событие 5141 (Directory Service object was deleted). 5136 отвечает только за модификацию существующих параметров.
Чем 5136 лучше 4738?
4738 (Account Changed) — это высокоуровневое, удобное для человека событие. Оно покрывает только Пользователей. 5136 (DS Modified) — это сырой лог базы данных. Он покрывает Компьютеры, OU, Групповые политики (GPO) и скрытые системные контейнеры (Configuration).
Можно ли скриптом откатить изменение, найденное в 5136?
Да, поскольку событие 'Value Deleted' показывает вам старое значение (Old Value), вы можете вручную (или скриптом Set-ADObject) записать это старое значение обратно в Active Directory, отменив действия хакера.