1. Уточните целевую службу
Запишите URL/ресурс, адрес назначения, клиент и период отказа без секретов. Сравните ожидаемую службу с ServiceName и ServiceSid. Не подставляйте автоматически SPN из имени веб-сайта: событие может показывать учётную запись службы, а маршрут включать посредника. Для связи с историей приложения нужен его собственный контекст.
2. Проверьте аудит и XML
Отбор выполняется на DC при наличии Audit Kerberos Service Ticket Operations. Подкатегория отличается от выдачи TGT. В документации есть версии 0 и 2, обновлённая форма зависит от исправлений DC. Сохраните System/Version и полную запись; отсутствие SessionKeyEncryptionType в старом XML не означает нулевое или слабое шифрование.
3. Сохраните отбор
Используйте читающий запрос по копии EVTX и узкому UTC-окну. Сохраняйте Provider, Computer, RecordID, Status и доступные именованные поля. Запрос намеренно не меняет SPN, ключи, политики или пароль службы. Нулевой результат сначала проверяется как возможная ошибка выбора DC, периода и источника; это ещё не вывод о прохождении запроса.
4. Разделите результат и причину
Учебный Status 0x7 показывает проблему поиска principal службы. Далее проверяют запрошенное имя, область и зарегистрированную службу, не объявляя это доказательством атаки. Status 0x0 во втором примере означает успешный результат TGS, но ничего не говорит о чтении файла или успешном ответе приложения. Уточнение SPN и реального объекта выполняется по сохранённой конфигурации владельца.
5. Сопоставьте сеанс без ложного объединения
При доступном ненулевом LogonGuid сравните его с 4624 на соответствующем целевом компьютере. Нулевой GUID не является общим ключом для всех таких событий. Уточните учётную запись, ресурс, время и источник; близость по минуте либо одинаковое имя недостаточны. Затем сопоставьте запись приложения, которая показывает авторизацию и результат конкретного действия.
6. Если цепочка обрывается
Успешный 4769 может не сопровождаться ожидаемым действием приложения, а отсутствие свежего TGT не делает TGS недействительным. Проверьте уже имевшийся билет, другой DC, охват аудита, ротацию и доставку. Отдельно зафиксируйте отсутствие журнала целевого сервиса. Не обходите проверки доверия и не переключайте шифрование ради диагностического результата.
Примеры записей
Данные в примерах условные. Состав полей зависит от версии и настроек источника.
4769 v0: principal службы не найден
Фрагмент журнала. Сокращённый фрагмент документированного XML. Все имена, SID, адреса и время вымышлены; это не полный экспорт. Необязательные/добавочные поля опущены, отсутствие поля не означает ноль.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing"/>
<EventID>4769</EventID><Version>0</Version>
<TimeCreated SystemTime="2026-11-04T07:01:30.000Z"/><EventRecordID>7004</EventRecordID>
<Channel>Security</Channel><Computer>dc-01.example.test</Computer>
</System>
<EventData>
<Data Name="TargetUserName">demo.user@EXAMPLE.TEST</Data>
<Data Name="TargetDomainName">EXAMPLE.TEST</Data>
<Data Name="ServiceName">missing-service</Data>
<Data Name="ServiceSid">S-1-0-0</Data>
<Data Name="TicketOptions">0x40810000</Data>
<Data Name="TicketEncryptionType">0xffffffff</Data>
<Data Name="IpAddress">::ffff:192.0.2.30</Data>
<Data Name="IpPort">52002</Data>
<Data Name="Status">0x7</Data>
<Data Name="LogonGuid">{00000000-0000-0000-0000-000000000000}</Data>
<Data Name="TransmittedServices">-</Data>
</EventData>
</Event>
4769 v2: успешная выдача, возможный ключ связи
Фрагмент журнала. Сокращённый фрагмент документированного XML. Все имена, SID, адреса и время вымышлены; это не полный экспорт. Необязательные/добавочные поля опущены, отсутствие поля не означает ноль.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing"/>
<EventID>4769</EventID><Version>2</Version>
<TimeCreated SystemTime="2026-11-04T07:02:00.000Z"/><EventRecordID>7005</EventRecordID>
<Channel>Security</Channel><Computer>dc-01.example.test</Computer>
</System>
<EventData>
<Data Name="TargetUserName">demo.user@EXAMPLE.TEST</Data>
<Data Name="TargetDomainName">EXAMPLE.TEST</Data>
<Data Name="ServiceName">app-svc</Data>
<Data Name="ServiceSid">S-1-5-21-111-222-333-2101</Data>
<Data Name="TicketOptions">0x40810000</Data>
<Data Name="TicketEncryptionType">0x12</Data>
<Data Name="IpAddress">::ffff:192.0.2.30</Data>
<Data Name="IpPort">52003</Data>
<Data Name="Status">0x0</Data>
<Data Name="LogonGuid">{11111111-2222-4333-8444-555555555555}</Data>
<Data Name="SessionKeyEncryptionType">0x12</Data>
</EventData>
</Event>
ServiceName не обязательно полный SPN; LogonGuid бывает отсутствующим/нулевым. Полученный билет не доказывает использование сервиса.