Event ID 4771: Ошибка предварительной проверки Kerberos (Pre-Auth Failed)
Архитектура Kerberos и симптомы сбоя
Событие 4771 генерируется ИСКЛЮЧИТЕЛЬНО на контроллерах домена (KDC) при ошибке предварительной проверки подлинности Kerberos (Pre-Authentication). Это эквивалент события >4625 (Failed Logon), но для доменного протокола Kerberos. Огромное преимущество события 4771 перед 4625 состоит в том, что оно всегда содержит IP-адрес клиента (Client Address), даже если запрос прошел через несколько шлюзов.
Таблица кодов отказов Kerberos (Failure Code)
| Failure Code (HEX) | Расшифровка и причина |
|---|---|
0x18 (24) | Неверный пароль (Pre-authentication information was invalid). Пользователь существует, но ввел неправильный пароль. Признак Brute-force. |
0x12 (18) | Учетная запись заблокирована или отключена (Clients credentials have been revoked). См. события 4740 или 4725. |
0x17 (23) | Истек срок действия пароля пользователя (Password has expired). |
0x25 (37) | Рассинхронизация времени (Time Skew). Часы на клиенте расходятся с часами сервера более чем на 5 минут. |
0x10 (16) | Слишком много попыток входа с использованием смарт-карты (PKINIT). |
Пошаговое дерево решений (Поиск источника атак)
Сценарий 1: Быстрый поиск атакующего IP-адреса (Код 0x18)
Если пользователи жалуются на постоянные блокировки (событие 4740), вам нужно найти устройство, которое долбит контроллер домена неверными паролями. 4771 покажет точный IP.
Скрипт поиска источников подбора пароля:# Поиск неверных попыток входа Kerberos за последний час
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4771; StartTime=(Get-Date).AddHours(-1)} |
Where-Object {$_.Properties[4].Value -eq "0x18"} |
Select-Object TimeCreated,
@{N="TargetUser";E={$_.Properties[0].Value}},
@{N="IP_Address";E={$_.Properties[6].Value}},
@{N="FailureCode";E={$_.Properties[4].Value}} | Format-Table -AutoSizeСценарий 2: Лечение ошибок времени (Код 0x25)
Kerberos использует временные метки (Timestamps) для защиты от атак повторного воспроизведения (Replay Attacks). Если часы клиента отстают от PDC Emulator более чем на 5 минут, аутентификация бракуется с кодом 0x25. Настройте иерархию NTP (w32tm) и принудительно синхронизируйте проблемный ПК: w32tm /resync /rediscover.
Сценарий 3: Защита от Password Spraying (Распыление паролей)
Хакеры (используя утилиты вроде Rubeus) применяют атаку Password Spraying: они берут 1 популярный пароль (например, Autumn2024!) и пытаются войти под ним во ВСЕ учетные записи по очереди, генерируя 4771 (0x18). Это позволяет обойти порог блокировки (Account Lockout Threshold). Отслеживайте ситуацию, когда с одного IP-адреса приходят события 4771 для десятков разных пользователей.
Типовые ошибки администраторов
- Поиск 4771 на рядовых серверах: Центр распространения ключей (KDC) находится только на контроллерах домена. На файловом сервере или Exchange этого события не будет.
- Игнорирование IPv6: В поле IP-адреса часто можно увидеть
::ffff:192.168.1.10(IPv4, обернутый в IPv6) или локальный адрес::1. Если IP равен::1, значит проблема находится на локальных службах самого контроллера домена (IIS, AD FS, Exchange).
Разбор логов Kerberos требует глубоких знаний сетевых протоколов. Снимите с себя рутину: мы возьмем инфраструктуру на 2-ю линию поддержки по договору. Заблокируем источники атак, настроим IPS/IDS, внедрим систему SSO и обеспечим покой бизнесу.
Частые вопросы (FAQ)
Почему 4771 не генерируется, когда я ввожу несуществующее имя пользователя?
Если имя пользователя не найдено в базе AD, протокол Kerberos генерирует другое событие — 4768 (Запрос TGT билета) с кодом отказа 0x6 (Client not found in Kerberos database). Событие 4771 генерируется, только если пользователь физически существует.
Влияют ли ошибки 4771 на работу NTLM?
Нет, это разные протоколы. Но если Kerberos-аутентификация падает (например, из-за рассинхронизации времени 0x25), Windows попытается выполнить 'Fallback' и войти через NTLM. Если NTLM отключен в GPO, пользователь получит отказ в обслуживании.