Перейти к содержимому

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

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

Мой первый 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-образа:

  1. Windows Server 2019 или 2022 — для контроллера домена. Размер ~5 ГБ.
  2. 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 общаются только между собой:

  1. Выключите обе VM.
  2. Для каждой VM: Настройки → Сеть → Адаптер 1 → Тип подключения: Внутренняя сеть (Internal Network). Имя сети введите intnet — одинаковое для обеих VM. Разные имена = разные сегменты = машины друг друга не видят.
  3. Нужен интернет на 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 — собственно служба каталогов, которая превращает обычный сервер в контроллер домена):

  1. Server Manager → «Add roles and features» → Next → Role-based → выберите текущий сервер → отметьте Active Directory Domain Services → Add Features → Next → Install.
  2. После установки в Server Manager появится жёлтый треугольник. Нажмите на него → Promote this server to a domain controller.
  3. В мастере: «Add a new forest» → Root domain name: lab.local → пароль DSRM (для восстановления — запомните, можно тот же P@ssw0rd1) → Next на каждом экране → Install.
  4. Сервер перезагрузится. При входе имя пользователя изменится на 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.

Присоединение к домену:

  1. Параметры → Система → О программе → «Переименование компьютера (доп. параметры)» → Изменить.
  2. Переключите с «Рабочая группа» на «Домен» → введите lab.local → OK.
  3. Запрос учётных данных: LAB\Administrator + пароль DC.
  4. Сообщение «Добро пожаловать в домен 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.

Полигон готов для отработки цепочки атак внутреннего пентеста:

  1. РазведкаNetwork Service Discovery (T1046, Discovery): сканирование nmap -sV 10.0.0.1 с атакующей машины (Kali Linux на третьей VM или напрямую с CLIENT01 при наличии инструментов)
  2. Credential Access — Kerberoasting: запрос TGS-билета для svc_sql, офлайн-перебор пароля SQLService1 (слабый, подбирается за секунды)
  3. Lateral Movement — Pass the Hash (T1550.002): использование NTLM-хеша вместо пароля для аутентификации на DC
  4. 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 сразу после полной настройки домена.

Цикл работы:

  1. Настроили всё, сделали снапшот Baseline — 30 секунд
  2. Провели атаку, сломали что-то — откатили к Baseline — 30 секунд
  3. Повторили с другим вектором

Про 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.