![]() |
https://forum.antichat.xyz/attachmen...ccc9f26ad8.png
Большинство русскоязычных материалов по пентесту Active Directory обрывается на стадии разведки или превращается в безликий чек-лист без единой команды. Знакомо? Я провёл десятки внутренних пентестов, где путь от доменного пользователя до Domain Admin занимал от пятнадцати минут до двух дней - и каждый раз цепочка была воспроизводима. Пятнадцать минут - это не хвастовство, а показатель того, насколько типовые мисконфиги до сих пор живут в продакшене. Здесь разберу полный цикл AD exploitation (для общей карты техник и обзора инструментов - пентест Active Directory от разведки до Domain Admin):от первого nmap-скана до DCSync, с конкретными командами, объяснением флагов и разбором ошибок, на которых спотыкаются даже опытные пентестеры. Лабораторная среда: что поднять перед началом Прежде чем запускать BloodHound на продакшен-домене клиента, отработайте цепочку на стенде. Лаба, которую я использую - минимальная, но покрывает все нужные сценарии:
Код: Код:
# Включаем LLMNR (по умолчанию включён, но убедимся)Фаза 1 - AD разведка: инструменты и техники перечисления Сетевая разведка: находим контроллер домена Первое действие после подключения к внутренней сети - определить, где стоит Domain Controller. Контроллер домена слушает характерный набор портов, и nmap с правильными флагами найдёт его за секунды: Bash: Код:
# Быстрый скан подсети на ключевые порты ADДополнительная верификация через DNS: Bash: Код:
# Запрос SRV-записей - работает даже без учётных данныхДаже до получения первого пароля можно вытянуть массу информации. В black-box сценарии начинаем с проверки анонимного доступа к LDAP и SMB-шарам - удивительно, как часто это работает. Bash: Код:
# Проверка анонимного LDAP bindКод:
SYSVOLКод:
NETLOGONКод:
SYSVOLКод:
Groups.xmlКод:
gpp-decryptBloodHound: строим граф атаки Вот где пентест Active Directory превращается из набора команд в стратегию. BloodHound визуализирует связи между объектами домена и автоматически находит пути эскалации привилегий. На практике это выглядит так: низкопривилегированный пользователь может записывать данные в сервисный аккаунт из группы Backup Operators, а тот ведёт напрямую к Domain Admin. Руками такую цепочку через три-четыре промежуточных объекта - хрен найдёшь. Сбор данных - коллектором SharpHound (с Windows-хоста) или Код:
bloodhound-pythonBash: Код:
# Сбор данных с Linux (нужны учётные данные доменного пользователя)Код:
-c All
Фаза 2 - Получение первого доступа в домене LLMNR/NBT-NS Poisoning с Responder Классика active directory pentest, которая работает в большинстве корпоративных сетей до сих пор. Техника маппится на MITRE ATT&CK T1557.001 (LLMNR/NBT-NS Poisoning and SMB Relay) - тактики Credential Access и Collection. Суть: Windows-машины при неудачном DNS-резолве отправляют широковещательные запросы LLMNR/NBT-NS. Responder отвечает на них и перехватывает NTLMv2-хеши. Тупо сидим и ждём, пока кто-то опечатается в имени шары. Bash: Код:
# Запуск Responder на интерфейсе eth0Bash: Код:
# Режим 5600 = NTLMv2Bash: Код:
# Найти хосты без SMB SigningКогда Responder не приносит результатов (сеть сегментирована, LLMNR отключён), переходим к password spraying. Главное - не заблокировать аккаунты, иначе утром вас будет искать не только SOC: Bash: Код:
# Сначала получаем парольную политику (netexec - активный форк архивированного crackmapexec)Код:
Company + сезон + годКод:
Winter2025!Код:
Summer2024!AS-REP Roasting без учётных данных Если BloodHound или перечисление LDAP показали пользователей с отключённой Kerberos Pre-Authentication, можно запросить TGT и взломать его офлайн: Bash: Код:
# Через Impacket (без учётных данных - достаточно знать имена пользователей)Фаза 3 - Privilege Escalation в Active Directory Kerberoasting: атака на сервисные аккаунты Kerberoasting - одна из самых результативных атак при AD exploitation. Любой доменный пользователь может запросить TGS-тикет для сервисного аккаунта с SPN, а тикет зашифрован хешем пароля этого аккаунта. Расшифровал - получил пароль. Bash: Код:
# Через Impacket (нужны любые доменные учётные данные)Обратите внимание на поле Код:
PasswordLastSetКод:
Service123!ACL Abuse: эскалация через права на объекты AD Граф BloodHound часто показывает неочевидные пути через ACL-привилегии. Вот наиболее опасные права и что с ними делать: ПравоЧто даёт атакующемуКак эксплуатироватьGenericAllПолны й контроль над объектомСброс пароля, запись SPN, добавление в группуGenericWriteЗапись произвольных атрибутовЗапись SPN → Kerberoasting целевого аккаунтаWriteDaclИзменение ACL объектаВыдать себе GenericAll, затем злоупотребитьForceChangePasswordСб ос пароля без знания текущегоПрямой сброс через net rpcWriteOwnerСмена владельца объектаСтать владельцем → изменить ACL Пример эскалации через GenericWrite - ставим целевому пользователю SPN и делаем Targeted Kerberoasting: Bash: Код:
# Через PowerView (из-под скомпрометированного пользователя с правом GenericWrite)Pass-the-Hash атака через Impacket Pass-the-Hash - техника, при которой NTLM-хеш используется вместо пароля для аутентификации. Получили хеш (например, из дампа LSASS на скомпрометированном хосте) - ломать его не надо, можно сразу идти дальше. Bash: Код:
# Дамп NTLM-хешей из памяти LSASS (нужны локальные админские права)Код:
psexec.pyBash: Код:
# wmiexec - не создаёт сервис, работает через WMIКод:
psexec.pyКод:
wmiexec.pyКод:
smbexec.pyКод:
wmiexecPass-the-Ticket с Rubeus Если работаете с Windows-хоста внутри домена, Rubeus позволяет извлекать и инжектить Kerberos-тикеты: Код: Код:
# Извлечение всех тикетов из памяти (требует привилегий)Фаза 5 - Domain Dominance: DCSync и критические CVE DCSync атака - получение всех хешей домена DCSync - атака, при которой злоумышленник имитирует контроллер домена и запрашивает репликацию паролей. Для этого нужны права Код:
Replicating Directory ChangesКод:
Replicating Directory Changes AllBash: Код:
# DCSync через secretsdump (Impacket)Код:
krbtgtBash: Код:
# Создание Golden Ticket через ImpacketПеред эксплуатацией мисконфигов всегда проверяю, не уязвим ли домен к известным CVE. Ниже - те, что я проверяю на каждом engagement'е: Zerologon (CVE-2020-1472) - NVD содержит только CNA-оценку от Microsoft: CVSS 5.5 (MEDIUM), вектор: Код:
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:NКод:
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HPrintNightmare (CVE-2021-34527) - CVSS 8.8 (HIGH), вектор: Код:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HPetitPotam (CVE-2021-36942 / CVE-2022-26925) - CVE-2021-36942: CVSS 7.5 (HIGH), Windows LSA Spoofing - частичный патч для техники PetitPotam, закрывающий вызов EfsRpcOpenFileRaw; другие EFS RPC функции могут оставаться доступными. CVE-2022-26925: CVSS 8.1 (HIGH), вектор: Код:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HNoPac (CVE-2021-42278 + CVE-2021-42287) - связка из двух уязвимостей, обе с CVSS 7.5 (HIGH), вектор: Код:
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:HCertifried (CVE-2022-26923) - CVSS 8.8 (HIGH), вектор: Код:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HBlueKeep (CVE-2019-0708) - не AD-специфичная, но полезна для initial access/lateral movement. CVSS 9.8 (CRITICAL), вектор: Код:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSMBGhost (CVE-2020-0796) - не AD-специфичная, но полезна для initial access/lateral movement. CVSS 10.0 (CRITICAL), вектор: Код:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HПроверка на уязвимости: Bash: Код:
# Zerologon - проверка через скрипт Secura (https://github.com/SecuraBV/CVE-2020-1472)Сжатая версия всего, что описано выше, плюс моменты, которые часто упускают: ФазаДействиеИнструментПри оритетРазведкаСкан портов 88, 389, 445nmapВысокийРазведкаПеречи ление пользователейenum4linux-ng, KerbruteВысокийРазведкаСбор данных для графа атакиBloodHound + SharpHoundВысокийРазведкаПрове рка парольной политикиNetExec --pass-polСреднийInitial AccessLLMNR/NBT-NS PoisoningResponderВысокийInitial AccessPassword SprayingNetExecСреднийInitial AccessAS-REP Roastingimpacket-GetNPUsersСреднийInitial AccessПроверка критических CVEMetasploit, PoC-скриптыВысокийPrivilege EscalationKerberoastingimpacket-GetUserSPNsВысокийPrivilege EscalationACL Abuse по графу BloodHoundPowerView, ImpacketВысокийPrivilege EscalationПоиск паролей в SYSVOL/GPPgpp-decrypt, smbclientСреднийPrivilege EscalationUnconstrained Delegation abuseRubeus monitorСреднийLateral MovementPass-the-Hashimpacket-psexec / wmiexecВысокийLateral MovementPass-the-TicketRubeus pttСреднийLateral MovementПоиск сессий DA на хостахBloodHound, NetExecВысокийDomain DominanceDCSyncimpacket-secretsdumpВысокийDomain DominanceGolden Ticketimpacket-ticketerПо необходимостиПост-эксплуатацияДамп NTDS.DITimpacket-secretsdumpПо необходимости Рекомендации по защите от эскалации привилегий Каждый вектор атаки из этого гайда имеет конкретные контрмеры. Вот что реально работает - проверено на десятках engagement'ов: Против LLMNR/NBT-NS Poisoning: отключите LLMNR через GPO ( Код:
Computer Configuration → Administrative Templates → Network → DNS Client → Turn off multicast name resolution = EnabledПротив Kerberoasting: используйте групповые управляемые сервисные аккаунты (gMSA) с автоматической ротацией 120-символьных паролей. Для обычных сервисных аккаунтов - пароли минимум 25 символов. Мониторьте запросы TGS для аккаунтов с SPN (Event ID 4769 с типом шифрования 0x17 = RC4). Против DCSync: регулярно аудируйте права Код:
Replicating Directory ChangesКод:
Replicating Directory Changes AllКод:
1131f6aa-9c07-11d1-f79f-00c04fc2dcd2Код:
1131f6ad-9c07-11d1-f79f-00c04fc2dcd2Код:
89e95b76-444d-4c62-991a-0facbeda640cПротив Pass-the-Hash: внедрите Credential Guard (Windows 10+/Server 2016+), ограничьте привилегированные учётные записи tier-моделью (не логиньтесь DA-аккаунтом на рабочие станции - серьёзно, это до сих пор самая частая ошибка), используйте LAPS для управления паролями локальных администраторов. Заключение Пентест Active Directory - это цепочка, где каждый шаг создаёт возможность для следующего. Responder ловит хеш → Hashcat извлекает пароль → BloodHound показывает путь через ACL к сервисному аккаунту → Kerberoasting даёт хеш привилегированного аккаунта → lateral movement через Impacket приводит на хост с сессией Domain Admin → DCSync завершает цепочку. Начните с лабораторного стенда - конфиг в начале статьи поднимается за час. Отработайте каждую фазу отдельно, затем объедините в полную цепочку. Если вы дочитали до этого места и ещё не развернули лабу - сделайте это сегодня. Потренировавшись на кошках, будете чувствовать себя увереннее на реальном engagement'е. Теория без практики в AD-пентесте не стоит ничего. |
Приветствую ув. форумчане. Поделитесь мнением, как вы проводите проверку одной или нескольких рабочих станций перед проведение редтим мероприятий? Например, стоит задача скомпроментировать 1 рабочую станцию, вам как пентестеру выдается низкая или высока УЗ в домене. Ну и понятное дело, вслепую никто не будет бить этот хост, изначально нужно проверить что ОС, локализация, подходит она под ваша метод проверки или нет и т.д. Вот мне было бы обсудить кто какими методами пользуется и что проверяете. При этом, желательно чтобы siem не горела как ёлка.
|
Первым делом гляну, чтобы ОС и локализация совпадали с векторм атаки, а сетевая активность была минимальной — чтобы не светиться в SIEM. Часто просто делаю быстрый скан и проверяю, доступны ли базовые сервисы и политики — это помогает сузить варианты без лишнего шума.
|
Вспоминаю, лет 5 назад AD-пентест был тяжелее — много ручного перебора и почти без автоматизации. Сейчас BloodHound и Impacket сильно упростили разведку и эскалацию привилегий, цепочки ищутся быстрее, а знание CVE даёт крутой фреймворк для взлома. Сканить по портам 88 и 389 — классика, раньше даже не всегда знали, что эти порты главное — теперь просто будничная процедура.
|
Спасибо за такое полное разъяснение! Особенно полезно про сбор данных через BloodHound и тыкание в права ACL — раньше даже не думал, что так можно качать доменные аккаунты. Пока только пробую лабу поднять, но уже видно, что с таким подходом всё понятней и структурированней становится.
|
Круто, что в теме всё так подробно расписано и с реальными командами — именно такой гайд и нужен новичкам, чтобы не теряться. Лаба с минимальным набором серверов — отличная идея, чтобы понять механику без лишней сложнятины. BloodHound и ACL abuse реально много проясняют, особенно когда пытаешься найти цепочку от простого юзера до админа. С таким подходом сразу видишь, как всё связано.
|
Крутая тема, прям как учебник с живыми боями по Active Directory! Особенно радует, что не просто скучные списки, а реальные команды и сценарии. Лаба с минималкой — прям идеал, чтобы не убиться от лишних заморочек, а сразу понять, что к чему. Короче, спасибо за такой подробный и чёткий разбор, заходи — разберёмся вместе!
|
По мне, самый простой способ проверить WS — быстрый скан портов и проверка версии ОС через WMI или SMB. Если ОС старая и патчи не ставят, уже классика для дальнейших шагов. УЗ снижаю, чтобы не шуметь, и слежу, чтоб в логах особо не светиться. Иногда хватает просто посмотреть группы, куда входит юзер, чтобы понять, есть ли смысл биться за эту машину.
|
Сам пока только разбираюсь, но реально BloodHound сильно облегчает поиск цепочек, на которые раньше ушло бы много времени. Минимум лишнего шума и быстро видишь, куда копать дальше — очень радует такая прозрачность в работе с AD.
|
| Время: 23:13 |