Облачное хранилище
ESC8 уязвимость в Active Directory Certificate Services через NTLM и HTTP интерфейс
Иллюстрация уязвимости ESC8 в Active Directory Certificate Services, при которой NTLM relay через HTTP или HTTPS без Extended Protection позволяет получить сертификат контроллера домена и скомпрометировать Active Directory.

Почему уязвимость AD CS превращает удобный веб-портал в ключ к компрометации Active Directory


Введение

Active Directory Certificate Services (AD CS) — это роль Windows Server, которая управляет выпуском цифровых сертификатов для устройств, пользователей и сервисов. Эти сертификаты нужны для безопасной аутентификации, шифрования, PKI-инфраструктуры и других критичных сервисов.

Уязвимость ESC8 (NTLM Relay to AD CS HTTP Endpoints) становится опасной именно из-за веб-интерфейса выдачи сертификатов, который может принимать NTLM-аутентификацию без достаточной защиты. Если злоумышленник это эксплуатирует, он получает сертификаты от имени привилегированных аккаунтов — и может получить контроль над доменом.


Что такое ESC8

ESC8 — это техника, при которой злоумышленник использует атаки NTLM-релея через уязвимые HTTP/HTTPS-интерфейсы AD CS для эскалации привилегий до уровня Domain Admin.

Она работает в несколько шагов:

  1. Атакующий поднимает свой контролируемый HTTP-сервер.
  2. Через техники принуждения (например, PetitPotam) заставляет привилегированный аккаунт (часто контроллер домена) пройти NTLM-аутентификацию на этот сервер.
  3. Полученные NTLM-данные ретранслируются на уязвимый веб-интерфейс AD CS (например, Web Enrollment либо CES/CEP).
  4. AD CS выдаёт сертификат, подписанный CA, на имя привилегированного аккаунта, но ключ находится у злоумышленника.
  5. С этим сертификатом можно запросить TGT от имени контроллера домена и получить полный доступ к инфраструктуре.

Почему ESC8 — это проблема

ESC8 опаснее, чем кажется: это не просто утечка данных или временный доступ. Она позволяет:

  • получить сертификат, действующий от имени контроллера домена;
  • использовать его для Kerberos-аутентификации (PKINIT);
  • получить Ticket Granting Ticket (TGT);
  • действовать как полноценный доменный контроллер.

Иными словами — злоумышленник получает те же права, что и контроллер домена, без компрометации паролей. Такой доступ может оставаться незамеченным долгое время.


🔍 Условия успешной эксплуатации

ESC8 реализуется, когда одновременно выполняются:

✔️ Веб-сервис AD CS уязвим для NTLM-релея (HTTP или HTTPS без Extended Protection).
✔️ В инфраструктуре включена NTLM-аутентификация (по умолчанию включена в домене).
✔️ Существует шаблон сертификата, который автоматически выдаёт сертификат для целей аутентификации (Client Auth).
✔️ Атакующий может заставить контроллер домена пройти NTLM-аутентификацию на свой сервер.

Как защитить инфраструктуру от ESC8: пошаговый план

ESC8 эксплуатирует сразу несколько «нормальных» настроек AD CS. Поэтому защита — это не один переключатель, а цепочка мер. Хорошая новость: всё решается штатными средствами Windows.


1️⃣ Отключите HTTP-доступ к AD CS (самый важный шаг)

Если AD CS Web Enrollment или CEP/CES доступны по HTTP — домен уже играет в русскую рулетку.

Что проверить:

  • Установлены ли роли:
    • Certification Authority Web Enrollment
    • Certificate Enrollment Policy Web Service
    • Certificate Enrollment Web Service

Что сделать:

  • Полностью удалить HTTP-привязки в IIS
  • Оставить только HTTPS

Путь:

IIS Manager → Sites → Default Web Site → Bindings

Удалите:

  • http : 80

Оставьте:

  • https : 443 (с корректным сертификатом)

📌 Почему это важно: NTLM-relay по HTTP — основа атаки ESC8. Без HTTP атака резко усложняется или становится невозможной.


2️⃣ Включите Extended Protection for Authentication (EPA)

Даже HTTPS без EPA всё ещё может быть уязвим.

Что такое EPA:
Extended Protection связывает NTLM-аутентификацию с TLS-каналом (Channel Binding Token). Это ломает NTLM-relay.

Как включить:

  1. IIS Manager
  2. Выберите сайт AD CS
  3. Authentication → Windows Authentication
  4. Advanced Settings
  5. Установите:
    • Extended Protection: Required
    • Kernel-mode authentication: Enabled

📌 Важно:
После включения EPA проверьте:

  • старые клиенты
  • legacy-сервисы
  • авто-запросы сертификатов

Иногда EPA выявляет «призраков» из 2008 года.


3️⃣ Ограничьте или отключите NTLM

ESC8 невозможен без NTLM. Если NTLM запрещён — атака умирает на старте.

Минимум, который стоит сделать:

  • Запретить NTLM на серверах CA
  • Запретить NTLM для входящих подключений

Где настраивается:

Computer Configuration →
  Policies →
    Windows Settings →
      Security Settings →
        Local Policies →
          Security Options

Ключевые параметры:

  • Network security: Restrict NTLM: Incoming NTLM traffic → Deny all
  • Network security: Restrict NTLM: NTLM authentication in this domain → Audit / Deny (по этапам)

📌 Совет:
Начинайте с режима Audit, посмотрите логи — потом включайте Deny.


4️⃣ Проверьте шаблоны сертификатов (Certificate Templates)

ESC8 становится смертельным, когда шаблон:

  • автоматически выдаёт сертификат
  • разрешает Client Authentication
  • доступен привилегированным аккаунтам

Что проверить в шаблонах:

  • ENROLLEE_SUPPLIES_SUBJECT
  • ❌ Autoenrollment для Domain Controllers / Domain Admins
  • ❌ Client Authentication без строгого контроля

Что сделать:

  • Убрать автоматическую выдачу для чувствительных шаблонов
  • Ограничить список групп, которым разрешён Enroll
  • Использовать отдельные шаблоны:
    • для машин
    • для пользователей
    • для сервисов

📌 Правило простое:
Чем выше привилегии — тем меньше автоматизации.


5️⃣ Включите ручное одобрение выдачи сертификатов

Это не серебряная пуля, но отличный «предохранитель».

Где включается:

  • Certification Authority
  • Properties
  • Policy Module
  • Request Handling → Require administrator approval

Теперь:

  • сертификат не будет выдан автоматически
  • NTLM-relay не даст мгновенного результата
  • атака станет заметной

📌 Да, это неудобно.
📌 Зато домен остаётся вашим.


6️⃣ Ограничьте сетевую доступность AD CS

Если до AD CS можно достучаться откуда угодно — рано или поздно это сделают.

Рекомендуется:

  • Разрешить доступ к AD CS только:
    • доменным контроллерам
    • серверам управления
    • нужным сервисам
  • Запретить доступ:
    • пользовательским сегментам
    • серверам без необходимости

Используйте:

  • Firewall rules
  • Network segmentation
  • IP allow-list

7️⃣ Мониторинг и аудит (чтобы не было сюрпризов)

Что стоит логировать:

  • Запросы сертификатов
  • Неожиданные Client Authentication сертификаты
  • Запросы от контроллеров домена вне регламентных сценариев

Обратите внимание на:

  • CertSrv logs
  • Security logs
  • события PKINIT

📌 Если DC внезапно запрашивает сертификат — это повод не за кофе, а за инцидентом.


Вывод

ESC8 — это не просто теоретическая уязвимость. Она показывает, как удобный HTTP/NTLM-интерфейс может стать потерянным доменом. Современные атаки превращают обычные сервисы AD CS в вектор, который позволяет злоумышленнику получить сертификаты привилегированных сервисов и захватить домен.

Если упростить до одной фразы:

HTTP + NTLM + AD CS = потенциальная компрометация домена

ESC8 лечится не патчем, а гигиеной инфраструктуры:

  • аудит
  • HTTPS + EPA
  • минимизация NTLM
  • строгие шаблоны
  • контроль доступа

Если у вас развернут AD CS с доступными веб-интерфейсами — обязательно проверьте настройки NTLM, HTTPS и требования к шаблонам сертификатов.

FAQ по ESC8 и AD CS

Что такое ESC8 простыми словами?
Это атака, при которой злоумышленник через NTLM-relay получает сертификат от AD CS и использует его для аутентификации как контроллер домена.

Обязательно ли должен быть включён HTTP?
Чаще всего — да. Но даже HTTPS без Extended Protection может быть уязвим. HTTP просто делает атаку тривиальной.

Можно ли эксплуатировать ESC8 без прав в домене?
Да. Достаточно возможности заставить DC пройти NTLM-аутентификацию (через PetitPotam, PrinterBug и похожие техники).

Помогает ли отключение Web Enrollment?
Да, если вместе с этим закрыты CEP/CES и нет альтернативных HTTP-эндпоинтов AD CS.

Работает ли ESC8, если NTLM отключён?
Нет. NTLM — ключевой элемент атаки.

Нужно ли полностью отказываться от AD CS?
Нет. Проблема не в AD CS, а в небезопасных настройках и устаревших механизмах аутентификации

Полезные ссылки по теме