Event ID 4738: Учетная запись пользователя изменена (User Account Modified)
Архитектура модификации объектов Active Directory
Событие 4738 логируется в журнале Security на контроллере домена при изменении любых базовых атрибутов объекта пользователя в Active Directory. Это одно из важнейших событий для обнаружения атак на ядро домена: изменение параметров делегирования Kerberos (Unconstrained Delegation), добавление SPN для проведения атаки Kerberoasting, отключение требования предварительной аутентификации Kerberos (AS-REP Roasting / DONT_REQ_PREAUTH) или внедрение истории SID (SID History Injection).
Критические атрибуты безопасности в событии 4738
| Атрибут в событии | Что означает изменение | Вектор угрозы ИБ |
|---|---|---|
User Account Control | Изменение битовых флагов UAC. | Отключение требования дореволюционной проверки (0x400000 / DONT_REQ_PREAUTH). |
Service Principal Name | Добавлен или изменен SPN. | Подготовка учетной записи к атаке Kerberoasting. |
SID History | Добавлен сторонний SID. | Инъекция прав Enterprise Admins в обычную учетную запись. |
Allowed To Delegate To | Настройка делегирования. | Несанкционированное Kerberos Constrained Delegation. |
Password Last Set | Обновление времени смены пароля. | Факт смены или сброса пароля. |
Сценарии аудита и выявления скрытых модификаций
Сценарий 1: Поиск отключения Kerberos Pre-Authentication (AS-REP Roasting)
Злоумышленники выставляют флаг DONT_REQ_PREAUTH, чтобы запросить зашифрованный TGT-билет без знания пароля и сбрутфорсить его офлайн.
# Поиск пользователей с отключенной предварительной проверкой Kerberos
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $True} -Properties DoesNotRequirePreAuth |
Select-Object SamAccountName, DoesNotRequirePreAuthСценарий 2: Поиск внедрения SID History через PowerShell
Проверьте наличие заполненного атрибута SIDHistory у обычных учетных записей домена.
# Поиск учетных записей с заполненным SID History
Get-ADUser -Filter 'SIDHistory -like "*"' -Properties SIDHistory |
Select-Object SamAccountName, SIDHistoryСценарий 3: Аудит модификаций привилегированных учетных записей
Выгрузка изменений атрибутов для учетных записей из группы Администраторы домена за последнюю неделю.
# Сбор событий 4738 для целевого администратора
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4738; StartTime=(Get-Date).AddDays(-7)} |
Where-Object {$_.Properties[1].Value -eq 'DomainAdminUser'} |
Select-Object TimeCreated, @{N='ModifiedUser';E={$_.Properties[1].Value}}, @{N='ModifiedBy';E={$_.Properties[2].Value}}Типовые ошибки администраторов
- Сравнение только события 4738 без Directory Service Changes: Событие 4738 показывает измененное состояние в общем виде. Для детального отслеживания изменения конкретных кастомных атрибутов (старое значение -> новое значение) необходимо включать расширенный аудит Event ID 5136 (A directory service object was modified).
Скрытые изменения атрибутов Active Directory — фундамент атак повышенной сложности (APT). Закажите глубокий Hardening Active Directory в ITSTM: устраним архитектурные уязвимости и защитим домен от взлома.
Частые вопросы (FAQ)
Почему событие 4738 генерируется так часто?
Событие 4738 генерируется при ЛЮБОМ изменении учетной записи: блокировка, разблокировка, сброс пароля, изменение номера телефона или адреса почты. На контроллерах домена это одно из самых частых событий.
Как в событии 4738 отличить смену пароля от изменения других полей?
В деталях события поле 'Password Last Set' будет содержать точную дату и время операции вместо значения '—' (не изменялось).
Показывает ли событие 4738 старое значение атрибута?
Нет. Событие 4738 фиксирует только новое установленное значение или маркер '—'. Для сравнения 'было / стало' используется аудит каталога Event ID 5136.
Что означает флаг 0x10 в поле User Account Control события 4738?
Флаг 0x10 (LOCKOUT) сигнализирует о том, что учетная запись была заблокирована из-за превышения порога неверно введенных паролей.