В большинстве внутренних пентестов путь от учётной записи рядового пользователя до Domain Admin занимает от 4 до 48 часов. Не потому что инфраструктура «дырявая» - а потому что Active Directory проектировалась для удобства администрирования, а не для противодействия атакующему с валидным доменным аккаунтом. Один забытый SPN на сервисной учётке с паролем
Summer2024!, одна кривая ACL, выданная три года назад «на время миграции» - и граф BloodHound рисует прямую линию к KRBTGT. У меня рекорд - 22 минуты от первого LDAP-запроса до хеша krbtgt. Не хвастаюсь - просто показываю, насколько типичная корпоративная AD беззащитна перед тем, кто знает, куда смотреть. Эта статья - карта всех этапов такого пути.Навигация по статье и кластеру
| # | Этап атаки | Подробный разбор |
|---|---|---|
| 1 | Разведка и перечисление домена | Пентест Active Directory: полный гайд от разведки до Domain Admin в 2025 |
| 2 | Построение графа атак через BloodHound | BloodHound Active Directory: разведка домена, построение графа атак и эксплуатация ACL |
| 3 | ACL-атаки и эскалация через делегирование | Privilege Escalation в Active Directory: ACL-атаки, делегирование и цепочки от GenericAll до DCSync |
| 4 | Pass-the-Hash и lateral movement | Pass-the-Hash атака Active Directory: от NTLM-хеша до Domain Admin через lateral movement |
| 5 | DCSync, Golden Ticket, Silver Ticket | Атаки на контроллер домена Active Directory: DCSync, Golden Ticket и Silver Ticket на практике |
| 6 | Атаки на AD CS (ESC1–ESC13) | AD CS атаки эскалация привилегий: практический гайд по ESC1–ESC13 с Certipy |
| 7 | Харденинг и защитные меры | Харденинг Active Directory: LAPS, LLMNR и NBT-NS - три меры против 80% внутренних атак |
Ниже - обзор каждого этапа с ключевыми техниками, инструментами и практическими ориентирами. Каждая секция ссылается на детальный 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.
Чеклист: минимальная разведка 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.
Что детектирует SOC
Responder генерирует характерный сетевой трафик: ответы на LLMNR/NBT-NS с IP атакующего. Правила в SIEM на «новый responder в сегменте» - тривиальны. Но на практике мониторинг этих протоколов отсутствует в большинстве инфраструктур. Просто никто не смотрит.О защитных мерах - отключение LLMNR/NBT-NS через GPO и настройка LAPS для ротации локальных паролей - разобрано в материале Харденинг Active Directory: LAPS, LLMNR и NBT-NS - три меры против 80% внутренних атак.
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
| Параметр | Kerberoasting | AS-REP Roasting |
|---|---|---|
| Требуется доменная учётка | Да | Нет (достаточно знать имя) |
| Целевые аккаунты | С SPN | С DONT_REQ_PREAUTH |
| Event ID на DC | 4769 (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 - сброс пароля без знания текущего.
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) и запрашивает тикет для имперсонации администратора.
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-winrm | WinRM (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.
Связь с коэрцией: по данным 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 или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
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)
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-правилах.
Что делать прямо сейчас:
- Запустите PingCastle на своём домене - бесплатно, за 5 минут получите карту рисков.
- Проверьте, отключены ли LLMNR и NBT-NS через GPO.
- Ревизуйте SPN-учётки: сколько из них имеют пароли старше 1 года?
- Проверьте AD CS:
certipy-ad find -u user@domain.local -p pass -dc-ip <DC> -vulnerable -stdoutпокажет уязвимые шаблоны.
Вопрос к читателям
В последних 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)?
Последнее редактирование модератором: