Статья Пентест Active Directory: полный гайд от разведки до Domain Admin — инструменты, техники, лабораторная среда

Поверженная шахматная фигура короля на тёмной поверхности рядом с пешкой в миниатюрной короне. На фоне светится граф атак BloodHound в янтарно-бирюзовых тонах.


В большинстве внутренних пентестов путь от учётной записи рядового пользователя до Domain Admin занимает от 4 до 48 часов. Не потому что инфраструктура «дырявая» - а потому что Active Directory проектировалась для удобства администрирования, а не для противодействия атакующему с валидным доменным аккаунтом. Один забытый SPN на сервисной учётке с паролем Summer2024!, одна кривая ACL, выданная три года назад «на время миграции» - и граф BloodHound рисует прямую линию к KRBTGT. У меня рекорд - 22 минуты от первого LDAP-запроса до хеша krbtgt. Не хвастаюсь - просто показываю, насколько типичная корпоративная AD беззащитна перед тем, кто знает, куда смотреть. Эта статья - карта всех этапов такого пути.

Навигация по статье и кластеру​


Ниже - обзор каждого этапа с ключевыми техниками, инструментами и практическими ориентирами. Каждая секция ссылается на детальный spoke-материал, где техника разобрана на уровне конкретных команд с флагами и артефактов в логах.

Разведка Active Directory: от первого пакета до полной карты домена

Разведка - этап, на котором формируется 80% успеха пентеста. Имея только доменную учётку уровня Domain Users, атакующий через стандартные LDAP-запросы получает доступ к чудовищному объёму информации: полный список пользователей и их атрибутов, все группы и вложенные членства, компьютеры с версиями ОС, объекты GPO, ACL на OU, доверительные отношения и FSMO-роли. Это не уязвимость - это штатное поведение LDAP в Active Directory. Microsoft так задумала, и мы этим пользуемся.

Что собираем и чем​

Первые минуты после получения доступа к домену выглядят так:
  • Определение контроллеров домена - DNS-запрос _ldap._tcp.dc._msdcs.<domain> отдаёт все DC, их IP и приоритеты. Альтернативно - nslookup -type=SRV _kerberos._tcp.<domain>.
  • Перечисление пользователей и SPN - ldapdomaindump или ldapsearch выгружают пользователей с атрибутом servicePrincipalName (маркер для Kerberoasting), userAccountControl (флаг DONT_REQ_PREAUTH для AS-REP Roasting) и поле description. Про description - отдельная песня: администраторы туда пароли записывают чаще, чем хотелось бы верить.
  • Сканирование портов контроллера - порты 53 (DNS), 88 (Kerberos), 135 (RPC), 389/636 (LDAP/LDAPS), 445 (SMB), 3268/3269 (GC) определяют доступные протоколы и attack surface. nmap -sV на этих портах покажет версии сервисов.
  • Анонимный SMB - smbclient -L //<DC_IP> -N покажет, доступны ли шары SYSVOL, NETLOGON или кастомные шары без аутентификации. В SYSVOL нередко валяются скрипты групповых политик с паролями в открытом виде.

Когда включать BloodHound​

После базового перечисления - запускаем SharpHound (коллектор данных для BloodHound). Он собирает сессии, членства в группах, ACL, делегирование и trust-отношения через LDAP и Windows API. BloodHound строит граф атакующих путей - и на нём визуально видно: какой пользователь через какую цепочку прав может достичь Domain Admin.

На реальных проектах именно этот граф становится главным аргументом в отчёте. Типичная находка: учётная запись мониторинговой службы состоит в группе IT-Admins, у которой есть GenericAll на OU с доменными администраторами - и эта цепочка строилась годами, по кирпичику, «временно».

Подробный разбор инструментов разведки с конкретными командами и флагами - в гайде: Пентест Active Directory: полный гайд от разведки до Domain Admin в 2025. Построение графа атак и кастомные Cypher-запросы разобраны в материале BloodHound Active Directory: разведка домена, построение графа атак и эксплуатация ACL.

1777153913797.webp

Чеклист: минимальная разведка AD​

  • Получить список DC через DNS SRV
  • Выгрузить всех пользователей с атрибутами через LDAP
  • Определить учётки с SPN (для Kerberoasting)
  • Определить учётки с DONT_REQ_PREAUTH (для AS-REP Roasting)
  • Проверить анонимный доступ к SMB-шарам
  • Запустить SharpHound и загрузить данные в BloodHound
  • Проверить trust-отношения между доменами и лесами

Первоначальный доступ: LLMNR Poisoning, Responder и захват хешей NTLM​

В сценарии grey box (самый частый формат пентеста AD) учётная запись уже есть. Но в black box или при Red Team-кампании первый доменный аккаунт нужно добыть. Классический вектор - отравление широковещательных протоколов разрешения имён.

Как работает атака​

Когда Windows-машина не может разрешить имя через DNS, она шлёт широковещательный запрос по LLMNR (UDP 5355) и NBT-NS (UDP 137). Атакующий с Responder в том же сегменте отвечает раньше легитимного хоста - и жертва отправляет ему свой NTLMv2-хеш. Техника маппится на MITRE ATT&CK T1557.001 (LLMNR/NBT-NS Poisoning and SMB Relay).

Полученные хеши можно:
  • Брутфорсить офлайн через Hashcat (-m 5600 для NTLMv2) - при слабом пароле результат за минуты.
  • Relay-ить на хосты с отключённым SMB Signing через ntlmrelayx.py из Impacket. Если relay направить на LDAP контроллера домена - можно создать машинный аккаунт или провести атаку Shadow Credentials.
По данным RedTeam Pentesting (2025), коэрция (authentication coercion) через RPC-функции - логический следующий шаг после получения первого доменного аккаунта. В отличие от LLMNR poisoning, coercion позволяет целенаправленно заставить конкретный хост аутентифицироваться на машину атакующего, что открывает путь к RBCD и S4U2Self abuse.

Что детектирует SOC​

Responder генерирует характерный сетевой трафик: ответы на LLMNR/NBT-NS с IP атакующего. Правила в SIEM на «новый responder в сегменте» - тривиальны. Но на практике мониторинг этих протоколов отсутствует в большинстве инфраструктур. Просто никто не смотрит.

О защитных мерах - отключение LLMNR/NBT-NS через GPO и настройка LAPS для ротации локальных паролей - разобрано в материале Харденинг Active Directory: LAPS, LLMNR и NBT-NS - три меры против 80% внутренних атак.
1777154062143.webp

Kerberoasting и AS-REP Roasting: атаки на домен Windows через Kerberos

Kerberos - основной протокол аутентификации в Active Directory, и именно его механика порождает два наиболее массово эксплуатируемых вектора: Kerberoasting и AS-REP Roasting.

Kerberoasting атака

Любой аутентифицированный пользователь домена может запросить у KDC сервисный тикет (TGS) для любого аккаунта с servicePrincipalName. Тикет зашифрован хешем пароля этой сервисной учётки - его можно вытащить и брутфорсить офлайн. Ни один журнал не зафиксирует сам факт перебора; в логах DC появится только событие 4769 (запрос TGS) с типом шифрования 0x17 (RC4-HMAC), 0x11 (AES128) или 0x12 (AES256). При массовых запросах от одного пользователя - это индикатор Kerberoasting. RC4-запросы от современных клиентов - самый яркий сигнал, потому что легитимные клиенты используют AES. Для AES-тикетов детект строится на аномальном количестве TGS_REQ к разным SPN от одного аккаунта.

Инструменты: GetUserSPNs.py из Impacket, Invoke-Kerberoast из PowerView, Rubeus с параметром kerberoast.

AS-REP Roasting​

Если у учётной записи отключена Kerberos pre-authentication (флаг DONT_REQ_PREAUTH в userAccountControl), атакующий может запросить AS-REP без знания пароля. Ответ KDC содержит часть, зашифрованную хешем пароля пользователя - перебирается в Hashcat (-m 18200).

Практический takeaway​

ПараметрKerberoastingAS-REP Roasting
Требуется доменная учёткаДаНет (достаточно знать имя)
Целевые аккаунтыС SPNС DONT_REQ_PREAUTH
Event ID на DC4769 (enc type 0x17 = RC4, 0x11 = AES128, 0x12 = AES256; для AES детект по аномальному объёму TGS_REQ)4768
Hashcat mode-m 13100 (RC4), -m 19600 (AES128), -m 19700 (AES256)-m 18200 (RC4), -m 19800 (AES128), -m 19900 (AES256)
Типичный результат30-60% сервисных учёток ломаются за часыВстречается реже, но пароли обычно слабее

Если нашли десятки SPN-учёток - приоритизируйте те, что входят в привилегированные группы (смотрим через BloodHound). Нет смысла жечь GPU на учётку, которая ведёт в тупик.

Повышение привилегий Active Directory: ACL-атаки и делегирование Kerberos​

После получения первых учётных данных начинается самый творческий этап - privilege escalation. Каждый домен уникален, и пути повышения зависят от конкретных ошибок конфигурации, накопленных за годы. Тут шаблоны не работают - работает внимательность.

ACL-атаки: когда права выданы не тем​

Active Directory хранит Access Control Lists на каждый объект: пользователя, группу, OU, GPO. Типичные опасные права:
  • GenericAll - полный контроль над объектом. На пользователя = сброс пароля. На группу = добавление себя в неё. На компьютер = настройка RBCD.
  • GenericWrite - запись произвольных атрибутов. Позволяет установить SPN (для Kerberoasting привилегированного аккаунта) или модифицировать msDS-KeyCredentialLink (Shadow Credentials).
  • WriteDACL - право изменять сам ACL объекта. Атакующий выдаёт себе GenericAll и дальше - как выше.
  • ForceChangePassword - сброс пароля без знания текущего.
BloodHound автоматически маркирует эти рёбра в графе. Но кастомные Cypher-запросы помогают найти неочевидные цепочки: например, пользователь A имеет WriteDACL на группу B, члены которой имеют GenericAll на OU с Domain Admins. Такие цепочки из трёх-четырёх звеньев - самое вкусное.

Делегирование Kerberos: три вида, три вектора​

  • Unconstrained Delegation - машина хранит TGT всех аутентифицирующихся пользователей. Если через коэрцию (PetitPotam, PrinterBug) заставить DC аутентифицироваться на такую машину - его TGT попадёт в память. Дальше - DCSync.
  • Constrained Delegation - ограничена конкретным сервисом, но через S4U2Proxy + альтернативный сервис (alt-service) можно выйти за рамки.
  • Resource-Based Constrained Delegation (RBCD) - атакующий, контролирующий машинный аккаунт, настраивает msDS-AllowedToActOnBehalfOfOtherIdentity на целевом хосте (если есть GenericWrite) и запрашивает тикет для имперсонации администратора.
Все эти техники с пошаговыми цепочками и реальными примерами от GenericAll до DCSync разобраны в отдельном материале: Privilege Escalation в Active Directory: ACL-атаки, делегирование и цепочки от GenericAll до DCSync.

Pass-the-Hash и lateral movement: перемещение по сети без знания паролей​

Получив NTLM-хеш доменного пользователя (из дампа LSASS через Mimikatz или из SAM через reg save), атакующий аутентифицируется на другие хосты без расшифровки пароля. Это Pass-the-Hash - одна из фундаментальных техник lateral movement в Active Directory.

Инструменты lateral movement

ИнструментПротоколОсобенность
psexec.py (Impacket)SMBСоздаёт сервис на целевой машине, шумный (Event ID 7045)
wmiexec.py (Impacket)WMI/DCOMНе создаёт сервис, тише для EDR
smbexec.py (Impacket)SMBВременный сервис на каждую команду (Event ID 7045), характерный %COMSPEC% /Q /c с редиректом в named pipe
NetExec (наследник CrackMapExec)SMB/WinRM/LDAPМассовое выполнение команд, spray-проверка учёток
evil-winrmWinRM (HTTP/5985)Интерактивная PowerShell-сессия, загрузка файлов

В 2025 году вместо устаревшего CrackMapExec берите NetExec (nxc) - он активно поддерживается сообществом и умеет больше: модули для LDAP-перечисления, проверки LAPS-паролей, автоматического Kerberoasting. CrackMapExec, по сути, мёртв.

Что видит защитник​

Pass-the-Hash оставляет характерный след: событие 4624 с Logon Type 3 (Network) и типом аутентификации NTLM (не Kerberos). Массовые 4624 от одного аккаунта на множестве хостов за короткий промежуток - прямой индикатор lateral movement. EDR-решения (CrowdStrike, Defender for Endpoint) также детектируют обращения к LSASS.

Разбор каждого этапа с конкретными примерами - в гайде: Pass-the-Hash атака Active Directory: от NTLM-хеша до Domain Admin через lateral movement.

Атаки на контроллер домена: DCSync, Golden Ticket и Silver Ticket​

Когда путь к привилегированному аккаунту пройден - извлекаем секреты из базы Active Directory (NTDS.dit) и закрепляемся в домене.

DCSync атака​

DCSync эмулирует поведение контроллера домена, запрашивающего репликацию через MS-DRSR. Аккаунт атакующего должен иметь права Replicating Directory Changes и Replicating Directory Changes All - они есть у Domain Admins, Enterprise Admins и самих DC по умолчанию. Команда secretsdump.py -just-dc <domain>/<user>@<DC_IP> из Impacket выгружает все хеши NTLM, включая хеш krbtgt - ключ к Golden Ticket.

На стороне SOC DCSync порождает событие 4662 с обращением к 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 (GUID для DS-Replication-Get-Changes). Один из самых надёжных индикаторов - если у вас его нет в SIEM, добавьте прямо сейчас.

Golden Ticket​

Имея хеш krbtgt, атакующий генерирует TGT для любого пользователя домена с произвольным временем жизни и произвольными группами привилегий. Golden Ticket переживает смену паролей всех пользователей - пока не будет дважды сброшен пароль krbtgt (в корректном порядке с интервалом, превышающим MaxTicketAge). На практике мало кто это делает правильно.

Silver Ticket​

В отличие от Golden Ticket, Silver Ticket не обращается к KDC - он генерируется локально с хешем машинного аккаунта целевого сервиса. Менее заметен, но ограничен конкретным сервисом (CIFS, HTTP, MSSQLSvc).

Практический разбор всех трёх техник с примерами Impacket и Mimikatz - в материале: Атаки на контроллер домена Active Directory: DCSync, Golden Ticket и Silver Ticket на практике.

AD CS атаки: эскалация привилегий через службы сертификатов​

Active Directory Certificate Services (AD CS) - одна из самых недооценённых поверхностей атаки в корпоративных доменах. Если в инфраструктуре развёрнут Enterprise CA, атакующий может получить сертификат, позволяющий аутентифицироваться как Domain Admin - и всё это без единого обращения к DC за Kerberos-тикетом. Красота.

Классификация ESC-уязвимостей

SpecterOps систематизировали атаки на AD CS в виде классов ESC (Escalation Scenario). Наиболее критичные:
  • ESC1 - шаблон сертификата позволяет указать произвольный SAN (Subject Alternative Name). Атакующий запрашивает сертификат с SAN Administrator@domain.com и получает аутентификационный сертификат Domain Admin. Просто так.
  • ESC8 - Web Enrollment endpoint AD CS доступен по HTTP без принудительного HTTPS. Позволяет relay NTLM-аутентификацию на CA и получить сертификат от имени жертвы.
  • ESC11 - аналогичен ESC8, но relay через RPC вместо HTTP.
Для обнаружения и эксплуатации - Certipy. Он автоматически перечисляет шаблоны, определяет уязвимые конфигурации и выполняет запросы сертификатов.

Связь с коэрцией: по данным RedTeam Pentesting (2025), ESC8 и ESC11 - ключевые relay-цели при authentication coercion. Атакующий через PetitPotam (CVE-2021-36942, CVSS 7.5) принуждает DC аутентифицироваться, relay-ит сессию на CA и получает сертификат от имени DC. Дальше - DCSync через PKINIT.

Полный практический гайд, по каждому классу ESC с командами Certipy: AD CS атаки эскалация привилегий: практический гайд по ESC1–ESC13 с Certipy.

Coercion-техники 2025: PetitPotam, PrinterBug и обход новых митигаций​

Authentication coercion - принуждение Windows-хоста аутентифицироваться на машину атакующего - остаётся одним из самых мощных векторов в пентесте Active Directory. По данным RedTeam Pentesting (блог от июня 2025), coercion с любым низкопривилегированным доменным аккаунтом обычно позволяет получить полный административный доступ практически к произвольным хостам и серверам Windows.
📚 Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
У каждой из этих уязвимостей рабочие PoC в публичном доступе. На реальных engagement-ах проверяйте их первыми - они дают быстрый путь к DC.

AD Pentest инструменты: арсенал Red Team оператора в 2025 году​

Инструментарий для пентеста Active Directory стабилизировался вокруг нескольких проектов. Ниже - карта по этапам kill chain:

Разведка и перечисление

  • BloodHound CE + SharpHound - построение графа атак. SharpHound собирает данные через LDAP и Windows API; BloodHound CE (Neo4j для графовой БД, PostgreSQL для метаданных) визуализирует пути. Без этого инструмента пентест AD - как хирургия вслепую.
  • ldapdomaindump - выгрузка AD-объектов через LDAP в HTML/JSON. Быстрое перечисление без GUI
  • enum4linux-ng - перечисление через SMB/RPC: пользователи, группы, шары, политика паролей
  • PingCastle - сканер здоровья AD. Генерирует отчёт с оценкой рисков - отлично ложится в отчёт клиенту

Эксплуатация и lateral movement​

  • Impacket - набор Python-скриптов для работы с Windows-протоколами: secretsdump.py (DCSync, SAM dump), psexec.py / wmiexec.py (remote execution), GetUserSPNs.py (Kerberoasting), ntlmrelayx.py (relay). Рабочая лошадка каждого пентеста.
  • NetExec (nxc) - замена CrackMapExec. Массовое выполнение команд, проверка учёток, автоматизация spray-атак
  • Rubeus - C#-инструмент для атак на Kerberos: AS-REP Roasting, Kerberoasting, S4U abuse, Pass-the-Ticket, Overpass-the-Hash
  • Certipy - перечисление и эксплуатация AD CS (ESC1–ESC13)
  • Responder - отравление LLMNR/NBT-NS и захват NTLMv2-хешей

Пост-эксплуатация​

  • Mimikatz - извлечение кредов из памяти (LSASS), генерация Golden/Silver Ticket, DCSync
  • Hashcat - офлайн-перебор хешей (NTLMv2: -m 5600, NTLM: -m 1000, Kerberoast: -m 13100, AS-REP: -m 18200)
Минимальный пайплайн - от начала до проверки наличия пути к DA:
Bash:
# 1. Перечисление SPN-учёток (Kerberoasting)
GetUserSPNs.py -request -dc-ip 10.0.0.1 domain.local/user:Password1

# 2. Сбор данных для BloodHound (SharpHound из Linux)
bloodhound-python -c All -d domain.local -u user -p Password1 -ns 10.0.0.1

# 3. Массовая проверка: где текущий юзер - локальный админ
nxc smb 10.0.0.0/24 -u user -p Password1 --local-auth

Лабораторная среда для отработки атак на Active Directory​

Без лабораторной среды осваивать атаки на AD - как учиться плавать по книжке. Утонешь на первом же реальном проекте.

GOAD (Game of Active Directory)​

Проект Orange Cyberdefense, разворачивается через Vagrant + Ansible. Несколько доменов с trust-отношениями, предустановленные misconfiguration (Kerberoasting, RBCD, AD CS, LLMNR), уязвимые SPN-учётки и GPO. Идеален для отработки полного kill chain. Я начинал именно с него - рекомендую.

Требования: 16+ ГБ RAM, VirtualBox или VMware, ~60 ГБ дискового пространства.

Самописный стенд​

Минимальный набор: Windows Server 2019/2022 (DC) + 1-2 Windows 10/11 (workstations) + Kali Linux. Поднимается за час: Install-WindowsFeature AD-Domain-Services; Install-ADDSForest, создание OU, пользователей с SPN, намеренные misconfiguration (Unconstrained Delegation на одном хосте, слабый пароль на SPN-учётке, шаблон AD CS с ESC1). Зато потом можно ломать сколько угодно и в любом порядке.

Онлайн-площадки​

HackTheBox Pro Labs (Dante, Offshore, RastaLabs) и TryHackMe AD-комнаты - готовые среды без необходимости разворачивать инфраструктуру локально.

Почему защита AD не работает без понимания атак: взгляд Red Team​

Active Directory - технология с 25-летней историей. Открытый LDAP для всех доменных пользователей, транзитивные trust-отношения, RC4 как fallback-шифрование - всё это было нормой в 2000 году. Сегодня это поверхность атаки.

Microsoft последовательно закрывает вектора: EPA для LDAP channel binding, AES-only Kerberos, Windows Server 2025 с обязательной подписью SMB. Но миграция занимает годы: в реальных средах я до сих пор встречаю Windows Server 2012 R2 контроллеры, SMB Signing Disabled и сервисные учётки с паролями, не менявшимися с 2016 года.

Тренд 2025 года - смещение фокуса на AD CS и coercion-техники. Если раньше основной путь к DA шёл через Kerberoasting + credential reuse, то сейчас цепочка «PetitPotam → relay на CA (ESC8) → сертификат DC → DCSync через PKINIT» работает быстрее и оставляет меньше артефактов в классических SIEM-правилах.

Что делать прямо сейчас:
  1. Запустите PingCastle на своём домене - бесплатно, за 5 минут получите карту рисков.
  2. Проверьте, отключены ли LLMNR и NBT-NS через GPO.
  3. Ревизуйте SPN-учётки: сколько из них имеют пароли старше 1 года?
  4. Проверьте AD CS: certipy-ad find -u user@domain.local -p pass -dc-ip <DC> -vulnerable -stdout покажет уязвимые шаблоны.
Если хотя бы один пункт выявит проблему - значит, полноценный пентест Active Directory вашей инфраструктуре необходим. И чем раньше, тем дешевле.

Вопрос к читателям​

В последних engagement-ах я всё чаще вижу, что классический Kerberoasting через GetUserSPNs.py -request с RC4-тикетами блокируется AES-only политиками Kerberos. При этом Rubeus kerberoast /tgtdeleg позволяет обойти ограничение, запросив AES-тикет через TGT delegation trick. Какой подход вы используете на engagement-ах, где DC настроен на [URL='https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-kile/6cfc7b50-11ed-4b4d-846d-6f08f0812919']msDS-SupportedEncryptionTypes[/URL] только с AES128/AES256? Работает ли у вас связка Rubeus kerberoast /enctype:aes256 /tgtdeleg /outfile:hashes.txt + Hashcat -m 19700 для AES-тикетов, и какова реальная скорость перебора на вашем железе по сравнению с RC4 (-m 13100)?
 
Последнее редактирование модератором:
  • Нравится
Реакции: tatagaspadar
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab