Перейти к содержимому
AD Academy
Атаки на AD
Продвинутый24 мин.Обновлено: Тема 5 из 7

AD CS — ESC1–ESC8: атака на центр сертификации

Внутренний центр сертификации — это «принтер удостоверений» домена, а неверно настроенный шаблон равен пропуску в Domain Admin.

Не прочитано

Что вы узнаете

  • Что такое AD CS, что такое шаблон сертификата и как работает Enrollment
  • Какие ошибки конфигурации создают ESC1–ESC8
  • Как находить уязвимые шаблоны с Certify / Certipy

Перед этой темой стоит прочитать:Shadow Credentials (msDS-KeyCredentialLink)

Теория — что такое AD CS

Certificate Services () — встроенный центр сертификации (CA) Windows. Он выдаёт цифровые сертификаты пользователям, компьютерам и службам — для аутентификации, шифрования и подписи. Проблема: сертификат может служить средством аутентификации в () — то есть тот, кто получил сертификат на чужое имя, фактически получил чужую личность.

Шаблон сертификата () определяет, кто вправе запросить сертификат, для какого использования и какие поля запрашивающий может задать сам. Большинство организаций никогда не проводили аудит шаблонов — поэтому считается сегодня самым быстрорастущим вектором атак на , «новым ».

ESC1–ESC8 вкратце

  • ESC1 — шаблон позволяет запрашивающему самому задать Subject Alternative Name (SAN) + разрешена аутентификация клиента + Enrollment открыт всем: запрашиваем сертификат «на имя» Administrator.
  • ESC2 — шаблон с назначением «Any Purpose» или без EKU: подходит для всего, включая аутентификацию.
  • ESC3 — шаблон Enrollment Agent: один сертификат позволяет запрашивать сертификаты от имени других.
  • ESC4 — права записи на сам шаблон: кто может редактировать шаблон, превращает его в ESC1.
  • ESC5 — сильные права на объекты (CA, компьютер CA, OID) — косвенная эксплуатация всего остального.
  • ESC6 — флаг EDITF_ATTRIBUTESUBJECTALTNAME2 на CA: любой шаблон превращается в ESC1.
  • ESC7 — права ManageCA/ManageCertificates на CA: администратор CA может одобрять отложенные запросы и выпускать сертификаты сам.
  • ESC8 — против HTTP-интерфейсов (web enrollment): перенаправляем аутентификацию компьютера на сервер CA и получаем сертификат от его имени.

Практика — только в лаборатории

# 1. Сканирование уязвимых шаблонов с помощью Certify (Windows)
Certify.exe find /vulnerable
# Ищет: Supply in the request, Client Authentication, Enrollee Supplies Subject
powershell
# 2. То же сканирование из Linux с Certipy
certipy find -u attacker@corp.local -p 'Password123' -dc-ip 10.0.0.10 -vulnerable
bash
# 3. Эксплуатация ESC1: Запрос сертификата от имени Administrator
certipy req -u attacker@corp.local -p 'Password123' \
  -ca CORP-CA -template VulnerableTemplate \
  -upn administrator@corp.local
# 4. Получение TGT с сертификатом
certipy auth -pfx administrator.pfx -dc-ip 10.0.0.10
bash

Обнаружение (Detection)

  • Event ID 4886/4887 на CA — сертификат получен/выдан: проверяйте SAN, не совпадающий с запрашивающим.
  • Event ID 4768 — с аутентификацией по сертификату () для учётки, которая не должна использовать сертификаты.
  • Event ID 4898/4899 — изменение конфигурации CA (включая EDITF_ATTRIBUTESUBJECTALTNAME2).
  • Запросы сертификатов к одному шаблону за короткое время от одного запрашивающего — паттерн сканирования/эксплуатации.

Митигация — блок защиты (обязательно)

  • Аудит шаблонов: запустите Certify find /vulnerable или Certipy в своей среде — то, что найдёт атакующий, найдите первым.
  • Усиление шаблонов: уберите «Supply in the request», ограничьте Enrollment конкретными группами, включите Manager Approval и подпись Enrollment Agent где возможно.
  • Уберите флаг EDITF_ATTRIBUTESUBJECTALTNAME2 с CA (блокирует ESC6): certutil -config "CA" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2.
  • ESC8: отключите web enrollment, если не нужен, или включите HTTPS + Extended Protection for Authentication () на HTTP-интерфейсах.
  • Разделите роли: тот, кто управляет CA, не должен быть Admin, и наоборот.
  • Мониторьте Event IDs из списка выше в — существуют специальные Sigma-правила для злоупотреблений .

Проверь себя

Что делает шаблон сертификата уязвимым в стиле ESC1?

Что такое ESC8?

Какой Event ID на CA фиксирует выдачу сертификата?

Какой первый защитный шаг против угроз AD CS?

Эта страница вам помогла?