Теория — что такое 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 и получаем сертификат от его имени.
Практика — только в лаборатории
Обнаружение (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-правила для злоупотреблений .