Почему уязвимость 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.
Она работает в несколько шагов:
- Атакующий поднимает свой контролируемый HTTP-сервер.
- Через техники принуждения (например, PetitPotam) заставляет привилегированный аккаунт (часто контроллер домена) пройти NTLM-аутентификацию на этот сервер.
- Полученные NTLM-данные ретранслируются на уязвимый веб-интерфейс AD CS (например, Web Enrollment либо CES/CEP).
- AD CS выдаёт сертификат, подписанный CA, на имя привилегированного аккаунта, но ключ находится у злоумышленника.
- С этим сертификатом можно запросить 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.
Как включить:
- IIS Manager
- Выберите сайт AD CS
- Authentication → Windows Authentication
- Advanced Settings
- Установите:
- 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, а в небезопасных настройках и устаревших механизмах аутентификации
Полезные ссылки по теме
- Документация Microsoft: Active Directory Certificate Services
https://learn.microsoft.com/windows-server/identity/ad-cs/ - SpecterOps — ESC8: NTLM Relay to AD CS HTTP Endpoints
https://docs.specterops.io/ghostpack-docs/Certify/wiki/esc8-ntlm-relay-to-ad-cs-http-endpoints - BI.ZONE — ESC8: как один HTTP-интерфейс может стоить вам домена
https://bi.zone/expertise/active-directory-certificate-services/esc8-kak-odin-http-interfeys-mozhet-stoit-vam-domena/ - Microsoft Defender for Identity: Certificate-based attacks
https://learn.microsoft.com/defender-for-identity/security-posture-assessments/certificates


