Кто сбросил пароль пользователя в Active Directory?
Добрый день! Уважаемы подписчики и просто гости, одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами разобрали причины отказа доступа, которые не давали нам произвести смену пароля у пользователя. В сегодняшней заметке я бы хотел немного поговорить про аудит сброса пароля пользователя в Active Directory. Мы научимся определять по логам Windows, когда пользователь последний раз менял пароль или кто его принудительно поменял. Уверен, что данная информация вам окажется полезной при изучении событий безопасности.
Постановка задачи
Я перед собой ставлю настройку аудита доменных служб Active Directory, таким образом, чтобы я мог получать информацию, об изменении пользователем или оператором второй линии паролей учетной записи Active Directory, для мониторинга и улучшения безопасности.
Настройка политики аудита сброса паролей
Давайте рассматривать, как узнать, кто сбросил пароль пользователя в Active Directory. Так как это у нас домен, то все свои действия мы будем выполнять с помощью групповых политик. Первым делом нам необходимо включить в политике аудита распространяемой на ваш домен, логирование и занесение в журнал нужных нам событий безопасности, напоминаю, они будут появляться на ваших контроллерах домена.
Открываем с вами оснастку gpmc.msc (Управление групповой политикой). Разверните структуру вашего леса и выберите необходимый домен. В моем случае, это root.pyatilistnik.org. Я вам советую включать политику аудита всегда на уровне домена и использовать для этого уже имеющуюся политику "Default Domain Policy", в принципе сама Microsoft на этот момент не против, но никто вам не мешает создать новую и прилинковать ее к вашему домену. Щелкаем по ней правым кликом и из контекстного меню выбираем "Изменить"
Нужные нам параметры находятся в настройках на компьютер. Переходим по пути:
(Computer Configuration - Policies - Windows Settings - Security Settings - Local Policies - Audit Policy)
Нас тут будет интересовать пункт "Аудит управления учетными записями (Audit User Account Management )". Щелкаем по данному пункту двойным кликом и у вас откроется окно свойств. Установите галки:
- Определить следующие параметры политики
- Успех (Success)
- Отказ (Failure)
Активировав галки, сохраняем настройки нажав ok.
В расширенном аудите сброс или изменение пароля настраивается в таком разделе:
Тут вам нужно найти параметр "Аудит управления учетными записями пользователей", именно он и даст возможность отслеживания смены пароля, а так же его сброс.
Теперь когда у вас политика аудита настроена и применена к серверам и компьютерам, можно изучать логи операционной системы. Открываем просмотр событий Windows. Переходим в журнал "Безопасность", именно в него пишутся события, сброса пароля пользователя Active Directory и изменения пароля самим пользователем.
Перед тем, как искать информацию, нам необходимо определиться, какой номер ID события нам интересен. В журнале безопасности нужно искать:
- Event ID - 4723 (S, F): предпринята попытка изменить пароль учетной записи
- Event ID - 4724 (S, F): предпринята попытка изменить пароль учетной записи
Код события 4723 показывает нам информацию, была ли попытке изменить пользователем свой пароль, и два варианта получилось это сделать или нет.
Код события 4724 покажет вам информацию, когда и кто пытался произвести сброс пароля учетной записи пользователя Active Directory, данная информация бывает необходимой в случае компрометации учетной записи и расследовании.
Еще полезным будет почитать про описание событий системы безопасности в Windows https://support.microsoft.com/ru-ru/help/977519/description-of-security-events-in-windows-7-and-in-windows-server-2008
В журнале безопасность нажмите "Фильтр текущего журнала". В настройках фильтрации поля "Все коды событий" введите 4723 и нажмите применить.
Ваш журнал будет отфильтрован и вы не получите того огромного количества событий, которое в нем присутствует. Вы увидите попытки смены пароля пользователя Active Directory. Тут будут успешные и неудачные. Неудачные попытки будут полезны при диагностике блокировки учетной записи Active Directory.
Вот пример события ID 4723, где пользователь Барбоскин Геннадий, успешно поменял свой пароль.
Выполнена попытка изменения пароля учетной записи.
Субъект:
Идентификатор безопасности: ROOT\barboskin.g
Имя учетной записи: barboskin.g
Домен учетной записи: ROOT
Идентификатор входа: 0x179CA0D6Целевая учетная запись:
Идентификатор безопасности: ROOT\barboskin.g
Имя учетной записи: barboskin.g
Домен учетной записи: ROOT
А вот вам пример ID 4723, где Барбоскин не смог изменить свой пароль.
Теперь давайте изменим фильтр на событие ID 4724. Вот пример, где пользователь Администратор, произвел успешно смену пароля для учетной записи barboskin.g.
Выполнена попытка сброса пароля учетной записи.
Субъект:
Идентификатор безопасности: ROOT\Администратор
Имя учетной записи: Администратор
Домен учетной записи: ROOT
Идентификатор входа: 0x1799B159Целевая учетная запись:
Идентификатор безопасности: ROOT\barboskin.g
Имя учетной записи: barboskin.g
Домен учетной записи: ROOT
Теперь сбросим фильтр и заточим его на поиск событий 4724, напоминаю, это когда кто-то сбрасывает пароль учетной записи Active Directory, через оснастку ADUC. В моем примере видно из события ID 4724, что пользователь ROOT\Администратор произвел сброс пароля для пользователя barboskin.g.
Получение информации, через PowerShell
Для большей автоматизации, вы можете написать скрипт и запускать его через PowerShell. Ниже я вам приведу пример такого простого сценария, который ходит по всем контроллерам домена и собирает все нужные события по определенному ID. Но правильнее будет, это иметь сервер коллектор, на который будут перенаправляться все события с контроллеров, и вот с него уже проще получать нужную информацию, так сказать централизованно.
(Get-ADComputer -SearchBase ‘OU=Domain Controllers,DC=pyatilistnik,DC=org’ -Filter *).Name | foreach {
Get-WinEvent -ComputerName $_ -FilterHashtable @{LogName="Security";ID=4724 }| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$AdmUser = $event.Event.EventData.Data[4]."#text"
$User = $event.Event.EventData.Data[0]."#text"
$dc = $event.Event.System.computer
write-host “Admin ” $AdmUser “ reset password to ” $User “ on ” $dc “ “ $Time
}
}
}
Сам код вы можете проверить открыв оболочку PowerShell ISE. Вот мы получили события 4723, когда пользователи меняли свои пароли Active Directory.
А вот пример поиска событий 4724, когда кто-то целенаправленно произвел сброс и смену пароля пользователя в ADUC.
Надеюсь, что вы стали больше разбираться в событиях безопасности Windows и теперь легко сможете ответить, кто и когда менял пароль учетной записи в Active Directory, а с вами был Иван Семин, автор и создатель портала Pyatilistnik.org,
Добрый день!
Политику обязательно надо прокручивать ко всему домену или можно только к контроллерам домена (подлинковать к ОУ Контроллеры домена).
В случае, если подлинковали ее ко всему домену, то события будут записывать в журнал на контроллер домена?
Только к контроллерам