IBCOURSES / СПРАВОЧНИК ИБ

Windows Security 4771 — отказ предварительной аутентификации Kerberos

К ответу ↓

4771 фиксирует отказ предварительной аутентификации на DC. Status 0x18 указывает на непрошедшую проверку данных, но одна запись не устанавливает подбор пароля или человека.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

Windows Security 4771 — отказ предварительной аутентификации Kerberos

4771 фиксирует отказ предварительной аутентификации на DC. Status 0x18 указывает на непрошедшую проверку данных, но одна запись не устанавливает подбор пароля или человека.

1. Подтвердите этап Kerberos

Отделите сообщение пользователя от факта регистрации на DC. 4771 относится к предварительной аутентификации перед выдачей TGT. Он не описывает проверку прав в приложении. Зафиксируйте учётную запись/realm, DC и время с точностью источника. Не считайте любой отказ LDAP или OIDC автоматической причиной появления 4771: протокол и путь проверки должны быть подтверждены.

2. Проверьте условия регистрации

Нужен аудит Failure подкатегории Kerberos Authentication Service. Сохраните версию XML и сведения о политике применимого периода. Microsoft отдельно указывает, что при отключённом требовании pre-auth для учётной записи это событие не генерируется. Проверка такого условия читает существующую конфигурацию и не предлагает менять защитные настройки ради теста.

3. Получите исходный фрагмент

По разрешённой копии Security отберите 4771 за узкое UTC-окно и извлеките именованные Data. Сравните Status, PreAuthType, Target и IpAddress, сохраняя исходный Computer. Не заменяйте код переведённым текстом, а отсутствие поля — нулём. Перед группировкой проверьте дубли доставки и то, что записи относятся к нужной учётной базе.

4. Прочитайте пример и развилки

В учебном примере Status 0x18 соответствует KDC_ERR_PREAUTH_FAILED. Возможны ошибочно введённые или устаревшие сохранённые данные; само событие не выбирает между ними. 0x17 ведёт к проверке срока ключа, 0x12 — к уточнению состояния учётных данных, 0x25 — к проверке допустимого расхождения часов. Это разные ветви; автоматическая смена пароля не является универсальным диагностическим шагом.

5. Проверьте серию и блокировку

Сопоставьте повторяемость по времени, target и отправителю, предварительно убрав дубли. Уточните известные задания, службы и хранилища учётных данных через владельца. При блокировке ищите 4740 и причину продолжения попыток. Даже серия 0x18 не устанавливает умысел; адреса, временной рисунок и контекст помогают проверить гипотезу, но не заменяют подтверждения.

6. Если записи нет или данных мало

Проверьте иной DC/realm, отсутствие pre-auth, другой протокол, настройки регистрации и сроки хранения. Уточните, доступен ли исходный журнал, а не только нормализованная выборка SIEM. Не повторяйте входы для набора примеров. Если отправителя установить нельзя, перечислите необходимые дополнительные источники и ограничьте вывод наблюдаемым отказом конкретного этапа.

Поля и область применения

Исходное полеСмысл и ограничения
System/Provider/@NameТочный Provider; одно число EventID не устанавливает источник.
System/ChannelSecurity в исходном XML, включая события из сохранённого EVTX.
System/ComputerУзел регистрации; DC и клиент/сервер приложения выполняют разные роли.
System/VersionВерсия схемы; отсутствующие новые поля не заполнять догадкой.
System/TimeCreated/@SystemTimeUTC источника. Учитывать погрешность часов и отдельно время доставки.
System/EventRecordIDПозиция в журнале конкретного узла, не глобальный идентификатор обмена.
TargetUserName / TargetSidIdentity, для которой запрошен TGT, не инициатор-человек.
ServiceNameСлужба выдачи TGT и realm; отличается от конечного приложения.
StatusШестнадцатеричный код Kerberos: 0x18 — отказ предварительной аутентификации; 0x17 — истёкший ключ; 0x12 — отозванные учётные данные, состояние которых нужно уточнить.
PreAuthTypeМетод предварительной аутентификации; пароль и сертификат требуют разных проверок.
IpAddress / IpPortИсточник запроса к DC; NAT/посредник ограничивают атрибуцию.
CertIssuerName / CertSerialNumber / CertThumbprintСведения сертификата, если доступны; пустые поля сами не доказывают проблему PKI.

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

4771 v0: отказ проверки данных pre-auth

Фрагмент журнала. Сокращённый фрагмент документированного XML. Все имена, SID, адреса и время вымышлены; это не полный экспорт. Необязательные/добавочные поля опущены, отсутствие поля не означает ноль.

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-Security-Auditing"/>
    <EventID>4771</EventID><Version>0</Version>
    <TimeCreated SystemTime="2026-11-04T07:00:00.000Z"/><EventRecordID>7001</EventRecordID>
    <Channel>Security</Channel><Computer>dc-01.example.test</Computer>
  </System>
  <EventData>
    <Data Name="TargetUserName">demo.user</Data>
    <Data Name="TargetSid">S-1-5-21-111-222-333-1101</Data>
    <Data Name="ServiceName">krbtgt/EXAMPLE.TEST</Data>
    <Data Name="TicketOptions">0x40810010</Data>
    <Data Name="Status">0x18</Data>
    <Data Name="PreAuthType">2</Data>
    <Data Name="IpAddress">::ffff:192.0.2.30</Data>
    <Data Name="IpPort">52004</Data>
    <Data Name="CertIssuerName"></Data>
    <Data Name="CertSerialNumber"></Data>
    <Data Name="CertThumbprint"></Data>
  </EventData>
</Event>

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

PowerShell 7.5 / Windows: чтение разрешённой локальной копии EVTX. Заменить путь и учебное UTC-окно.

$referenceStartUtc = [DateTimeOffset]::Parse('2026-11-04T06:55:00Z').UtcDateTime
$referenceEndUtc = [DateTimeOffset]::Parse('2026-11-04T07:10:00Z').UtcDateTime
Get-WinEvent -FilterHashtable @{
  Path='C:\Evidence\Security.evtx'
  ProviderName='Microsoft-Windows-Security-Auditing'
  Id=4771
  StartTime=$referenceStartUtc
  EndTime=$referenceEndUtc
} | ForEach-Object {
  $referenceEvent = $_
  [xml]$referenceXml = $referenceEvent.ToXml()
  $referenceNs = [System.Xml.XmlNamespaceManager]::new($referenceXml.NameTable)
  $referenceNs.AddNamespace('e','http://schemas.microsoft.com/win/2004/08/events/event')
  $referenceData = @{}
  foreach ($referenceNode in $referenceXml.SelectNodes('/e:Event/e:EventData/e:Data',$referenceNs)) {
    $referenceData[$referenceNode.GetAttribute('Name')] = $referenceNode.InnerText
  }
  [pscustomobject]@{
    TimeCreatedUtc = $referenceEvent.TimeCreated.ToUniversalTime().ToString('o')
    Computer = $referenceEvent.MachineName
    Provider = $referenceEvent.ProviderName
    EventId = $referenceEvent.Id
    RecordId = $referenceEvent.RecordId
    Version = $referenceXml.SelectSingleNode('/e:Event/e:System/e:Version',$referenceNs).InnerText
    TargetUserName = $referenceData['TargetUserName']
    TargetDomainName = $referenceData['TargetDomainName']
    TargetSid = $referenceData['TargetSid']
    ServiceName = $referenceData['ServiceName']
    Status = $referenceData['Status']
    IpAddress = $referenceData['IpAddress']
    PreAuthType = $referenceData['PreAuthType']
    LogonGuid = $referenceData['LogonGuid']
    TicketEncryptionType = $referenceData['TicketEncryptionType']
    SessionKeyEncryptionType = $referenceData['SessionKeyEncryptionType']
    SubjectUserSid = $referenceData['SubjectUserSid']
    SubjectUserName = $referenceData['SubjectUserName']
    SubjectLogonId = $referenceData['SubjectLogonId']
    CallerComputerName = $referenceData['CallerComputerName']
  }
}

Первоисточники

Коды Kerberos, NTSTATUS и диагностические значения LDAP различаются. Опция без обязательной предварительной аутентификации меняет ожидаемую регистрацию; отсутствие 4771 не подтверждает успех.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.