AD CS и WSUS: компрометация домена через сертификаты — разбор HTB Logging
📋 Кратко
Компрометация домена через Active Directory Certificate Services (AD CS) — одна из самых опасных и недооценённых тактик в арсенале пентестеров и реальных злоумышленников. Машина HTB Logging демонстрирует двухэтапную цепочку: атака на Windows Server Update Services (WSUS) через MITM с последующей эскалацией через AD CS ESC8. Разбираем, как злоумышленник, получившая доступ к клиентской машине, использует WSUS для NTLM-релея на веб-интерфейс Certificate Authority, запрашивает сертификат с правами машины и захватывает домен. Детально — Event ID 4886, 4887, 4768, 4769, методы детектирования и hardening PKI.
Active Directory Certificate Services (AD CS) — это служба сертификации Microsoft, которая является основой Public Key Infrastructure (PKI) в корпоративных средах. Она управляет выпуском, отзывом и продлением цифровых сертификатов, используемых для аутентификации пользователей, шифрования трафика и подписи кода. Однако, как показывает практика пентестов и реальных инцидентов, AD CS становится одной из самых опасных поверхностей атаки в домене. Машина Hack The Box Logging — это наглядный учебный сценарий, демонстрирующий двухэтапную цепочку: компрометация через WSUS с последующей эскалацией через AD CS ESC8.
В этой статье мы детально разберём механику обоих этапов, рассмотрим конкретные Event ID для детектирования, проанализируем инструменты атаки (wsuks, Certipy, Impacket) и дадим практические рекомендации по защите PKI-инфраструктуры.
🔍 Что такое AD CS и почему он — критическая поверхность атаки
AD CS реализует иерархию центров сертификации (CA) в домене Active Directory. Сертификаты, выпущенные корпоративным CA, автоматически публикуются в Active Directory и могут использоваться для аутентификации через протокол PKINIT (Kerberos с использованием сертификатов вместо паролей). Это означает, что обладатель действительного сертификата может получить Ticket Granting Ticket (TGT) от контроллера домена без знания пароля.
Проблема в том, что AD CS содержит множество настроек, которые администраторы оставляют по умолчанию — небезопасными. Исследователи Will Schroeder и Lee Christensen (SpecterOps) в 2021 году опубликовали работу, в которой описали восемь классов уязвимостей AD CS, получивших обозначение ESC1–ESC8. Каждый класс — это отдельный сценарий эскалации привилегий, от выдачи сертификата с альтернативным именем субъекта (ESC1) до релея NTLM-аутентификации на веб-интерфейс CA (ESC8).
Особенность атак на AD CS — легитимность. Сертификаты, полученные через штатные механизмы Certificate Authority, не вызывают подозрений у систем безопасности. Аналитик SOC видит обычный запрос сертификата и его выдачу — стандартные Event ID 4886 и 4887.
🛠️ WSUS как точка входа: MITM-атака на обновления Windows
Windows Server Update Services (WSUS) — это компонент Windows Server, позволяющий централизованно управлять распространением обновлений Microsoft внутри корпоративной сети. WSUS может работать по HTTP, и, как показывает практика, HTTPS-шифрование настраивают менее чем в 30% организаций.
Атака на WSUS использует тот факт, что клиенты доверяют WSUS-серверу и выполняют обновления с правами SYSTEM. Если злоумышленник находится в той же локальной сети, что и целевая машина, он может выполнить ARP-spoofing, подменить IP-адрес WSUS-сервера и развернуть фальшивый HTTP-сервер, который отвечает на запросы клиента.
Инструмент wsuks (автор — NeffIsBack) автоматизирует эту атаку:
- ARP-spoofing — подмена MAC-адреса WSUS-сервера в ARP-таблице жертвы
- Перехват HTTP-трафика — маршрутизация запросов обновлений на локальный HTTP(S)-сервер
- Доставка вредоносного обновления — любой исполняемый файл, подписанный Microsoft (например, PsExec64.exe), выполняется с правами SYSTEM
- Выполнение PowerShell-скрипта — создание локального администратора или добавление доменного пользователя в группу администраторов
По умолчанию Windows-клиент проверяет наличие обновлений каждые 22 часа, но атака может быть ускорена принудительным запуском wuauclt.exe через RPC или WMI, если у злоумышленника уже есть доступ к машине.
🎯 Цепочка атаки на HTB Logging: от WSUS к AD CS ESC8
Машина HTB Logging объединяет две уязвимости в единую атаку. Рассмотрим каждый шаг так, как это делает пентестер в рамках CPTS-трека HTB Academy.
Шаг 1: Первоначальный доступ
Пентестер получает доступ к клиентской машине в домене (обычно через эксплуатацию уязвимости веб-приложения, слабый пароль или SMB-релей). На этом этапе доступ — обычный пользователь, без административных привилегий.
Шаг 2: Разведка WSUS
С помощью BloodHound или SharpEDRChecker пентестер выясняет, что в домене используется WSUS и он настроен на использование HTTP. Адрес WSUS-сервера извлекается из GPO (Group Policy Object) домена. Инструмент wsuks с флагом --only-discover может автоматически найти WSUS-сервер, проанализировав GPO на контроллере домена.
Шаг 3: WSUS MITM — получение SYSTEM
Пентестер запускает wsuks на своём атакующем хосте (в той же подсети, что и целевая машина):
sudo wsuks -t 10.10.10.10 -u domain\user -p Password123 -d evilcorp.local --dc-ip 10.10.10.1
Инструмент выполняет ARP-spoofing, дожидается обращения клиента к WSUS (или инициирует его через WMI), перехватывает запрос и отдаёт поддельное обновление. PsExec64.exe с PowerShell-скриптом выполняется с правами SYSTEM. На целевой машине создаётся локальный пользователь с административными правами.
Шаг 4: Access to AD CS — ESC8 (NTLM Relay)
Теперь у пентестера есть доступ SYSTEM к клиентской машине в домене. Следующий этап — эскалация до уровня domain admin через AD CS ESC8. ESC8 — это NTLM-relay атака на веб-интерфейс Certificate Authority (обычно http://ca-server/certsrv/).
Схема атаки:
- Пентестер запускает ntlmrelayx.py из Impacket, который прослушивает входящие NTLM-аутентификации
- С помощью принудительной аутентификации (например, через PrinterBug, PetitPotam или DFSCoerce) пентестер заставляет контроллер домена инициировать NTLM-аутентификацию на релей-сервер
- ntlmrelayx.py перенаправляет полученный NTLM-хэш на веб-интерфейс CA, запрашивая сертификат для машины-контроллера домена
- CA, не проверяя подлинность источника запроса, выпускает сертификат для контроллера домена
- Пентестер использует полученный сертификат для аутентификации PKINIT (
certipy auth) и получает TGT администратора домена
🔬 Детектирование: Event ID и анализ логов
Эффективное обнаружение атак на AD CS требует включения продвинутого аудита. По умолчанию аудит Certificate Services отключён, что создаёт слепые зоны в мониторинге.
Необходимые настройки аудита
- Certificate Authority Auditing — в оснастке certsrv.msc → CA Properties → Auditing включить все категории (запросы сертификатов, выдача, модификация шаблонов)
- Event ID 5136 — на контроллерах домена для мониторинга изменений шаблонов сертификатов и дескрипторов безопасности
- Event ID 4688 — аудит создания процессов с командной строкой для обнаружения запуска Certipy, Certify, wsuks и других инструментов
Event ID для обнаружения AD CS атак
| Event ID | Описание | Индикатор атаки |
|---|---|---|
| 4886 | Certificate Services получил запрос на сертификат | Запрос от непривилегированного пользователя с SAN=Administrator |
| 4887 | Certificate Services одобрил и выпустил сертификат | Выдача сертификата, где Requester ≠ Subject (ESC1) |
| 4768 | Запрос Kerberos TGT (PreAuthType: 16) | TGT через PKINIT сразу после выдачи сертификата |
| 4769 | Запрос Kerberos TGS | Необычные запросы сервис-тикетов после PKINIT |
| 4899 | Шаблон сертификата обновлён | Изменение разрешений на шаблон (ESC1-ESC3) |
| 4900 | Безопасность шаблона сертификата обновлена | Добавление низкопривилегированного пользователя в ACL шаблона |
Паттерны для SIEM-корреляции
Наиболее надёжный метод детектирования — поиск несоответствия между запрашивающим сертификат (Requester) и субъектом сертификата (Subject). В легитимном сценарии пользователь запрашивает сертификат для себя. При атаке ESC1 Requester — низкопривилегированный пользователь, а Subject — Domain Admin.
Второй паттерн — временной анализ: атака AD CS характеризуется кластеризацией событий в коротком окне (2–10 минут):
- Event ID 4886 (запрос сертификата)
- Event ID 4887 (выдача сертификата)
- Event ID 4768 с PreAuthType=16 (аутентификация PKINIT)
- Event ID 4769 (запрос сервис-тикетов — DCSync, SMB, WinRM)
Для WSUS-атаки характерны: Event ID 4688 с командной строкой, содержащей wsuks, PsExec или wuauclt с нестандартными параметрами, а также логи ARP-спуфинга.
🛡️ Методы защиты PKI-инфраструктуры
Защита от атак AD CS и WSUS требует многоуровневого подхода. Ниже — практические рекомендации, основанные на руководствах Microsoft, Google Cloud Security Community и Unit 42.
Защита AD CS
- Отключите ненужные шаблоны сертификатов — удалите или отключите шаблоны, которые позволяют указать Subject Alternative Name (SAN) в запросе (ESC1). Используйте шаблоны с флагом "Supply in the request" только для KRA (Key Recovery Agent)
- Настройте Extended Key Usage (EKU) — ограничьте, для каких целей может использоваться сертификат. Сертификаты для аутентификации должны иметь EKU "Client Authentication", а не "Any Purpose"
- Включите аудит Certificate Authority — все категории событий в Properties → Auditing. Настройте отправку событий в SIEM (Event ID 4886, 4887, 4899, 4900)
- Отключите веб-интерфейс CA — если не используется Certificate Enrollment Web Services (CES), удалите роль Certification Authority Web Enrollment. Это заблокирует ESC8
- Включите Extended Protection for Authentication — на CA-сервере в IIS настройте Extended Protection, что предотвращает NTLM-relay (ESP, Channel Binding Token)
- Используйте Key-Based Renewal — включите проверку, что сертификат запрашивается тем же субъектом, которому принадлежит предыдущий сертификат
- Регулярно проводите аудит AD CS — утилита Certify (Will Schroeder) или PSPKIAudit позволяют сканировать шаблоны на misconfiguration. Используйте BloodHound с модулем AD CS
Защита WSUS
- Настройте HTTPS для WSUS — обязательное шифрование трафика между клиентами и WSUS-сервером. Используйте сертификат от корпоративного CA, недоступный для компрометации
- Настройте проверку подлинности — включите аутентификацию клиентов при подключении к WSUS-серверу
- Используйте IPsec — для защиты трафика WSUS на уровне сети
- Сегментируйте сеть — клиенты не должны находиться в одной широковещательной подсети с WSUS-сервером. Используйте VLAN
- Мониторинг ARP-таблиц — настройте обнаружение ARP-spoofing через системы сетевой безопасности или NDR (Network Detection and Response)
Общие меры
- Внедрите Zero Trust — архитектура, при которой ни один запрос не доверяется по умолчанию. Сертификаты должны проверяться на каждом этапе
- Используйте EDR/XDR — современные решения (SentinelOne, CrowdStrike, Microsoft Defender for Identity) имеют встроенные детекторы AD CS атак и WSUS-манипуляций
- Проводите Red Team упражнения — регулярные пентесты AD CS-инфраструктуры с использованием реалистичных сценариев (HTB Logging — отличный тренировочный пример)
📚 Читайте также
- Red Team vs Blue Team: организуем киберучения в корпорации
- Гибридная криптография: как комбинировать классические и постквантовые алгоритмы на практике
- Pickle-десериализация в Python: риски RCE, реальные уязвимости и методы защиты
- GPT-Red: ИИ-пентест для нейросетей — 84% успеха против 13% у людей
- Shadow IT: инфраструктура, которой нет в реестре — риски и методы обнаружения
📖 Термины
IAM (Identity and Access Management) · SIEM · SOC · Zero Trust · Пентест
🔗 Источники
- Cobalt: ADCS-ESC1 — Misconfigured Certificate Templates Leading to Domain Admin (2026-07-21 ✓)
- GoSecure: WSUS Attacks — Introducing PyWSUS (2026-07-21 ✓)
- HawkEye CSOC: Active Directory PKI Abuse — Detecting Privilege Escalation Through ADCS (2026-07-21 ✓)
- NeffIsBack/wsuks: Automating the MITM Attack on WSUS (GitHub) (2026-07-21 ✓)
- The Hacker Recipes: WSUS Spoofing — MITM Attack on Windows Update (2026-07-21 ✓)