
Привет, Хабр! На связи команда PT Cyber Analytics. Мы взаимодействуем с этичными хакерами в различных red‑team‑проектах, реализуемых для наших заказчиков. Пока хакеры занимаются поиском уязвимых мест и различных недостатков в системах заказчиков, мы — аналитики — занимаемся комплексным анализом системы, оценкой уязвимостей и их последствий в контексте угрозы для заказчика, составляем список рекомендаций и мер и представляем все обнаруженное хакерами и проанализированное нами в форме понятных отчетов. В процессе работы над подобными проектами мы провели множество исследований инфраструктур и накопили знания о различных актуальных атаках — и хотим поделиться этими знаниями с экспертами или теми, кто просто заинтересован в информационной безопасности.
Свою статью мы бы хотели посвятить атакам, которые часто проводятся в рамках внутренних пентестов. Основная цель внутренних пентестов — получение контроля над инфраструктурой заказчика. Поскольку большая часть компаний использует Active Directory для построения сетей, то цель обычно достигается путем получения учетной записи администратора домена (или другой учетной записи с аналогичными привилегиями). С такими правами потенциальный нарушитель может сделать практически все что угодно: добраться до любой важной информации, зашифровать данные, вывести критически значимые системы из строя и т. п. Таким образом, получения подобной учетной записи в большинстве случаев достаточно для окончания работ и подтверждения успешности взлома внутренней сети. Есть множество способов добиться этой цели, один из них, и достаточно популярный, — проведение атак на службу сертификации Active Directory (AD CS).
Содержание
История появления ESC-векторов
Служба сертификации AD CS в двух словах
ESC1: изменение SAN (modifiable SAN)
ESC2: небезопасные расширения any purpose или none purpose (any or none purpose attack)
ESC3: небезопасная конфигурация шаблона сертификата агента регистрации (Enrollment Agent)
ESC4: недостаточное разграничение доступа к шаблонам сертификатов (certificate ACL abuse)
ESC5: недостаточный контроль доступа к объектам PKI (vulnerable PKI AD object access control)
ESC8: атака NTLM relay на веб-службу регистрации сертификатов (NTLM relay to AD CS HTTP endpoints)
ESC9: отсутствие расширений безопасности (no security extension)
ESC10: слабый маппинг сертификатов (weak certificate mappings)
ESC11: атака NTLM relay на протокол ICPR (relaying NTLM to ICPR)
ESC13: злоупотребление полномочиями привязанной группы (OID group link abuse)
ESC14: слабый явный маппинг (weak explicit mapping)
ESC15: злоупотребление политикой приложений (EKUwu Application Policies)
Почему именно AD CS?
Популярность атак на AD CS связана с различными недостатками конфигурации этой службы, позволяющими ее скомпрометировать, а также с ее важностью в инфраструктуре. Служба сертификации позволяет развернуть собственную инфраструктуру открытых ключей (PKI) в доменной сети и предназначена для создания центра сертификации (Certificate Authority, CA), который используется для выдачи сертификатов пользователям. Сертификаты в Active Directory — это документы, содержащие информацию об их владельце и используемые для различных целей. Хакеры могут использовать недостатки в AD CS для получения сертификатов на имена привилегированных пользователей и повышения привилегий в домене до максимальных.
В рамках наших работ больше чем у половины заказчиков встречаются недостатки, которые позволяют проводить атаки на AD CS и получить контроль над инфраструктурой, а как минимум для ⅔ наших заказчиков актуальны проблемы с конфигурированием шаблонов и центра сертификации. Подобные проблемы неоднократно позволяли получать полный контроль над доменами заказчиков и достигать других целей, обозначенных как недопустимые для бизнеса. Например, используя векторы атак на AD CS и скомпрометировав домены, нарушители могут продолжить свое перемещение по сети и реализовать следующее:
получить привилегированный доступ к ПО для резервного копирования и удалить важные резервные копии, чтобы нарушить бизнес‑процессы;
скомпрометировать бизнес‑счета компании, получив полный доступ к финансовым системам (например, к «1С»);
получить доступ к маршрутизаторам и нарушить конфигурацию сетевого оборудования;
получить важные данные пользователей или клиентов, например учетные данные для доступа к различным внутренним корпоративным системам, системам ИТ‑подразделений и служб поддержки пользователей, и использовать их для атак на системы, пользователей или клиентов;
нарушить работу виртуальной среды и украсть обрабатываемые в ней данные путем компрометации специального ПО для работы с виртуализацией.
И это мы перечислили только некоторые примеры серьезных последствий, которые могут повлиять на бизнес, а чего может достичь реальный нарушитель, основательно нацеленный на вашу инфраструктуру, — даже сложно предугадать. Поэтому мы решили подготовить этот лонгрид, чтобы подчеркнуть важность правильной настройки службы AD CS и дать рекомендации по защите и мониторингу векторов атак, которые помогут повысить уровень защищенности как отдельным компаниям, так и комьюнити ИБ в целом.
Обратить дополнительное внимание на данную службу следует еще потому, что атаки на нее имеют ряд преимуществ перед остальными атаками на AD:
в ходе таких атак не нужно извлекать секреты из памяти процесса lsass.exe (что, к слову, является заметным действием для защитников и чаще всего блокируется средствами защиты);
очень часто для эксплуатации необходима учетная запись доменного пользователя только с базовым набором привилегий;
подобные атаки сложно обнаружить, так как не всегда можно отличить их от легитимных действий;
-
полученные сертификаты не зависят от паролей пользователей:
остаются валидны, даже если пароль учетной записи был изменен;
имеют длительный срок службы: по умолчанию шаблоны User/Machine выдают сертификаты сроком действия 1 год.
В своей статье мы рассмотрим 15 векторов, которые в публичных источниках принято обозначать ESC1—ESC15. Эти векторы лежат в основе атак, направленных на повышение привилегий в сетях Active Directory с включенной службой AD CS.

История появления ESC-векторов
Первыми, кто заложил основу для понимания повышения привилегий с помощью недостатков в AD CS, были Ли Кристенсен и Уилл Шредер в 2021 году. В своем исследовании Certified Pre‑Owned команда SpecterOps классифицировала восемь векторов, от ESC1 до ESC8. Далее эта структура развивалась, и в течение нескольких следующих лет исследователи безопасности обнаружили еще семь векторов: ESC9, ESC10, ESC11, ESC12, ESC13, ESC14 и ESC15. Также была обнаружена уязвимость Certifried (CVE-2022–26 923), которая позволяла повысить привилегии в домене Active Directory. В ответ Microsoft выпустила патч KB5 014 754, который автоматически устанавливает ключ реестра StrongCertificateBindingEnforcement с нужным параметром для проверки надежного маппинга сертификатов.

Векторы атак можно поделить на условные категории в зависимости от эксплуатируемых механизмов.

Для эксплуатации большинства ESC‑атак достаточно одного инструмента — Certipy для Unix‑систем или Сertify для Windows. С его помощью можно собрать информацию об используемых в инфраструктуре шаблонах сертификатов и выявить недостатки конфигурации. В мае 2025 года вышло обновление ПО Certipy, в котором добавлена возможность эксплуатации ESC16.
Служба сертификации AD CS в двух словах
Как уже говорилось ранее, служба сертификации позволяет развернуть собственную инфраструктуру открытых ключей (PKI) в доменной сети и предназначена для создания центра сертификации (CA), который используется для обеспечения жизненного цикла сертификатов. Сертификаты привязывают объект идентификации пользователя, устройства или службы к соответствующему частному ключу. Другими словами, служба AD CS предоставляет эффективный и безопасный (по крайней мере, так считалось) способ управления сертификатами: самостоятельной выдачи сертификатов, отзыва, перевыпуска.
Сертификат — это электронный документ, подтверждающий принадлежность открытого ключа владельцу. Сертификат содержит различные параметры, вот наиболее интересные из них:
Version (версия). Стандарты X.509 определяют сам формат данного сертификата. Самый первый был введен в 1988 году, в настоящее время применяется версия 3.
Subject (объект). Для кого данный сертификат был выпущен, владелец сертификата.
Signature algorithm (алгоритм подписи). Значение типа алгоритма, который применяется выпускающим центром сертификации для подписи данного цифрового сертификата.
Issuer (издатель). Название центра сертификации, который выпустил данный сертификат.
NotBefore and NotAfter dates («Действителен с…» и «Действителен до…»). Дата выпуска данного сертификата в центре сертификации и дата истечения срока данного сертификата.
Public key (общедоступный ключ). Значение общедоступного ключа владельца данного сертификата. Им будет тот объект или та служба, для которых и был выпущен сертификат.
SAN (SubjectAlternativeName, альтернативное имя). Одно или несколько альтернативных имен, которые может использовать владелец.
Extended Key Usages (EKU). Набор идентификаторов, которые определяют, как будет использоваться сертификат.

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



ESC1: изменение SAN (modifiable SAN)
Рассмотрение вектора атаки ESC1 начнем с определения условий, необходимых для его реализации:
Центр сертификации позволяет непривилегированным пользователям запрашивать сертификаты.
Отключена функция одобрения запросов диспетчером сертификатов CA (атрибут
mspki-enrollment-flag
имеет значение0x00000000
).Не требуется подпись запроса авторизованным сертификатом (атрибут
msPKI-RA-Signature
имеет значение0x00000000
).В свойствах безопасности шаблона сертификата разрешен запрос на получение сертификата для непривилегированных пользователей.
В шаблон сертификата добавлены расширения EKU, позволяющие использовать сертификаты для доменной аутентификации.
Шаблон сертификата позволяет указывать альтернативное имя субъекта (subjectAltName, SAN) в запросе (установлен флаг
CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
в атрибутеmspki-certificate-name-flag
).
Данная атака основана на том, что шаблон сертификата позволяет указать произвольное альтернативное имя (subjectAltName, SAN) в запросе на выдачу сертификата. В результате атакующий, имея скомпрометированную учетную запись простого пользователя в домене, может выпустить сертификат на имя произвольного пользователя, в том числе администратора домена. Выпущенный сертификат может быть использован, например, для получения TGT для целевого контроллера домена. С этой целью могут использоваться инструменты Certipy или PKINITtools.
В некоторых случаях контроллеры домена могут не поддерживать механизм PKINIT, в связи с чем нет возможности получить TGT или NT‑хеш пароля учетной записи в домене. В этом случае может использоваться техника pass the cert: злоумышленник подключается к LDAP‑серверу, используя аутентификацию Schannel, с помощью клиентского сертификата — и после этого может выполнять действия, представляющие для него интерес. Для автоматизации данной техники существует одноименный инструмент.

Рассмотрим, как такой вектор выглядит на практике. Для начала необходимо провести разведку в отношении центра сертификации с помощью утилиты Certipy и имеющейся учетной записи доменного пользователя. В результате разведки злоумышленник обычно получает информацию о шаблонах сертификатов атакуемого центра сертификации и информацию о возможных векторах эксплуатации для каждого из шаблонов.


Далее, имея информацию об уязвимом шаблоне, нарушитель может выпустить с помощью него сертификат на имя учетной записи контроллера домена (machine account), указав в аргументе ‑dns
имя интересуемого его узла. В случае если необходимо выпустить сертификат на имя пользователя, используется другой аргумент ‑upn, например ‑upn «admin@main.stf».
Поскольку во многих организациях администраторы домена включены в группу Protected Users, что накладывает определенные ограничения на их авторизацию на узлах сети (например, в этом случае аутентификация по сертификату не сработает, если шаблон не имеет EKU Smart Card Logon OID), использование учетных записей контроллеров домена облегчает развитие атаки.
Таким образом, используя полученный сертификат на имя учетной записи контроллера домена, можно подключиться к контроллеру домена (запросить TGT), чтобы затем восстановить хеш‑сумму пароля учетной записи контроллера домена. Далее с помощью полученной хеш‑суммы можно проводить атаку DCSync и собирать учетные данные всех пользователей домена. Домен захвачен.


Превентивные меры защиты
Для защиты от данного вектора атаки, в случае отсутствия необходимости получать альтернативное имя из запроса, нужно отключить данную опцию в шаблоне сертификата. Дополнительно могут быть использованы функции подтверждения запросов диспетчером центра сертификации и подписи запроса авторизованным сертификатом.
Если указание альтернативного имени в запросе является необходимым, то рекомендуется:
Ограничить список пользователей, которые могут использовать уязвимый шаблон.
Убедиться, что шаблон сертификата не содержит избыточных вариантов использования в расширениях EKU.
Если не требуется сопоставление альтернативного имени субъекта с учетной записью домена при Kerberos‑аутентификации, рекомендуется отключить данную возможность. Для этого необходимо задать нулевое значение ключа реестра
UseSubjectAltName
в веткеHKLM\SYSTEM\CurrentControlSet\Services\Kdc
на всех контроллерах домена. В этом случае злоумышленник сможет указать альтернативное имя в запросе на получение сертификата, но не сможет использовать его при аутентификации.
Рекомендации по мониторингу
Для обнаружения данного вектора необходимо осуществлять мониторинг событий выпуска сертификатов и событий, связанных с аутентификацией с их использованием.
Кроме того, рекомендуется осуществлять мониторинг события Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.

ESC2: небезопасные расширения any purpose или none purpose (any or none purpose attack)
Перейдем к обсуждению вектора ESC2. Для его реализации необходимо выполнение следующих условий:
Центр сертификации позволяет непривилегированным пользователям запрашивать сертификаты.
Отключена функция одобрения запросов диспетчером сертификатов центра сертификации.
Не требуется подпись запроса авторизованным сертификатом.
В свойствах безопасности шаблона сертификатов разрешен запрос на получение сертификата для непривилегированных пользователей.
-
В шаблон сертификата добавлено расширение EKU
Any Purpose
или нет EKU (подчиненный центр сертификации).Шаблон сертификата с расширением EKU Any Purpose
Изначально данный вектор вызывал вопросы у исследователей, но со временем выяснилось, что хотя шаблоны с этими EKU нельзя использовать для запроса сертификатов для аутентификации от имени других пользователей без наличия флага CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
(то есть ESC1), злоумышленник может использовать их для аутентификации в Active Directory от имени пользователя, который их запросил, и эти два EKU опасны сами по себе. В чем же опасность данных расширений, рассмотрим далее.
Сертификат с расширением EKU Any Purpose
может быть использован для любых целей: аутентификации клиента, аутентификации сервера, подписи кода и т. п. Таким образом, при наличии шаблона с подобным EKU пользователь может выпустить сертификат на свое имя и использовать его для любых целей. Также сертификат может быть выпущен по аналогии с вектором ESC1 от имени другого пользователя и использован для различных целей, в том числе для аутентификации в домене.
Сертификат без EKU также может быть использован для любых целей, но дополнительно может применяться для подписи новых сертификатов в роли подчиненного центра сертификации. Однако если подчиненный центр сертификации не является доверенным объектом NTAuthCertificates (не задано по умолчанию), злоумышленник не может создавать сертификаты, которые будут работать для доменной аутентификации. Тем не менее злоумышленник может выпускать сертификаты с любыми EKU и произвольными значениями полей, которые потенциально могут быть использованы для широкого ряда действий (например, для подписи кода, аутентификации сервера), а также злоумышленник может использовать уязвимый шаблон для запроса другого сертификата от имени любого пользователя, как в векторе ESC3.

Превентивные меры защиты
Ограничить список пользователей, которые могут использовать уязвимый шаблон. Убедиться, что шаблон сертификата не содержит избыточных EKU. Рассмотреть возможность использования функции подтверждения запросов диспетчером центра сертификации и подписи запроса авторизованным сертификатом.
Рекомендации по мониторингу
Для обнаружения данного вектора необходимо осуществлять мониторинг событий выпуска сертификатов и событий, связанных с аутентификацией с их использованием.
Кроме того, рекомендуется осуществлять мониторинг события Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.
ESC3: небезопасная конфигурация шаблона сертификата агента регистрации (Enrollment Agent)
Вектор атаки ESC3 аналогичен векторам ESC1 и ESC2, но использует другое расширение EKU и требует дополнительного шага для проведения атаки. Для реализации вектора атаки сервер центра сертификации должен иметь следующие параметры:
Центр сертификации позволяет непривилегированным пользователям запрашивать сертификаты.
Отключена функция одобрения запросов диспетчером сертификатов центра сертификации.
Ограничения агента регистрации не реализованы на центре сертификации.
Кроме определенных параметров сервера центра сертификации для реализации вектора необходимо два уязвимых шаблона сертификата. Первый шаблон позволяет непривилегированному пользователю выпускать сертификат агента регистрации (Enrollment Agent). Этот шаблон должен соответствовать следующим условиям:
Не требуется подпись запроса авторизованным сертификатом.
В свойствах безопасности шаблона сертификатов разрешен запрос на получение сертификата для непривилегированных пользователей.
-
В шаблоне задано расширение EKU
Certificate Request Agent
(OID 1.3.6.1.4.1.311.20.2.1), которое позволяет запрашивать сертификаты с использованием других шаблонов от имени произвольного пользователя.Параметры шаблона с расширением EKU Certificate Request Agent
Второй шаблон позволяет непривилегированному пользователю использовать агент регистрации для запроса сертификата от имени другого пользователя. Этот шаблон должен соответствовать следующим условиям:
Схема шаблона версии 1 или больше 2 и задано требование (Issuance Requirements) в политике Application Policy использовать агент запроса сертификатов (Certificate Request Agent).
-
Сертификат содержит расширение EKU для доменной аутентификации.
Параметры второго шаблона (1) Параметры второго шаблона (2)
Если все условия соблюдены, злоумышленник может получить сертификат на имя произвольного пользователя, выполнив следующие шаги:
Запросить и получить сертификат агента регистрации с использованием первого шаблона.
Найти другой доступный шаблон сертификата, соответствующий указанным выше условиям (можно использовать шаблон по умолчанию User), и с помощью этого шаблона и полученного ранее сертификата агента регистрации сформировать запрос на получение сертификата на имя другого пользователя (например, доменного администратора). Получить сертификат для доменной аутентификации на имя целевого пользователя.
Полученный сертификат можно использовать для подключения к контроллеру домена и проведения дальнейших атак на домен.

Превентивные меры защиты
Для предотвращения возможной эксплуатации рекомендуется:
Добавить ограничение на использование агентов регистрации с помощью оснастки Certificate Authority MMC (certsrv.msc), выбрав CA → Properties → Enrollment Agents. Настройка данного раздела позволит ограничить, какие участники могут выступать в качестве агентов регистрации и от имени каких пользователей (шаблонов) эти агенты могут запрашивать сертификаты.
Рассмотреть возможность использования функции подтверждения запросов диспетчером центра сертификации.
Рекомендации по мониторингу
Для обнаружения данного вектора необходимо мониторить события выпуска сертификатов и события, связанные с аутентификацией с их использованием.
Кроме того, рекомендуется мониторить события Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.
ESC4: недостаточное разграничение доступа к шаблонам сертификатов (certificate ACL abuse)
Шаблоны сертификатов являются защищаемыми объектами в AD, то есть они имеют дескриптор безопасности (ACL), который указывает, какие участники AD обладают определенными разрешениями на использование шаблона.
Вектор ESC4 эксплуатирует некорректно заданные записи управления доступом (Access Control Entries, ACE), которые позволяют рядовым доменным пользователям AD изменять параметры безопасности шаблона.
К числу прав, позволяющих вносить изменения в параметры шаблонов сертификатов, относятся:
Owner — предоставляет неявный контроль, позволяя изменять любые атрибуты;
FullControl — предоставляет полный контроль, в том числе на изменение атрибутов;
WriteOwner — позволяет изменить владельца объекта, например на учетную запись, подконтрольную злоумышленнику;
WriteDacl — позволяет управлять контролем доступа, потенциально предоставляя атакующему права FullControl;
-
WriteProperty — позволяет изменять любые свойства объекта.
Уязвимый для атаки ESC4 шаблон сертификата
Обладая подобными правами, злоумышленник может отредактировать шаблон для того, чтобы сделать его уязвимым для других векторов. Например, с помощью установки флага CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
в атрибуте msPKI-Certificate-Name-Flag
нарушитель может сделать шаблон уязвимым для вектора ESC1. Ниже продемонстрирован пример изменения атрибута msPKI‑Certificate‑Name‑Flag в шаблоне сертификата с использованием учетной записи простого доменного пользователя, имеющего избыточные права на изменение параметров безопасности шаблона.



Превентивные меры защиты
Для защиты от этого вектора атаки необходимо ограничить список пользователей, имеющих права записи (Owner, FullControl, WriteOwner, WriteDacl, WriteProperty), в параметрах доступа шаблона сертификата. Также рекомендуется использовать функции подтверждения запросов диспетчером центра сертификации и подписи запроса авторизованным сертификатом.
Рекомендации по мониторингу
Для обнаружения данного вектора рекомендуется мониторить следующие события в журналах на сервере центра сертификации и контроллерах домена:
-
Windows Event ID 4898 (Certificate Services loaded a template). Данное событие позволяет обнаруживать не измененные шаблоны, а уязвимые — с помощью отслеживания пользователей, входящих в группы Domain Users, Authenticated Users и Everyone и имеющих права на изменение свойств безопасности шаблона. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг
EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.Пример содержимого события 4898 Windows Event ID 4899 (A Certificate Services template was updated). Событие возникает при выпуске сертификата с измененным шаблоном. Если параметры шаблона в кэше сервера отличаются от параметров шаблона, по которому запрошен сертификат, регистрируется данное событие.
-
Windows Event ID 4900 (A Certificate Services template security was updated). Событие генерируется при выпуске сертификата по шаблону с измененными разрешениями безопасности ACL. Если ACL шаблона в кэше сервера отличается от ACL шаблона, по которому запрошен сертификат, регистрируется данное сообщение. Полезная информация содержится в поле
NewSecurityDescriptor
.Пример содержимого события 4900 Windows Event ID 4662 (An operation was performed on an object). Событие возникает при изменении объекта в AD пользователем. При изменении шаблона изменится и соответствующий объект в AD в контейнере:
CN=Public Key Services,CN=Services,CN=Configuration,DC=<domainname>,DC=<domainsuffix>
. То же произойдет и при изменении объекта «рабочая станция» сервера центра сертификации. Соответственно, если для объектов в данном контейнере настроены списки управления доступом к объектам Microsoft Windows (System Access Control List, SACL), можно получать информацию об изменениях в этих объектах.
С помощью мониторинга перечисленных событий можно обнаружить наделение пользователей с низким уровнем привилегий широким набором прав. Важно отметить, что события 4899 и 4900 не подходят для обнаружения модификации шаблона в режиме реального времени.
Кроме того, поскольку нарушитель, получивший избыточные права, может вносить изменения в параметры шаблонов сертификатов, рекомендуется отслеживать событие Windows Event ID 5136 (A directory service object was modified), которое генерируется при изменении объекта Active Directory, в том числе при изменении параметров шаблона сертификата.
ESC5: недостаточный контроль доступа к объектам PKI (vulnerable PKI AD object access control)
Если злоумышленник с низкими привилегиями сможет получить контроль над другим объектом AD CS (например, над учетной записью сервера центра сертификации) или самим центром сертификации, атака, скорее всего, приведет к компрометации всей службы сертификации AD CS. Этот вектор повышения привилегий не был реализован в утилите Certipy, потому что он слишком абстрактен.
Следующие объекты могут оказывать влияние на безопасность всей системы AD CS:
RPC/DCOM‑сервер сервера центра сертификации;
учетная запись сервера центра сертификации;
любой вложенный объект в контейнере
CN=Public Key Services, CN=Services, CN=Configuration, DC=demo, DC=local
(например, контейнер шаблонов сертификатов, контейнер центров сертификации, объектNTAuthCertificates
, контейнер служб регистрации (Enrollment Services)).
Рекомендации по мониторингу
Обнаружение несанкционированной установки сертификата центра серификации возможно путем аудита изменения атрибутов объекта NTAuthCertificates с помощью анализа события Windows Event ID 5136 (A directory service object was modified).
Рекомендуется отслеживать изменение других объектов AD с помощью мониторинга следующих событий:
Windows Event ID 4899 (A Certificate Services template was updated). Событие возникает при выпуске сертификата с измененным шаблоном и отображает измененные атрибуты. Если параметры шаблона в кэше сервера отличаются от параметров шаблона, по которому запрошен сертификат, то регистрируется данное сообщение.
Windows Event ID 4900 (A Certificate Services template security was updated). Событие генерируется при выпуске сертификата по шаблону с измененными разрешениями безопасности ACL. Если ACL шаблона в кэше сервера отличается от ACL шаблона, по которому запрошен сертификат, регистрируется данное сообщение. Полезная информация содержится в поле
NewSecurityDescriptor
.Windows Event ID 4662 (An operation was performed on an object). Событие возникает при изменении объекта в AD пользователем. При изменении шаблона изменится и соответствующий объект в AD в контейнере:
CN=Public Key Services,CN=Services,CN=Configuration,DC=<domainname>,DC=<domainsuffix>
. То же произойдет и при изменении объекта «рабочая станция» сервера центра сертификации. Соответственно, если для объектов в данном контейнере настроены SACL, можно получать информацию об изменениях в этих объектах.
Важно отметить, что события 4899 и 4900 не подходят для обнаружения модификации шаблона в режиме реального времени. Также стоит отметить, что данный вектор часто подразумевает дальнейшее использование других векторов атак, которые детектируются.
ESC6: некорректная конфигурация центра сертификации с использованием флага EDITF_ATTRIBUTESUBJECTALTNAME2 (everything and for everyone, EDITF_ATTRIBUTESUBJECTALTNAME2)
При обнаружении вектора ESC6 было установлено, что для его реализации необходимо наличие следующих условий:
На сервере центра сертификации включен флаг
EDITF_ATTRIBUTESUBJECTALTNAME2
.Доступ к выпуску сертификата с помощью шаблона с требуемыми EKU.
Выполняется одно из условий:
На контроллерах домена не установлены обновления с исправлениями из KB5 014 754.
-
В шаблоне целевого сертификата отключено создание расширения SID (OID 1.3.6.1.4.1.311.25.2) и атрибут
StrongCertificateBindingEnforcement
не имеет значение 2 на Key Distribution Center (KDC).Демонстрация включенного флага EDITF_ATTRIBUTESUBJECTALTNAME2 на сервере центра сертификации
Основным условием для реализации вектора атаки ESC6 является использование на сервере центра сертификации флага EDITF_ATTRIBUTESUBJECTALTNAME2
, который позволяет задать произвольное альтернативное имя субъекта для всех сертификатов, несмотря на конфигурацию шаблона сертификата.
Это позволяет злоумышленнику выбрать любой шаблон сертификата, который разрешает аутентификацию клиента и доступен непривилегированным пользователям (например, шаблон User по умолчанию), и с его помощью выпустить сертификат по аналогии с вектором атаки ESC1. Выпуск сертификата приведет к получению привилегий администратора домена (или любого другого активного пользователя или учетной записи рабочей станции — в зависимости от того, на чье имя будет выпущен сертификат).
Превентивные меры защиты
Следует установить обновления с исправлениями из KB5 014 754, если они не установлены. Также для предотвращения реализации данного вектора рекомендуется отключить использование флага EDITF_ATTRIBUTESUBJECTALTNAME2
на сервере центра сертификации с помощью одного из инструментов: PSPKIAudit, Certify.exe, certutil.exe. Если использование этого флага является необходимым, рекомендуется включить функцию одобрения запросов диспетчером сертификатов центра сертификации.
Рекомендации по мониторингу
Для выявления подозрительной активности необходимо отслеживать события Windows Event ID 4663 (An attempt was made to access an object) и 4656 (A handle to an object was requested) с целью мониторинга реестра Windows. Необходимо обращать внимание на изменение значения ключа реестра \SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\EditFlags
под маску DWORD=0×00×5XXXX
. Данная маска означает, что в центре сертификации установлен параметр EDITF_ATTRIBUTESUBJECTALTNAME2
. Для мониторинга реестра Windows дополнительно рекомендуется отслеживать событие Sysmon Event ID 13 (Value Set).

Для выявления подозрительных запросов на получение сертификата следует мониторить события Windows Event ID 4886 (Certificate Services received a certificate request) и Windows Event ID 4887 (Certificate Services approved a certificate request and issued a certificate), в которых содержатся сведения о пользователе, запросившем сертификат, о пользователе, на имя которого запрашивается сертификат, а также времени создания запроса.
ESC7: недостаточный контроль доступа к центру сертификации (vulnerable certificate authority access control)
Для реализации вектора ESC7 необходимо наличие одного из следующих условий:
Имеется доступ к сессии пользователя, входящего в группы
ManageCA
и (или)Issue and Manage Certificates
.Имеется доступ к учетным данным пользователя, входящего в группы
ManageCA
и (или)Issue and Manage Certificates
.
Сервер центра сертификации имеет набор разрешений, контролирующих различные действия на сервере. С точки зрения безопасности необходимо обратить внимание на права ManageCA
(администратор центра сертификации) и Issue and Manage Certificates
(менеджер сертификатов). Эти права используются для выдачи или отклонения ожидающих запросов на сертификат.

Для эксплуатации достаточно наличия скомпрометированного пользователя с правом ManageCA, так как оно позволяет выдать себе право Issue and Manage Certificates
. В свою очередь, право Issue and Manage Certificates
позволяет удаленно подтвердить отклоненный сертификат. Например, если при атаке обнаружен включенный шаблон сертификата SubCA, который уязвим для атаки ESC1, нарушитель может отправить запрос на выдачу сертификата и, после его отклонения, утвердить его вручную.
Кроме того, если злоумышленник получает контроль над учетной записью с правами ManageCA, он может удаленно изменить конфигурацию центра сертификации, уже существующего шаблона сертификата или создать шаблоны с уязвимыми свойствами. Например, нарушитель может установить флаг EDITF_ATTRIBUTESUBJECTALTNAME2
, чтобы разрешить спецификацию SAN в любом шаблоне и тем самым сделать их уязвимыми для вектора атаки ESC6.
Таким образом, получив соответствующие привилегии на сервере центра сертификации, нарушитель может управлять центром сертификации.
Рекомендации по мониторингу
Необходимо обращать внимание на атрибут SecuritySettings, который может содержать небезопасные разрешения центра сертификации ManageCA и Issue and Manage Certificates для непривилегированных пользователей или групп.
Для своевременного обнаружения данной атаки рекомендуется осуществлять аудит событий, регистрирующих изменение параметров сервера:
Windows Event ID 4738 (A user account was changed) и Windows Event ID 4728 (A member was added to a security‑enabled global group). Отслеживать присвоение учетным записям прав
ManageCA
иIssue and Manage Certificates
или добавление их в глобальные группы, обладающие данными правами.Windows Event ID 4869 (Certificate Services received a resubmitted certificate request). Событие создается при повторном запросе сертификата.
Windows Event ID 4880 (Certificate Services started). Событие создается при запуске служб сертификации. В полях содержится информация о хеш‑сумме базы данных, сертификате и использовании закрытого ключа.
Windows Event ID 4881 (Certificate Services stopped). Событие создается во время остановки служб сертификации. В полях содержится информация о хеш‑сумме базы данных, сертификате и использовании закрытого ключа.
-
Windows Event ID 4882 (The security permissions for Certificate Services changed). Событие генерируется каждый раз при изменении разрешений безопасности для службы сертификации. При изменении параметров
security
в поляхdataname
будут перечислены пользователи, группы и членство в группах на сервере центра сертификации.Пример события Windows Event ID 4882, возникающего после присвоения права Certificate Manager пользователю c_donaldso Windows Event ID 4885 (The audit filter for Certificate Services changed). Событие создается при изменении параметров аудита служб AD CS. При изменении параметров аудита служб AD CS в полях
auditfilter
указанid
в битовом виде.Windows Event ID 4890 (The certificate manager settings for Certificate Services changed). Событие создается при изменении параметров менеджеров сертификатов в службе AD CS.
Windows Event ID 4891 (A configuration entry changed in Certificate Services). Событие создается при изменении записей в конфигурации AD CS, например при изменении модуля политик AD CS, изменении в списке отзыва сертификатов (Certificate Revocation List, CRL).
Windows Event ID 4892 (A property of Certificate Services changed). Событие создается при изменении свойств службы AD CS. Полезная информация содержится в полях
propertyname
,propertyindex
,propertyvalue
.
Кроме того, необходимо отслеживать события Windows Event ID 4663 (An attempt was made to access an object) и 4656 (A handle to an object was requested) с целью мониторинга реестра Windows. Поскольку, обладая правом ManageCA, злоумышленник может использовать функции DCOM для изменения значения флага EDITF_ATTRIBUTESUBJECTALTNAME2
, необходимо обращать внимание на изменение значения ключа реестра \SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\\PolicyModules\CertificateAuthority_MicrosoftDefault.Policy\EditFlags
под маску DWORD=0×00×5XXXX
. Данная маска означает, что в центре сертификации установлен параметр EDITF_ATTRIBUTESUBJECTALTNAME2
. Для мониторинга реестра Windows дополнительно рекомендуется отслеживать событие Sysmon Event ID 13 (Value Set). Также, поскольку нарушитель, обладая правом ManageCA
, может изменять параметры шаблонов, рекомендуется осуществлять мониторинг события Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.
ESC8: атака NTLM relay на веб‑службу регистрации сертификатов (NTLM relay to AD CS HTTP endpoints)
Атака может быть осуществлена в случае, когда установлена и включена веб‑служба регистрации сертификатов (Certification Authority Web Enrollment). Данная служба AD CS поддерживает методы регистрации сертификатов на основе HTTP.

В свою очередь, интерфейсы регистрации сертификатов на основе HTTP уязвимы для атак NTLM relay. Используя NTLM relay, злоумышленник может передать любую входящую NTLM‑аутентификацию на HTTP‑интерфейс службы сертификации и запросить сертификат для любого пользователя или рабочей станции. Используя этот сертификат, злоумышленник может получить TGT или хеш‑сумму пароля привилегированного пользователя для дальнейшего перемещения внутри домена или выполнения атаки DCSync.

Превентивные меры защиты
Для предотвращения атаки рекомендуется:
Рассмотреть возможность отключения веб‑службы регистрации сертификатов Web Enrollment.
Рассмотреть возможность отключения аутентификации с использованием протокола NTLM.
Включить параметр Extended Protection for Authentication веб‑сервера Microsoft IIS.
Рекомендации по мониторингу
Для выявления подозрительных запросов на получение сертификата следует мониторить следующие события:
Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле
TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флагEDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.Windows Event ID 4886 (Certificate Services received a certificate request), Windows Event ID 4887 (Certificate Services approved a certificate request and issued a certificate) и Windows Event ID 4888 (Certificate Services denied a certificate request). В данных событиях содержатся сведения о пользователе, запросившем сертификат, о пользователе, на имя которого запрашивается сертификат, а также времени создания запроса.
Windows Event ID 4768 (A Kerberos authentication ticket (TGT) was requested). Мониторинг этого события необходим для выявления использования при аутентификации нелегитимных сертификатов по их серийному номеру.
Windows Event ID 4624 (An account was successfully logged on) и Sysmon Event ID 3 (Network connection detected). Данные события возникают одновременно, необходимо в них сравнивать IP‑адреса узлов с одинаковыми именами, и если у таких узлов разные IP‑адреса, это может свидетельствовать об атаке NTLM relay. Также в событии Sysmon Event ID 3 можно отслеживать входящее сетевое подключение к Web Enrollment на порт 80/TCP.
Маппинг сертификатов
Прежде чем говорить об эксплуатации векторов ESC9 и ESC10, стоит сказать пару слов про маппинг сертификатов. При аутентификации с использованием сертификата контроллер домена извлекает из него информацию о субъекте (пользователе или рабочей станции) и сопоставляет (маппит) ее с пользователем или узлом в домене. Данный процесс называется certificate mapping (маппинг сертификата). Маппинг может быть неявным (implicit) или явным (explicit), слабым (weak) или сильным (strong).
При неявном маппинге информация, содержащаяся в поле SAN, используется для сопоставления атрибута UPN (userPrincipalName
) для пользователя или атрибута DNS (dNSHostName
) для учетной записи рабочей станции.
При явном маппинге контроллер домена использует идентификаторы, которые содержатся в атрибуте altSecurityIdentities
учетной записи. При этом сертификат должен быть подписан доверенным центром сертификации и соответствовать одному из значений altSecurityIdentities
. Значения, которые могут быть добавлены к атрибуту, являются строковыми и указываются в соответствии с синтаксисом X509.

Идентификаторы могут содержаться в различных полях сертификата формата X509 v3. В AD CS шаблон сертификата определяет, как центр сертификации должен заполнять поле Subject
и расширение SAN сертификата на основе атрибутов AD учетной записи, от имени которой запрашивается сертификат.
Параметры на вкладке Subject Name в консоли сертификатов Windows соответствуют флагам атрибута msPKI‑Certificate‑Name‑Flag
шаблона сертификата. Флаги с именами формата CT_FLAG_SUBJECT_REQUIRE_<attribute>
отвечают за содержимое поля сертификата Subject
, а флаги с именами формата CT_FLAG_SUBJECT_ALT_REQUIRE_<attribute>
отвечают за значение SAN.
После обнаружения уязвимости Certified (CVE-2022–26 923) Microsoft добавила новое расширение безопасности для выпускаемых сертификатов и два новых ключа реестра для корректного маппинга сертификатов.
Расширение безопасности
szOID_NTDS_CA_SECURITY_EXT
содержит значение objectSid владельца сертификата и используется при неявном сильном маппинге.Ключ реестра
StrongCertificateBindingEnforcement
используется при Kerberos‑аутентификации.Ключ реестра
CertificateMappingMethods
используется для неявного маппинга при Schannel‑аутентификации.
В случае Kerberos‑аутентификации при сильном неявном маппинге может использоваться SID объекта (с помощью расширения szOID_NTDS_CA_SECURITY_EXT
) вместо UPN и DNS, которые можно легко подделать.
При явном маппинге используются идентификаторы с соответствующим типом (слабым или сильным). При Kerberos‑аутентификации при выполнении маппинга используется ключ реестра StrongCertificateBindingEnforcement, принимающий одно из трех значений:
0 — сильный маппинг не реализован. Новое расширение
szOID_NTDS_CA_SECURITY_EXT
не проверяется, все явные методы маппинга разрешены, процесс аутентификации происходит так же, как и до обновления. Данный режим не применяется с 11 апреля 2023 года, с этого времени указание значения 0 эквивалентно указанию 1.1 — значение режима совместимости. Если используется явный маппинг, аутентификация разрешена. В противном случае, в случае неявного маппинга, слабые идентификаторы используются, только если учетная запись была создана до выпуска сертификата. После 10 сентября 2025 года режим совместимости будет полностью отменен, что сделает сопоставление сертификатов на основе сильного маппинга обязательным для всех сценариев аутентификации, раздел реестра
StrongCertificateBindingEnforcement
больше не будет поддерживаться.2 — значение по умолчанию с 11 февраля 2025 года, обозначающее, что разрешен только сильный маппинг. При неявном — расширение
szOID_NTDS_CA_SECURITY_EXT
должно присутствовать и содержать SID объекта. При явном — могут быть использованы только идентификаторы сильного типа. Во всех остальных случаях аутентификация будет отклонена. До сентября 2025 года можно будет вернуться в режим совместимости.
Для поддержки режима совместимости Microsoft добавила флаг CT_FLAG_NO_SECURITY_EXTENSION
для атрибута msPKI‑Enrollment‑Flag шаблона сертификата. Если значение данного флага установлено равным 1 и отсутствует расширение безопасности, маппинг выполняется аналогично тому, как это происходит при значении 0 ключа реестра StrongCertificateBindingEnforcement.
При Schannel‑аутентификации также используется ключ реестра CertificateMappingMethods, который является комбинацией следующих значений:
0×0001: subject/issuer explicit mapping.
0×0002: issuer explicit mapping.
0×0004: SAN implicit mapping.
0×0008: S4USelf implicit Kerberos mapping.
0×0010: S4USelf explicit Kerberos mapping.
По умолчанию данный ключ имеет значение 0×18 (0×8 и 0×10). Schannel не поддерживает расширение безопасности szOID_NTDS_CA_SECURITY_EXT
, но может использовать его, конвертируя маппинг сертификатов для Kerberos с помощью S4USelf. После этого маппинг выполняется аналогично. Если при аутентификации возникают проблемы, Microsoft рекомендует установить значение ключа CertificateMappingMethods
равным 0×1f.
ESC9: отсутствие расширений безопасности (no security extension)
Если атрибут шаблона сертификата msPKI‑Enrollment‑Flag
содержит флаг CT_FLAG_NO_SECURITY_EXTENSION
, расширение безопасности szOID_NTDS_CA_SECURITY_EXT
не будет добавлено в выпущенный по этому шаблону сертификат. Это означает, что даже если значение ключа реестра StrongCertificateBindingEnforcement
равно 1, процесс маппинга будет происходить так, как если бы ключ реестра имел значение 0, по сути обходя сильный маппинг сертификатов.
Для реализации вектора ESC9 необходимо выполнение следующих условий:
Ключ реестра StrongCertificateBindingEnforcement не принимает значение 2 или ключ реестра CertificateMappingMethods содержит UPN‑флаг (0×4).
Шаблон сертификата содержит флаг CT_FLAG_NO_SECURITY_EXTENSION (значение 524 288, в шестнадцатеричная системе соответствует значению 80 000) в атрибуте msPKI‑Enrollment‑Flag.
Шаблон сертификата позволяет использовать сертификат для аутентификации.
-
Наличие права GenericWrite по отношению к учетной записи, от имени которой запрашивается сертификат.
Демонстрация изменения атрибута msPKI‑Enrollment‑Flag (значение флага CT_FLAG_NO_SECURITY_EXTENSION равно 524 288, совокупное значение всех флагов атрибута msPKI‑Enrollment‑Flag равно 524 297) Параметры уязвимого шаблона сертификата (совокупное значение атрибута msPKI‑Enrollment‑Flag равно 524 297)
Представим, что учетная запись user может выпускать сертификаты с шаблоном, содержащим флаг CT_FLAG_NO_SECURITY_EXTENSION
в атрибуте msPKI‑Enrollment‑Flag
. Для реализации данного вектора атакующий, имеющий право GenericWrite по отношению к учетной записи user
, должен получить ее учетные данные. Для этого может быть проведена, например, атака Shadow Credentials. Затем необходимо изменить UPN учетной записи user
на имя целевой учетной записи, например Administrator
. Затем от имени user выпускается сертификат с указанным UPN. После этого UPN может быть снова изменен. Используя выпущенный сертификат, атакующий может получить TGT, например на имя пользователя Administrator
.

Превентивные меры защиты
Установить для ключа реестра
StrongCertificateBindingEnforcement
значение 2.Предоставлять права на изменение объектов в AD только конкретным группам поддержки и управления инфраструктурой.
Шаблоны сертификатов не должны содержать флаг
CT_FLAG_NO_SECURITY_EXTENSION
в атрибутеmsPKI‑Enrollment‑Flag
.Убедиться, что Windows Server обновлен до актуальной версии.
Рекомендации по мониторингу
Для обнаружения данной атаки необходимо осуществлять отслеживание:
-
Изменений шаблонов сертификатов в AD с помощью мониторинга событий:
Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле
TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флагEDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.Windows Event ID 4899 (A Certificate Services template was updated), которое возникает при выпуске сертификата с измененным шаблоном. Если параметры шаблона в кэше сервера отличаются от параметров шаблона, по которому запрошен сертификат, то регистрируется данное сообщение.
Важно отметить, что события не подходят для обнаружения модификации шаблона в режиме реального времени.
-
Изменений объектов пользователей и рабочих станций в AD с помощью мониторинга событий:
Windows Event ID 5136 (A directory service object was modified), которое генерируется при изменении объекта Active Directory, в том числе при изменении учетной записи и присвоении ей UPN, отличного от ее имени.
Windows Event ID 4738 (A user account was changed), которое также генерируется при изменении учетной записи.
Событий выпуска сертификатов и событий, связанных с аутентификацией с их использованием.
ESC10: слабый маппинг сертификатов (weak certificate mappings)
Данный вектор основан на слабом маппинге, при котором для аутентификации используется UPN учетной записи, и аналогичен по механизму реализации вектору ESC9, но фокусируется на неправильных параметрах в разделах реестра, а не на конфигурациях шаблонов. Этот вектор имеет два сценария реализации.
Необходимые условия для реализации первого варианта сценария:
Ключ реестра
StrongCertificateBindingEnforcement
имеет значение 0 (отключен).Атакующий обладает правом
GenericWrite
по отношению к учетной записи пользователя.-
Пользователь может выпускать сертификат, содержащий EKU для аутентификации.
Необходимые условия для реализации второго варианта сценария:
Ключ реестра
CertificateMappingMethods
имеет значение 0×4.Атакующий обладает правом
GenericWrite
по отношению к учетной записи, для которой ранее не был установлен UPN, например к учетной записи рабочей станции или встроенной учетной записиAdministrator
.-
Доступен шаблон с EKU клиентской аутентификации.
Первый сценарий идентичен атаке ESC9, но в нем можно использовать любой шаблон сертификата. Второй сценарий нацелен на учетные записи, которые изначально не содержат свойства UPN (DC и Administrator
). Таким образом, с помощью данного вектора злоумышленник может скомпрометировать учетную запись администратора домена.
Превентивные меры защиты
Установить для ключа реестра
StrongCertificateBindingEnforcement
значение 2.Ключ реестра
CertificateMappingMethods
не должен содержать флагов слабых методов маппинга.Предоставлять права на изменение объектов в AD только конкретным группам поддержки и управления инфраструктурой.
Шаблоны сертификатов не должны в атрибуте
msPKI‑Enrollment‑Flag
содержать флагCT_FLAG_NO_SECURITY_EXTENSION
.Убедиться, что Windows Server обновлен до актуальной версии.
Рекомендации по мониторингу
Для обнаружения данной атаки необходимо осуществлять отслеживание:
-
Изменений шаблонов сертификатов в AD с помощью мониторинга событий:
Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле
TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флагEDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.Windows Event ID 4899 (A Certificate Services template was updated), которое возникает при выпуске сертификата с измененным шаблоном. Если параметры шаблона в кэше сервера отличаются от параметров шаблона, по которому запрошен сертификат, то регистрируется данное сообщение.
Важно отметить, что события не подходят для обнаружения модификации шаблона в режиме реального времени.
-
Изменений объектов пользователей и рабочих станций в AD с помощью мониторинга событий:
Windows Event ID 5136 (A directory service object was modified), которое генерируется при изменении объекта Active Directory, в том числе при изменении учетной записи и присвоении ей UPN, отличного от ее имени.
Windows Event ID 4738 (A user account was changed), которое также генерируется при изменении учетной записи.
Событий выпуска сертификатов и событий, связанных с аутентификацией.
ESC11: атака NTLM relay на протокол ICPR (relaying NTLM to ICPR)
Проведение атаки ESC11 возможно в случае выполнения одного из следующих условий:
Атрибут
IF_ENFORCEENCRYPTICERTREQUEST
на сервере центра сертификации выключен.Атакующий имеет привилегии локального администратора на сервере AD CS и может изменять атрибут
IF_ENFORCEENCRYPTICERTREQUEST
.

Отсутствие атрибута IF_ENFORCEENCRYPTICERTREQUEST
позволяет проводить атаки NTML relay для перенаправления аутентификации к незащищенному интерфейсу RPC и запрашивать сертификаты через уязвимый сервер центра сертификации. RPC‑интерфейс позволяет клиенту взаимодействовать с центром сертификации для запроса и получения сертификатов. По умолчанию запросы шифруются и флаг IF_ENFORCEENCRYPTICERTREQUEST
включен, однако, имея административные привилегии на сервере центра сертификации, его можно отключить. Также этот флаг может быть отключен администраторами, например для обеспечения совместимости с Windows XP.
В результате, когда жертва подключается к компьютеру злоумышленника, соединение ретранслируется в центр сертификации и с помощью протокола ICPR запрашивается сертификат. Таким образом злоумышленник получает действительный сертификат и может выдавать себя за атакуемого пользователя в домене.

Превентивные меры защиты
Для предотвращения реализации данного вектора рекомендуется включить шифрование, установив атрибут IF_ENFORCEENCRYPTICERTREQUEST
. Однако стоит отметить, что установка этого атрибута может привести к нарушению совместимости со старыми клиентами Windows или клиентами, отличными от Windows.
Также рекомендуется:
Обеспечить принудительное подписание пакетов для клиентов и серверов по всей сети с помощью GPO.
Проверить списки контроля доступа Active Directory: следует использовать принцип наименьших привилегий.
Реализовать сегментацию сети в соответствии с лучшими практиками информационной безопасности, чтобы предотвратить relay‑атаки (например, https://msrc.microsoft.com/blog/2024/12/mitigating‑ntlm‑relay‑attacks‑by‑default/).
Не использовать NTLM.
Рекомендации по мониторингу
Обнаружение атаки возможно с помощью мониторинга:
Событий входа в систему. Например, события 4624 (An account successfully logged on). Особое внимание стоит уделять мониторингу событий, которые используют NTLM с несовпадающим исходным IP‑адресом и именем (поля
sourceip
иname
).Для выявления подозрительной активности необходимо отслеживать события Windows Event ID 4663 (An attempt was made to access an object) и 4656 (A handle to an object was requested) с целью мониторинга реестра Windows. Необходимо обращать внимание на изменение значения ключа реестра
InterfaceFlags
по путиHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA NAME>
.Событий выпуска сертификатов и событий, связанных с аутентификацией с использованием сертификатов.
ESC12: доступ к оболочке центра сертификации AD CS с помощью YubiHSM (shell access to AD CS CA with YubiHSM)
Эта атака предполагает, что закрытый ключ центра сертификации хранится на внешнем устройстве YubiHSM 2, подключенном к серверу центра сертификации, а не в программном хранилище. Если злоумышленник получает доступ к реестру, где хранится пароль к YubiHSM в открытом виде (HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword
), он может использовать этот пароль для доступа к закрытому ключу.

Полученный закрытый ключ может использоваться для подделки новых сертификатов через центр сертификации. Для этого нарушителю необходимо импортировать общедоступный сертификат центра сертификации в хранилище пользователя, связать его с закрытым ключом на устройстве YubiHSM 2 и затем с помощью команды certutil подписать новый произвольный сертификат.
Данный вектор не говорит о том, что не нужно хранить закрытый ключ центра сертификации на устройстве YubiHSM 2, он лишь подтверждает тот факт, что не стоит забывать о корректной настройке сервера центра сертификации с учетом необходимых мер защиты.
Превентивные меры защиты
Для минимизации рисков, связанных с эксплуатацией этой уязвимости, рекомендуется ограничить доступ к чтению ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword
, а также к серверу Windows, на котором запущен экземпляр центра сертификации, для любых авторизованных пользователей. Доступ необходимо предоставить только администраторам PKI или администраторам AD, имеющим сопоставимые привилегии.
К этим привилегиям относится возможность добавлять себя в группу безопасности администраторов PKI или сбрасывать пароль администратора PKI для выдачи себя за другое лицо, а также возможность изменять шаблоны сертификатов в глобальном каталоге AD, делая их уязвимыми для атак, например для ESC1.
Рекомендации по мониторингу
Необходимо отслеживать доступ к ключу аутентификации YubiHSM 2 при помощи включения аудита для соответствующей ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM
. Для этого необходимо осуществлять мониторинг события 4663 (An attempt was made to access an object), которое генерируется при получении доступа к чтению объектов Windows.
ESC13: злоупотребление полномочиями привязанной группы (OID group link abuse)
В шаблоне сертификата может быть определена политика выдачи (Issuance Policy), которая содержит атрибут msDS‑OIDToGroupLink
, указывающий на какую‑либо группу безопасности AD. При аутентификации по сертификату на основе данного шаблона пользователь будет получать права данной группы, при этом не являясь ее членом. При этом группа должна быть пустой и иметь область применения типа universal.
Для повышения привилегий с использованием вектора ESC13 необходимо выполнение следующих условий:
Учетная запись, подконтрольная нарушителю, имеет право запрашивать сертификат с использованием шаблона, а также соответствует всем требованиям политики выдачи.
Шаблон сертификата имеет расширение политики выдачи (Extensions → Issuance Policies).
Данная политика связана с привилегированной группой с помощью использования атрибута
msDS‑OIDToGroupLink
.Шаблон содержит EKU, которые можно использовать для проверки подлинности (к примеру, Client Authentication).

Нарушитель может получить сертификат для аутентификации от имени подконтрольной учетной записи, который наделяет владельца членством в несвойственной ему группе AD. Как результат, с помощью сертификата нарушитель может запросить TGT и использовать его для запроса билетов службы Kerberos.
Превентивные меры защиты
Провести аудит шаблонов сертификатов и ограничить для пользователей, которые не должны иметь членства в привилегированных группах AD, право запрашивать сертификаты с использованием шаблона сертификата, у которого указан соответствующий OID политики и в политике заполнено свойство msDS‑OIDToGroupLink
.
Рекомендации по мониторингу
Для обнаружения данного вектора необходимо осуществлять мониторинг событий выпуска сертификатов и аутентификации с их использованием.
Кроме того, рекомендуется осуществлять мониторинг события Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Особое внимание необходимо уделять присутствию атрибута msDS‑OIDToGroupLink
в политиках выдачи (Issuance Policy) шаблона сертификации. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.
ESC14: слабый явный маппинг (weak explicit mapping)
Эта атака основана на небезопасной конфигурации явного маппинга сертификатов. Злоумышленник, скомпрометировавший атакуемую учетную запись и имеющий возможность запрашивать сертификаты, может использовать небезопасную конфигурацию маппинга для аутентификации от имени целевой учетной записи.
Существует четыре возможных сценария атаки для эксплуатации ESC14. Все они имеют как общие требования, так и индивидуальные.
Общие требования:
Злоумышленник взломал учетную запись жертвы и может запрашивать сертификаты с помощью этой учетной записи.
В свойствах безопасности шаблона сертификата разрешен запрос на получение сертификата для жертвы.
Жертва соответствует всем предварительным условиям для выдачи сертификата.
Шаблон сертификата позволяет проводить аутентификацию.
-
Если шаблон имеет значение
CT_FLAG_SUBJECT_ALT_REQUIRE_UPN
илиCT_FLAG_SUBJECT_ALT_REQUIRE_SPN
в атрибутеmsPKI‑Certificate‑Name‑Flag
, то:ключ UseSubjectAltName реестра на контроллере домена должен быть установлен на 0;
аутентификация может быть выполнена только по протоколу PKINIT (Kerberos).
-
Если шаблон указывает
CT_FLAG_SUBJECT_ALT_REQUIRE_DNS
илиCT_FLAG_SUBJECT_ALT_REQUIRE_DOMAIN_DNS
в атрибутеmsPKI‑Certificate‑Name‑Flag
, то:жертвой должна быть рабочая станция;
аутентификация может быть выполнена только по протоколу PKINIT (Kerberos).
-
Если шаблон указывает
CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL
илиCT_FLAG_SUBJECT_REQUIRE_EMAIL
в атрибуте msPKI‑Certificate‑Name‑Flag, необходимо проверить одно из следующих предварительных условий:шаблон сертификата использует версию 1 для схемы;
жертва имеет настроенный атрибут mail;
злоумышленник имеет доступ на запись в атрибут mail жертвы.
В результате эксплуатации данного вектора злоумышленник может отредактировать атрибут altSecurityIdentities
рабочей станции или пользователя AD, чтобы добавить ссылку на сертификат, которым он владеет, а затем использовать этот сертификат для аутентификации в качестве указанного компьютера или пользователя.
Вариант ESC14-A
В первом варианте реализации данного вектора злоумышленник имеет доступ на запись к атрибуту altSecurityIdentities
цели. Он может выпустить сертификат в качестве жертвы и создать явный маппинг для целевой учетной записи, указав в атрибуте altSecurityIdentities
полученный сертификат.
Затем сертификат можно использовать для проверки подлинности в качестве целевого объекта. Злоумышленник может провести атаку, выполнив следующие действия:
Выпустить сертификат с помощью уязвимого шаблона сертификата в качестве атакуемого.
-
Добавить (сильный) явный маппинг сертификата на основе сертификата в атрибуте
altSecurityIdentities
для учетной записи атакуемого. В этом атрибуте содержатся сведения о сертификате, который может использоваться для аутентификации учетной записи. Данные могут быть предоставлены в виде SN сертификата и Issuer сертификата, но в специфичном, отраженном виде. Для предоставления данных в требуемом виде и реализации вектора автор ESC14 подготовил соответствующие скрипты:Скрипт
Get‑X509IssuerSerialNumberFormat
— преобразует сведения об Issuer и SN сертификата в требуемом виде для указания в атрибутеaltSecurityIdentities
.
Скрипт
Add‑AltSecIDMapping
— изменяет в указанной учетной записи значениеaltSecurityIdentities
на требуемое атакующему.Скрипт
Get‑AltSecIDMapping
— выводит значениеaltSecurityIdentities
указанной учетной записи.Скрипт
Remove‑AltSecIDMapping
— удаляет указанное значениеaltSecurityIdentities
у указанной учетной записи.
Использовать подготовленную целевую учетную запись и полученный сертификат для получения TGT от имени целевой учетной записи. Билет получен, аутентификация работает.
Для аутентификации с помощью PKINIT нет никаких дополнительных требований. Для аутентификации по каналу Schannel ключу CertificateMappingMethods
должно быть присвоено значение 0×8 (значение по умолчанию).
Вариант ESC14-B
Если для целевого участника (например, admin) в атрибуте altSecurityIdentities
указан слабый маппинг на основе mail, то атакующий может изменить атрибут mail учетной записи подконтрольной ему жертвы (например, user
) и указать там почту целевого участника (admin
). Это позволит выпустить сертификат на целевую учетную запись и пройти аутентификацию от ее имени.
Требования к целевому участнику и участнику‑жертве:
целевой участник является пользователем;
злоумышленник имеет доступ на запись к атрибуту
mail
участника‑жертвы;атрибут
altSecurityIdentities
целевого участника содержит как минимум одно сопоставление X509RFC822.
Дополнительные требования к шаблону сертификата:
наличие флага
CT_FLAG_NO_SECURITY_EXTENSION
в атрибутеmsPKI‑Enrollment‑Flag
(по умолчанию отсутствует);наличие флага
CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL
в своем атрибутеmsPKI‑Certificate‑Name‑Flag
.
Также должны быть соблюдены требования к одному из двух протоколов аутентификации:
Протокол PKINIT. Для ключа реестра
StrongCertificateBindingEnforcement
установлено значение 0 или 1 (режим совместимости — по умолчанию до 11 февраля 2025 года).Протокол Schannel. Ключ реестра
CertificateMappingMethods
содержит флаг S4U2self (0×0 000 000 008) (по умолчанию). Для ключа реестраStrongCertificateBindingEnforcement
установлено значение 0 или 1 (режим совместимости — по умолчанию до 11 февраля 2025 года).
Вариант ESC14-С
Если целевой объект имеет слабый явный маппинг X509IssuerSubject
в altSecurityIdentities
, то злоумышленник может установить атрибут СN или dNSHostName
для участника‑жертвы, чтобы он соответствовал объекту маппинга X509IssuerSubject
цели. Это позволит злоумышленнику выпустить сертификат от имени жертвы и использовать его для аутентификации от имени цели.
Вариант ESC14-D
Если целевой объект имеет слабый явный маппинг X509SubjectOnly
в altSecurityIdentities
, то злоумышленник может изменить атрибут СN или dNSHostName
для участника‑жертвы, чтобы он соответствовал объекту маппинга X509SubjectOnly
для объекта‑цели. Затем злоумышленник может выпустить сертификат от имени жертвы и использовать его для аутентификации от имени цели.
Превентивные меры защиты
Ограничить доступ на запись в атрибут altSecurityIdentities
только теми субъектами, которые имеют полный контроль над данным пользователем или рабочей станцией.
Не использовать слабый явный маппинг, при наличии пользователя или рабочей станции с подобным маппингом заменить его на сильный.
Также рекомендуется провести аудит разрешений на запись в атрибут altSecurityIdentities
и наличия пользователей или рабочих станций с настроенным слабым явным маппингом с помощью скриптов для PowerShell.
Рекомендации по мониторингу
Для обнаружения данной атаки необходимо осуществлять мониторинг:
-
Изменений шаблонов сертификатов в AD с помощью мониторинга событий:
Windows Event ID 4898 (Certificate Services loaded a template), в котором в поле
TemplateContent
находятся свойства шаблона, по которым можно установить, является ли он уязвимым. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флагEDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.Windows Event ID 4899 (A Certificate Services template was updated), которое возникает при выпуске сертификата с измененным шаблоном. Если параметры шаблона в кэше сервера отличаются от параметров шаблона, по которому запрошен сертификат, то регистрируется данное сообщение.
Важно отметить, что события не подходят для обнаружения модификации шаблона в режиме реального времени.
Изменений объектов пользователей и рабочих станций в AD. Например, событие Windows Event ID 5136 (A directory service object was modified), которое генерируется при изменении объекта Active Directory. Из особенностей можно выделить запись в атрибут
altSecurityIdentities
другого пользователя ссылки на сертификат. Также необходимо обращать внимание на изменение атрибутовdnshostname
(для учетной записи рабочей станции),cn
(для учетной записи пользователя) иmail
(для обоих типов).


Событий выпуска сертификатов и событий, связанных с аутентификацией с их использованием.
ESC15: злоупотребление политикой приложений (EKUwu Application Policies)*
ESC15 (CVE-2024–49 019) — это вектор атаки, который использует шаблоны сертификатов с версией схемы 1 в AD CS. Этот метод основан на ESC1, позволяющем злоумышленникам запрашивать сертификаты для привилегированных учетных записей. Однако ESC15 обходит еще больше проверок безопасности.
*В ноябре 2024 года вышло обновление для исправления этой проблемы.
Реализация вектора атаки ESC15 возможна вследствие наличия следующих условий:
Центр сертификации позволяет непривилегированным пользователям запрашивать сертификаты.
Используется схема шаблонов сертификатов версии 1.
Шаблон сертификата позволяет указывать альтернативное имя субъекта (subjectAltName, SAN) в запросе на выдачу сертификата (certificate signing request, CSR), так как используется флаг
CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
атрибутаmsPKI‑Certificate‑Name‑Flag
.

Когда пользователь запрашивает сертификат на основе шаблона схемы версии 1, он может манипулировать полем EKU и добавлять дополнительные идентификаторы OID политики приложения (Application Policies). Это позволяет пользователям указывать произвольные условия, в которых может использоваться выданный сертификат.
Политика Application Policies — это фирменное расширение сертификата с OID 1.3.6.1.4.1.311, таким же, как у x509 EKU. Оно было разработано, чтобы позволить пользователям указывать дополнительные варианты использования сертификатов, используя те же OID, что и в расширении Enhanced Key Usage.
Используя эти условия, злоумышленники могут выдавать себя за привилегированных пользователей, таких как администраторы домена, и повышать свои привилегии внутри домена.
Для реализации атаки злоумышленнику необходимо выполнить следующие шаги:
-
Создать запрос на сертификат и выбрать шаблон сертификата WebServer, затем кликнуть More information is required to enroll this certificate. Click here to configure settings.
Создание запроса на выпуск сертификата по шаблону WebServer -
Указать в качестве значений CN и UPN имя учетной записи пользователя, на чье имя планируется выпустить сертификат (например, администратора), точно так же, как при атаке ESC1.
Изменение значений CN и UPN при создании запроса на сертификат -
Перейти на вкладку Extensions, удалить установленное EKU Server Authentication и добавить Client Authentication.
Предустановленные параметры с EKU Server Authentication Удаление EKU Server Authentication и добавление EKU Client Authentication -
Подтвердить указанные параметры и выпустить сертификат. В сертификате в поле EKU по‑прежнему будет отображаться Server Authentication, но появится новое поле Application Policy, в котором будет указано Client Authentication.
Выпущенный сертификат Оригинальный Enhanced Key Usage Server Authentication и добавленная политика Application Policy c Client Authentication
После этого злоумышленник может использовать технику pass the cert или утилиту Certipy с аргументом ‑ldap‑shell для аутентификации через Schannel в LDAP от имени пользователя, на которого выпущен сертификат.

Альтернативным вариантом ESC15 может послужить его сведение к цепочке ESC3 с помощью присвоения уязвимому сертификату EKU Enrollment Agent (OID 1.3.6.1.4.1.311.20.2.1, szOID_ENROLLMENT_AGENT
). В этом случае мы не ограничены методом аутентификации Schannel и можем использовать классический вариант с PKINIT.
Превентивные меры защиты
Для предотвращения злоупотребления политикой приложений следует обновить Windows Server до актуальной версии, в которой исправлена описанная уязвимость.
Рекомендуется проверить все шаблоны сертификатов в среде AD CS, особенно те, которые имеют версию схемы шаблона сертификата 1 и позволяют указывать альтернативное имя субъекта в запросе на выдачу сертификата (то есть имеют в свойствах включенный флаг CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
в атрибуте msPKI-Certificate-Name-Flag
). Для подобных шаблонов должен быть ограничен список пользователей, которые их могут запрашивать. В качестве альтернативы шаблоны версии 1 можно обновить путем их копирования до версии схемы 2, чтобы снизить риски эксплуатации данного вектора.
Рекомендации по мониторингу
Логику обнаружения можно построить на загрузке шаблона первой версии и запросе на его основе сертификата с уточнением политик. Для этого необходимо осуществлять мониторинг следующих событий:
Windows Event ID 4898 (Certificate Services loaded a template), в котором содержатся свойства шаблона выпускаемого сертификата, в том числе информация о версии схемы. Стоит отметить, что событие 4898 по умолчанию генерируется при первом выпуске сертификата с момента старта центра сертификации или при первом запросе сертификата с момента изменения шаблона, что делает его появление нечастым, поэтому рекомендуется добавить флаг
EDITF_AUDITCERTTEMPLATELOAD
для увеличения частоты появления данного события. При такой конфигурации событие будет дополнительно появляться при старте службы сертификации для каждого уязвимого шаблона.-
Windows Event ID 4886 (Certificate Services received a certificate request) и Windows Event ID 4887 (Certificate Services approved a certificate request and issued a certificate), в котором содержатся сведения о пользователе, запросившем сертификат, о пользователе, на имя которого запрашивается сертификат, а также информация об указанном Application Policies в поле Attributes.
Пример содержимого события Windows Event ID 4887 Windows Event ID 4888 (Certificate Services denied a certificate request), в котором содержатся сведения о пользователе, запросившем сертификат, и узле, с которого запрос получен. Данный запрос может указывать на неудачные попытки выпуска сертификатов злоумышленниками.
Также необходимо выполнять мониторинг Windows Event ID 4624 (An account successfully logged on). Особое внимание уделять событиям, в которых в качестве параметра Logon Process указывается Secure Channel (Schannel), который свидетельствует об использовании защищенного соединения при аутентификации. При анализе подобных событий выявлять использование протоколов Kerberos или NTLM для аутентификации, обращая внимание на подробности входа с целью обнаружения фактов использования нелегитимных сертификатов.
Выводы
Изначально служба сертификации Active Directory (AD CS) выглядела как компонент для повышения безопасности в домене, но на текущий момент ее некорректная конфигурация может ослабить всю систему безопасности и привести к критически опасным последствиям для всей вашей инфраструктуры. Описанные в этой статье векторы атак демонстрируют, что нарушитель может сделать ваш центр сертификации своей мишенью и повысить привилегии в вашей внутренней сети несколькими различными способами.
В данной статье мы рассмотрели все векторы атак, которые были обнаружены на момент ее написания, но кто знает, что исследователи безопасности найдут уже завтра? Поэтому еще раз хотели бы подчеркнуть важность обеспечения безопасности службы сертификации в современных ИТ‑инфраструктурах.
Для защиты от атак на AD CS необходимо внедрять многоуровневые меры безопасности, включая отслеживание и устранение недостатков
конфигурации сервера центра сертификации и используемых шаблонов сертификатов, регулярные обновления, а также мониторинг активности. Только комплексный подход к защите AD CS может минимизировать риски и обеспечить надежную работу вашей внутренней инфраструктуры.
События для мониторинга действий с сертификатами
Событие |
Сообщение |
Описание |
Event ID 39 |
The Key Distribution Center (KDC) encountered a user certificate that was valid but could not be mapped to a user in a secure way |
Событие появляется при попытке пользователя выполнить аутентификацию клиента с предоставлением сертификата, не соответствующего политике сильного маппинга. Может быть предупреждением или ошибкой — в зависимости от настроенной политики сильного маппинга. Если требуется сильный маппинг — ошибка, если сильный маппинг не требуется, но включено наблюдение — предупреждение (режим совместимости действует до сентября 2025 года; если он отключен — сообщение не регистрируется) |
Event ID 40 |
Certificate predates account |
Данное событие является ошибкой, свидетельствующей о попытке использования сертификата, который выпущен раньше, чем создана учетная запись, для которой он предназначен. При таких обстоятельствах сертификат будет отклонен, но данная ошибка является подозрительной и может указывать на проведение атаки ESC*, кражу или подделку сертификата |
Event ID 41 |
Users SID does not match Certificate SID |
Данное событие является ошибкой и означает, что сертификат был отклонен, так как SID, указанный в сертификате, не соответствует SID пользователя. Также данная ошибка является подозрительной и может указывать на проведение атаки ESC*, кражу или подделку сертификата |
Windows Event ID 4624 |
An account successfully logged on |
В качестве Authentication Package будет указан Kerberos, в качестве Logon Process Name — Schannel. В событии также будет указана информация о пользователе, указанном в сертификате, и IP-адрес локального компьютера |
Windows Event ID 4648 |
A logon was attempted using explicit credentials |
В свойствах сообщения в качестве целевого аккаунта будет указан пользователь, упоминающийся в сертификате, в качестве целевого сервера будет указан localhost. Также в дополнительных полях будет указан IP-адрес узла, на котором происходит вход в систему. При успешном завершении S4U2Self далее появится сообщение 4624 |
Windows Event ID 4768 |
A Kerberos authentication ticket (TGT) was requested |
При выполнении аутентификации по сертификату будут заполнены поля Certiticate Information |
Windows Event ID 4769 |
A Kerberos service ticket was requested |
При выполнении аутентификации по Schannel контроллер домена попробует получить информацию об аккаунте, указанном в сертификате с помощью S4U2Self, поэтому появится сначала это событие, а затем событие 4648 |
Windows Event ID 4886 |
Certificate Services received a certificate request |
Службой сертификации получен запрос на сертификат. В данном событии содержатся сведения о пользователе, запросившем сертификат, о пользователе, на имя которого запрашивается сертификат, а также времени создания запроса. Необходимо отслеживать несовпадения SAN с учетной записью, запросившей сертификат и указанной в поле Requester. При этом стоит учитывать, что подобные несовпадения могут быть легитимными; например, сертификаты для сайтов могут содержать несколько SAN с целью использования одного сертификата для всех возможных доменных имен сайта (например, внутренних и внешних). По этой причине подобную активность необходимо дополнительно валидировать и коррелировать с предшествующими событиями, связанными с выдачами сертификатов или изменением их шаблонов |
Windows Event ID 4887 |
Certificate Services approved a certificate |
Службой сертификации был одобрен запрос на сертификат и выдан сертификат. В данном событии содержатся сведения о пользователе, запросившем сертификат, о пользователе, на имя которого запрашивается сертификат, а также времени создания запроса |
Windows Event ID 4888 |
Certificate Services denied a certificate request |
Службой сертификации был отклонен запрос на сертификат. В данном событии содержатся сведения о пользователе, запросившем сертификат, и о пользователе, на имя которого запрашивается сертификат. Также данный запрос может указывать на неудачные попытки выпуска сертификатов злоумышленниками |
Event ID 1006 |
A new certificate has been installed |
Сертификат установлен, в информационных полях есть EKU OID, по которому можно определить его назначение. Сообщение появится лишь в случае использования стандартных средств для запроса сертификата; использование WinAPI не генерирует подобных сообщений |
Event ID 1007 |
A certificate has been exported |
Сертификат экспортирован, в информационных полях есть EKU OID, по которому можно определить его назначение. Сообщение появится лишь в случае использования стандартных средств для запроса сертификата; использование WinAPI не генерирует подобных сообщений |
Анастасия Коротеева
Аналитик группы анализа уязвимостей и кибератак, Positive Technologies
Анастасия Кожахметова
Руководитель группы анализа уязвимостей и кибератак, Positive Technologies