Домашняя лаборатория Active Directory: настройка AD-полигона на двух виртуалках за один вечер

Мой первый AD-полигон собирался четыре часа вместо обещанного одного. Сорок минут сожрала единственная ошибка в DNS — в поле «Предпочитаемый DNS-сервер» на клиентской машине стоял 8.8.8.8 вместо адреса контроллера домена. Ещё двадцать — сетевой адаптер VirtualBox, который по умолчанию стоит в NAT, и виртуалки просто не видели друг друга. На Reddit r/homelab вопрос «why can’t my client find the domain» встречается в каждом втором треде про AD home lab. Грабли одни и те же. В этой статье — пошаговая сборка домашней лаборатории Active Directory на двух VM без единого потраченного рубля: с разбором каждого поля, каждой настройки и каждого места, где новичок застревает.
Зачем нужна домашняя лаборатория для пентеста Active Directory
Active Directory (AD) — служба каталогов Microsoft, которая управляет пользователями, компьютерами и правами доступа в корпоративных сетях. Если коротко: AD — это мозг почти любой офисной инфраструктуры. Используется в подавляющем большинстве средних и крупных компаний. Внутренний пентест почти всегда проходит в AD-среде: по данным IBM X-Force Threat Intelligence Index 2025, атаки с использованием действительных учётных данных выросли на 71% за год, и значительная часть этих кредов добывается именно из AD.
Техники вроде Kerberoasting (офлайн-перебор пароля сервисной учётки через Kerberos-билет), Pass the Hash (в классификации MITRE ATT&CK — T1550.002, тактика Lateral Movement), дамп учётных данных из LSASS Memory (T1003.001, тактика Credential Access) — всё это требует живого домена для практики. MITRE ATT&CK — открытая база тактик и техник атак; T-коды вроде T1550.002 — её идентификаторы, по ним удобно искать описание техники, детекты и примеры использования. Сканировать чужие системы без разрешения — уголовное преступление. Домашний полигон для изучения пентеста Active Directory снимает этот риск: все машины ваши, трафик не покидает виртуальный коммутатор.
Требования к окружению перед настройкой домашнего AD-полигона
Проверьте до первого шага. Без SSD виртуалки будут «фризить» при каждой загрузке, а без аппаратной виртуализации не запустится ни один гипервизор.
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| RAM хоста | 8 ГБ (будет тесно, потребуется закрыть браузер) | 16 ГБ |
| Свободное место на SSD | 80 ГБ | 120 ГБ |
| Процессор | 4 ядра, Intel VT-x или AMD-V | 6+ ядер |
| ОС хоста | Windows 10/11, Linux, macOS | Любая |
| Гипервизор | VirtualBox 7.x или VMware Workstation Pro | VMware Workstation Pro |
Если при запуске VM вылетает ошибка «VT-x is disabled in the BIOS» — перезагрузите машину, войдите в BIOS/UEFI (обычно клавиша F2, Del или F12 при загрузке), найдите раздел CPU Configuration или Advanced и включите Intel Virtualization Technology (для AMD — SVM Mode). Без этого виртуализация для тестирования AD работать не будет.
Где скачать Windows Server Evaluation бесплатно
Microsoft раздаёт полнофункциональные evaluation-версии через Evaluation Center — microsoft.com/en-us/evalcenter/. «Evaluation» означает ограничение по времени (180 дней для Server, 90 дней для Windows 10/11 Enterprise), но не по функциям — всё работает как в платной версии.
Скачайте два ISO-образа:
- Windows Server 2019 или 2022 — для контроллера домена. Размер ~5 ГБ.
- Windows 10 или 11 Enterprise Evaluation — для рабочей станции клиента. Размер ~5-6 ГБ.
При скачивании Microsoft попросит заполнить форму с email и данными о компании. Рабочий адрес не обязателен — подойдёт Gmail. После заполнения выберите язык (рекомендую English — по англоязычным названиям проще гуглить решения проблем) и нажмите Download.
Бесплатная лицензия Windows Server для лаборатории работает ровно так же, как платная. Единственное отличие — таймер. Как обойти истечение срока — в разделе про снапшоты.
Гипервизор VirtualBox или VMware для тестовой среды Active Directory
| Критерий | VirtualBox 7.x | VMware Workstation Pro |
|---|---|---|
| Стоимость | Бесплатно | Бесплатно для личного использования (с мая 2024, Broadcom — проверьте актуальный статус на broadcom.com) |
| Установка | 5 минут, Windows/Linux/macOS | 10 минут, Windows/Linux |
| Стабильность при 3+ VM | Средняя (случаются подвисания) | Высокая |
| Сетевые режимы | NAT, Bridged, Internal, Host-Only | NAT, Bridged, Host-Only, Custom |
| Импорт OVA (VulnHub/HTB) | Нативно | Нативно |
Если раньше не работали с виртуализацией — берите VirtualBox: установка очевидная, документации на русском полно, ошибки гуглятся по первой ссылке. Когда при четырёх-пяти VM начнутся зависания — тогда переходите на VMware. Не раньше.
Все шаги далее показаны на VirtualBox. Для VMware отличия минимальны и отмечены отдельно.
Создаём виртуальные машины: AD lab на двух виртуальных машинах
VM 1 — контроллер домена (Windows Server)
В VirtualBox нажмите «Создать» (New). Заполните поля:
- Имя:
DC01 - Тип: Microsoft Windows
- Версия: Windows 2019 (64-bit) или Windows 2022 (64-bit)
- RAM: 2048-4096 МБ. Абсолютный минимум для Windows Server 2019 — 2 ГБ. Если на хосте 16 ГБ — ставьте 4 ГБ, Server Manager будет открываться за секунды, а не за полминуты.
- Жёсткий диск: создайте VDI, динамически выделяемый, 50 ГБ. «Динамически выделяемый» — файл на хосте займёт не 50 ГБ сразу, а будет расти по мере заполнения. Реально потребуется 15-20 ГБ.
После создания VM: Настройки → Носители (Storage) → пустой диск под «Контроллер IDE» → справа иконка диска → «Выбрать образ диска» → укажите скачанный ISO Windows Server.
VM 2 — рабочая станция (Windows 10/11)
Тот же процесс: имя CLIENT01, тип Microsoft Windows, версия Windows 10 (64-bit). RAM — 2-4 ГБ, диск — 50 ГБ VDI, динамический. Подключите ISO Windows 10/11 Enterprise Evaluation через настройки Storage.
Сетевые адаптеры — место, где ломается 80% первых сборок
По умолчанию VirtualBox ставит адаптер в режим NAT. NAT (Network Address Translation) даёт VM доступ в интернет через хост, но VM не видят друг друга напрямую. Для AD это провал: клиент обязан видеть контроллер домена по сети.
Решение — Internal Network (Внутренняя сеть). Это изолированная сеть, в которой VM общаются только между собой:
- Выключите обе VM.
- Для каждой VM: Настройки → Сеть → Адаптер 1 → Тип подключения: Внутренняя сеть (Internal Network). Имя сети введите
intnet— одинаковое для обеих VM. Разные имена = разные сегменты = машины друг друга не видят. - Нужен интернет на VM (обновления, скачивание инструментов)? Включите Адаптер 2 → тип NAT.
В VMware аналог: Host-Only сеть (VMnet1) для связи между VM и NAT (VMnet8) для интернета.
Как развернуть Active Directory на виртуалке: установка и настройка контроллера домена
Запустите DC01. Начнётся установка Windows Server. Ключевые моменты:
- На экране выбора версии выберите Windows Server 2019 Standard Evaluation (Desktop Experience). Desktop Experience — версия с графическим интерфейсом (рабочий стол, мышь, окна). Без этой пометки получите Server Core — только командная строка. Для первого полигона GUI сильно удобнее.
- Тип установки — «Выборочная» (Custom), поскольку ставите на чистый диск.
- Пароль администратора —
P@ssw0rd1или любой простой. Это тестовая среда, сложный пароль будет только мешать при каждом входе.
После установки и входа (для Ctrl+Alt+Delete в VirtualBox: меню Input → Keyboard → Insert Ctrl-Alt-Del) откроется Server Manager — центральная консоль управления сервером.
Теперь зададим статический IP-адрес. В Internal Network нет DHCP (автоматической раздачи IP-адресов), и без ручной настройки машины не получат адреса:
На DC01: Центр управления сетями → Изменение параметров адаптера → правая кнопка по Ethernet → Свойства → IPv4 → «Использовать следующий IP-адрес»:
- IP:
10.0.0.1 - Маска:
255.255.255.0 - DNS:
127.0.0.1(DC будет DNS-сервером для самого себя)
Установка роли AD DS (Active Directory Domain Services — собственно служба каталогов, которая превращает обычный сервер в контроллер домена):
- Server Manager → «Add roles and features» → Next → Role-based → выберите текущий сервер → отметьте Active Directory Domain Services → Add Features → Next → Install.
- После установки в Server Manager появится жёлтый треугольник. Нажмите на него → Promote this server to a domain controller.
- В мастере: «Add a new forest» → Root domain name:
lab.local→ пароль DSRM (для восстановления — запомните, можно тот жеP@ssw0rd1) → Next на каждом экране → Install. - Сервер перезагрузится. При входе имя пользователя изменится на
LAB\Administrator— домен создан, настройка контроллера домена на виртуалке завершена.
DNS — главная ловушка при настройке домашнего AD-полигона
При промоции (повышении до DC) автоматически ставится роль DNS Server. Этот DNS обслуживает зону lab.local — без него клиентские машины не найдут контроллер домена по имени.
Ошибка, которая стоила мне сорока минут: на CLIENT01 в качестве DNS-сервера стоял 8.8.8.8 (публичный DNS Google). Google DNS понятия не имеет про зону lab.local, поэтому при попытке присоединить клиент к домену выскакивала ошибка «Не удалось связаться с контроллером домена». Решение: DNS-сервер клиентской машины всегда указывает на IP контроллера домена. Не рекомендация — обязательное условие работы AD.
Подключаем клиент к домену: пошаговая настройка
Запустите CLIENT01, установите Windows 10/11 (Custom install, локальная учётка, пароль — любой простой). После входа настройте IP:
- IP:
10.0.0.2 - Маска:
255.255.255.0 - Шлюз:
10.0.0.1 - DNS:
10.0.0.1(адрес DC01 — не Google, не Яндекс, только DC!)
Проверка связности: на CLIENT01 откройте cmd, выполните ping 10.0.0.1. Ожидаемый результат — ответы «Reply from 10.0.0.1». Если «Request timed out» — убедитесь, что обе VM в одной Internal Network с именем intnet. Если ping не проходит даже при правильной сети, на Windows Server может блокировать файрвол. Для тестовой среды его допустимо отключить:
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
Выполните в PowerShell от администратора на DC01.
Проверка DNS: выполните nslookup lab.local на CLIENT01. Ожидаемый ответ — адрес 10.0.0.1. Если «DNS request timed out» — DNS-сервер клиента указывает не на DC.
Присоединение к домену:
- Параметры → Система → О программе → «Переименование компьютера (доп. параметры)» → Изменить.
- Переключите с «Рабочая группа» на «Домен» → введите
lab.local→ OK. - Запрос учётных данных:
LAB\Administrator+ пароль DC. - Сообщение «Добро пожаловать в домен lab.local» = успех. Перезагрузите CLIENT01.
Если вместо приветствия — ошибка «Не удалось связаться с контроллером домена» — в девяти случаях из десяти причина в DNS. Вернитесь к nslookup.
Создаём уязвимые учётки для домашней лаборатории Active Directory
Пустой домен с единственным администратором бесполезен для практики. Создадим несколько учётных записей с намеренными мисконфигурациями — теми ошибками, которые реально встречаются в корпоративных сетях и позволяют отработать конкретные атаки.
На DC01 откройте Active Directory Users and Computers (ADUC) через Server Manager → Tools. Создайте OU (Organizational Unit — контейнер для группировки объектов в AD): правая кнопка по lab.local → New → Organizational Unit → имя Employees.
Внутри Employees создайте пользователей:
| Логин | Пароль | Назначение в цепочке атаки |
|---|---|---|
svc_sql |
SQLService1 |
Сервисная учётка с SPN — цель для Kerberoasting (Credential Access) |
j.smith |
Password123 |
Слабый пароль — цель для Password Spraying (Initial Access) |
admin_backup |
P@ssw0rd! |
Добавьте в группу Domain Admins — избыточные права, цель для Privilege Escalation |
Для svc_sql задайте SPN (Service Principal Name — идентификатор сервиса в протоколе Kerberos). Зачем: атакующий запрашивает Kerberos-билет для этого сервиса и перебирает пароль офлайн, не генерируя алертов на DC:
setspn -S MSSQLSvc/DC01.lab.local:1433 LAB\svc_sql
Ожидаемый вывод: «Updated object». Проверка: setspn -L LAB\svc_sql должен показать добавленный SPN.
Учётку admin_backup добавьте в Domain Admins: в ADUC правой кнопкой по пользователю → Add to a group → введите Domain Admins → OK.
Полигон готов для отработки цепочки атак внутреннего пентеста:
- Разведка — Network Service Discovery (T1046, Discovery): сканирование
nmap -sV 10.0.0.1с атакующей машины (Kali Linux на третьей VM или напрямую с CLIENT01 при наличии инструментов) - Credential Access — Kerberoasting: запрос TGS-билета для
svc_sql, офлайн-перебор пароляSQLService1(слабый, подбирается за секунды) - Lateral Movement — Pass the Hash (T1550.002): использование NTLM-хеша вместо пароля для аутентификации на DC
- Credential Access — дамп LSASS Memory (T1003.001): извлечение хешей из памяти процесса LSASS (Local Security Authority Subsystem Service) на машине, где пользователь залогинен
Все эти техники — сценарий внутреннего пентеста (grey box или black box с доступом к локальной сети). Для внешнего пентеста нужна другая архитектура стенда.
Снапшоты: бесплатная лицензия Windows Server для лаборатории навсегда
Снапшот (snapshot) — мгновенный снимок состояния VM. Решает сразу две задачи: откат после экспериментов и обход eval-таймера.
В VirtualBox: выберите VM → вкладка «Снимки» (Snapshots) → «Сделать снимок» → назовите Baseline. Создайте снапшот для каждой VM сразу после полной настройки домена.
Цикл работы:
- Настроили всё, сделали снапшот
Baseline— 30 секунд - Провели атаку, сломали что-то — откатили к
Baseline— 30 секунд - Повторили с другим вектором
Про eval-лицензию: Windows Server Evaluation работает 180 дней, Windows 10/11 Enterprise — 90 дней. После истечения система начинает перезагружаться каждый час. Два способа продлить жизнь полигона:
— Команда slmgr /rearm в cmd от администратора — сбрасывает таймер. Работает до трёх раз, что даёт до 720 дней для Server.
— Откат к снапшоту Baseline, сделанному до истечения срока — таймер возвращается к значению на момент снимка.
При грамотном использовании снапшотов бесплатная лицензия Windows Server для лаборатории работает годами.
Ограничения домашнего полигона и когда его недостаточно
Две VM закрывают базовые и средние AD-атаки, но у минимальной конфигурации есть границы. Я считаю, что знать их с самого начала полезнее, чем упереться в стену через месяц:
| Ограничение | Что не получится отработать | Решение |
|---|---|---|
| Одна рабочая станция | Полноценный Lateral Movement между хостами | Добавьте третью VM (Windows 10, ещё 2-4 ГБ RAM) |
| Один домен, один лес | Cross-Forest атаки, трастовые отношения | Второй DC в дочернем домене |
| Нет EDR/SIEM | Обход средств защиты, stealth-техники | Установите Sysmon + ELK Stack или Windows Event Forwarding |
| Нет реалистичного трафика | Детектирование аномалий, LLMNR/NBT-NS Poisoning (T1557.001) | Скрипты для генерации фонового трафика |
Приём для расширения без лишних VM: создайте «фантомные» компьютерные аккаунты в ADUC — WEB-SRV01, SQL-SRV01, FILE-SRV01. Назначьте им SPN, настройте делегирование, выдайте права. Эти объекты существуют в AD как записи каталога. Для атак на уровне протоколов Kerberos (Kerberoasting, Unconstrained Delegation) физически работающая машина не нужна — достаточно объекта в AD. Экономит гигабайты RAM.
Когда минимальный стенд освоен — следующий шаг: GOAD (Game of Active Directory) от Orange Cyberdefense. Версия MINILAB разворачивается через Vagrant на двух VM, GOAD-Light — на трёх, с несколькими доменами и реалистичными мисконфигурациями. Формула на бумаге понятна, но AD-атаки по-настоящему ощущаются только когда прогоняешь их на живом стенде. Если хочется быстрее перейти от настройки к практике — готовые CTF-задачи по AD доступны на HackerLab.pro, российской CTF-платформе экосистемы Codeby с категориями от web до crypto; нужна регистрация, после неё открываются таски всех уровней.
Полгода назад я начинал с точно такого же стенда — DC01, CLIENT01, lab.local. Казалось, что две виртуалки — несерьёзно, что «настоящий» полигон требует пяти машин и 64 ГБ RAM. На практике 90% базовых AD-атак — Kerberoasting, Password Spraying, дамп LSASS, Pass the Hash — отрабатываются на минимальной конфигурации. Проблема не в количестве VM. Проблема — в разрыве между «я собрал полигон» и «я провёл первую атаку». У большинства знакомых новичков этот разрыв — недели: стенд поднят, но руки до атак не дошли. Мой совет: в тот же вечер, когда домен встал, запустите хотя бы Invoke-Kerberoast или Responder. Первый результат закрепляет мотивацию сильнее любого плана обучения. Если хочешь пройти от пустого стенда до первой отработанной атаки не в одиночку — на IB Basics это проходят за два занятия, без провисания между «настроил» и «сломал».
Эту тему и смежные навыки разбирают на практике в курсе «Анализ защищённости инфраструктуры на основе Active Directory» Codeby Academy.