Короткий ответ
Разблокировка без поиска источника — это лечение температуры. Событие 4740 на DC показывает вызывающий компьютер; 4625 и 4771 показывают тип логона и статус пароля. Ищите сохранённые учётные данные, службы, IIS/LDAP-bind, почтовый клиент, смартфон, запланированные задачи и второй ПК с кэшем. Пока источник шлёт старый пароль, порог lockout снова сработает.
Не отключайте политику блокировки «чтобы пользователи работали» и не поднимайте порог до тысяч без понимания, что это маскирует brute-force.
Симптомы и как отличить
- Пользователь входит, через N минут снова «учётная запись заблокирована».
- После смены пароля симптом усиливается: кэш со старым секретом бьёт чаще.
Search-ADAccount -LockedOutпериодически возвращает одну и ту же учётку.
| Наблюдение | Не этот кейс |
|---|---|
| Один ПК, «доверительные отношения» | secure channel компьютера |
| Все не входят | DC / DNS |
| Приложение не биндится к LDAP, учётка не lock | LDAP |
Возможные причины
- Сохранённый пароль Windows (Credential Manager), сопоставленный диск, Outlook, RDP.
- Служба / scheduled task / IIS app pool под доменной учёткой после смены пароля.
- Смартфон/ноутбук вне офиса с Exchange/VPN.
- Второй сеанс на
WS-042или терминальном хосте. - Скрипт LDAP simple bind (часто 4625 type 8 или 3).
- Клавиатура, неверный пароль пользователя — тогда нет «чужого» Caller Computer, источник — его ПК.
- Атака / spray. Тогда много учёток, не одна.
Диагностика
1. Состояние учётки
Get-ADUser 'ivanov' -Properties LockedOut, BadLogonCount, LastBadPasswordAttempt, PasswordLastSet, Enabled |
Format-List DistinguishedName, LockedOut, BadLogonCount, LastBadPasswordAttempt, PasswordLastSet
Search-ADAccount -LockedOut | Where-Object SamAccountName -eq 'ivanov'2. 4740 — кто вызвал блокировку
На DC, лучше на том, что обрабатывал lockout (часто рядом с PDC, но не всегда):
Get-WinEvent -ComputerName DC01 -FilterHashtable @{ LogName = 'Security'; Id = 4740 } -MaxEvents 30 |
Format-List TimeCreated, MessageВ сообщении: Account Name и Caller Computer Name. Это главная зацепка: WS-042, FS01, APP-LDAP.
3. 4625 и 4771 на этом DC и на Caller
Get-WinEvent -ComputerName DC01 -FilterHashtable @{ LogName = 'Security'; Id = 4625 } -MaxEvents 50 |
Where-Object { $_.Message -match 'ivanov' } |
Format-List TimeCreated, Message
Get-WinEvent -ComputerName DC01 -FilterHashtable @{ LogName = 'Security'; Id = 4771 } -MaxEvents 30 |
Where-Object { $_.Message -match 'ivanov' }Status 0xC000006A — неверный пароль; 0xC0000234 — уже lockout. Logon Type: 2 интерактив, 3 сеть/SMB, 8 network cleartext (часто LDAP simple bind), 10 RemoteInteractive.
На WS-042, если он Caller:
Get-WinEvent -ComputerName WS-042 -FilterHashtable @{ LogName = 'Security'; Id = 4625 } -MaxEvents 30
Get-ScheduledTask | Where-Object { $_.Principal.UserId -match 'ivanov' }
Get-CimInstance Win32_Service | Where-Object StartName -match 'ivanov' |
Format-Table Name, StartName, State4. Политика порога
Get-ADDefaultDomainPasswordPolicy | Format-List LockoutDuration, LockoutObservationWindow, LockoutThreshold
Get-ADFineGrainedPasswordPolicy -Filter * | Format-Table Name, LockoutThreshold, AppliesToРешение
Сценарий A. Caller — рабочая станция пользователя
На WS-042: Credential Manager, сохранённые RDP, автономные файлы, Outlook. После смены пароля — перелогон, проверка дисков. Unlock:
Unlock-ADAccount -Identity 'ivanov'Если через минуты снова 4740 с тем же Caller — источник не снят.
Сценарий B. Служба или задача
Смените пароль в Log on as службы и в задаче, перезапустите службу в окно, когда пользователь уже с новым паролем. Не оставляйте две службы с разным поколением секрета.
Сценарий C. Приложение LDAP
Найдите bind DN в конфиге пула. Обновите секрет, проверьте, что нет второго инстанса со старым .env. См. статью про LDAP, если bind вообще не проходит.
Сценарий D. Нет Caller / пустое имя компьютера
Типично для некоторых VPN и NAT. Смотрите 4625 по IP, RADIUS, шлюз. Не отключайте аудит.
Сценарий E. Много учёток сразу
Это уже инцидент: порог, firewall, не «разблокировать всех скриптом в цикле».
Соберите таблицу: время 4740, Caller Computer, Logon Type из соседнего 4625, PasswordLastSet. Если PasswordLastSet свежий, а Caller — APP-LDAP или WS-042, источник почти наверняка сервисный кэш, не «пользователь забыл раскладку». Netlogon на Caller с уровнем отладки включают только на окно и потом выключают: постоянный verbose на прод-DC забьёт диск.
Проверьте Credential Manager не только интерактивного пользователя, но и службы, которая стартует как contoso\ivanov. Задача в Task Scheduler с «сохранить пароль» переживает смену пароля в AD и продолжает бить NTLM type 3.
Get-WinEvent -ComputerName WS-042 -FilterHashtable @{ LogName = 'Security'; Id = 4625 } -MaxEvents 20 |
Format-Table TimeCreated, Id -AutoSizeЕсли Caller пустой, снимите DHCP/NAT-логи VPN: там часто виден внутренний IP до трансляции. Не закрывайте тикет после одного успешного Unlock.
Как проверить, что проблема устранена
Подождите дольше, чем LockoutObservationWindow, не разблокируя вручную каждый раз.
Get-ADUser 'ivanov' -Properties LockedOut, LastBadPasswordAttempt, BadLogonCount |
Format-List LockedOut, LastBadPasswordAttempt, BadLogonCount
Get-WinEvent -ComputerName DC01 -FilterHashtable @{ LogName = 'Security'; Id = 4740 } -MaxEvents 5Нет новых 4740 по этой учётке. Пользователь входит с WS-042 и с телефона. Повторный Search-ADAccount -LockedOut пуст для неё.
Если не помогло
- 4740 есть, Caller — DC: источник — процесс на DC (сканер, агент, LDAP-приложение на том же узле). Не «виноват Netlogon сам по себе».
- Только NTLM 4776/4625 без Kerberos: старое приложение, не SPN.
- Fine-grained policy жёстче доменной — смотрите PSO, не Default Domain Policy.
- Компьютерная учётка блокируется — это не пользовательский lockout; смотрите канал машины.
Профилактика
- Аудит 4740/4625 централизованно, алерт на повторный lockout одной учётки.
- Сервисные учётки: отдельные, gMSA где возможно, не личные.
- После смены пароля — чеклист: телефон, Outlook, задачи, LDAP.
- Порог lockout разумный (не 0 и не 50 без модели угроз).
- Не хранить пароль администратора в задачах на всех
WS-042.
FAQ
Почему Unlock в ADUC не помогает через пять минут?
Источник всё ещё аутентифицируется старым паролем. Unlock сбрасывает флаг, не кэш на Caller.
Нужно ли всегда смотреть только PDC?
Нет. 4740 пишется на DC, который обработал неудачный логон, превысивший порог. Опросите все DC сайта.
Можно ли отключить lockout на время поиска?
Плохая идея. Сузьте Observation Window для тестовой PSO на одну учётку, если нужно быстрее видеть попытки, но не обнуляйте порог домена.
Event 4625 type 3 с файлового сервера — это что?
Обычно SMB или RPC с сохранённым credential. Проверьте сессии на файловом сервере и Credential Manager на Caller.
Пользователь клянётся, что пароль не вводил.
Именно поэтому ищете Caller Computer, а не «ещё раз смени пароль».