
По данным ISC2 за 2025 год, 84% менеджеров при найме junior-специалистов в ИБ гоняют кандидатов на практических тестах. Резюме с перечнем прочитанных книг больше не катит — нужно показать, что умеешь делать руками. Домашняя лаборатория пентестера — та самая среда, где можно легально ломать уязвимые сервисы, готовиться к CTF-соревнованиям и собирать портфолио решённых задач. Ниже — пошаговая настройка лаборатории для CTF на базе VirtualBox, Docker и изолированных сетей. Всё проверено на реальном ноутбуке с 8 ГБ RAM — ничего теоретического.
Первый вопрос новичка: «Потянет ли мой ноутбук?» Почти наверняка — да, если машине менее четырёх-пяти лет. Но есть одно обязательное требование, без которого дальше можно не читать.
Аппаратная виртуализация. Заходите в BIOS/UEFI и проверяйте, что Intel VT-x (для Intel) или AMD-V (для AMD) включены. Без этого виртуальные машины либо не запустятся вообще, либо будут ползать так, что практика хакинга на своём ПК превратится в борьбу с зависаниями. На большинстве современных ноутбуков опция активна по умолчанию, но на бюджетных моделях бывает выключена. Проверяйте до того, как начнёте что-то ставить — сэкономите нервы.
| Параметр | Минимум | Рекомендация |
|---|---|---|
| RAM | 8 ГБ | 16 ГБ |
| CPU | 4 ядра | 6+ ядер |
| Диск | 50 ГБ свободно (HDD) | 100+ ГБ (SSD) |
| ОС хоста | Windows 10/11, Linux, macOS | Linux или Windows 11 |
С 8 ГБ RAM хватит ровно на одну атакующую виртуальную машину Kali Linux и пару Docker-контейнеров с уязвимыми сервисами. Параллельно запустить Metasploitable и DVWA — уже 16 ГБ. А 32 ГБ пригодятся позже, когда дорастёте до многосегментных лабораторий с Active Directory.
SSD для CTF как таковых не обязателен, но критичен для терпения. Загрузка Kali с HDD — 3–4 минуты. С SSD — 40 секунд. При подготовке к CTF соревнованиям пересоздавать окружение приходится регулярно, и каждая минута простоя убивает мотивацию быстрее любой нерешённой задачи.
Оба гипервизора сейчас бесплатны для личного использования. Оба запускают виртуальные машины Kali Linux и уязвимые образы для тренировки. Разница — в деталях.
| Критерий | VirtualBox | VMware Workstation Player |
|---|---|---|
| Цена | Бесплатно, open source | Бесплатно (личное использование) |
| ОС хоста | Windows, macOS, Linux | Windows, Linux (Fusion для macOS) |
| Производительность | Достаточная для 1–2 VM | Заметно выше на тяжёлых сценариях |
| Снапшоты | Да, неограниченно | Да (полная функциональность в Pro) |
| Сетевые режимы | NAT, Bridged, Host-Only, Internal | NAT, Bridged, Host-Only, Custom |
| Когда НЕ подходит | Более 3 VM одновременно | Нужен open source гипервизор |
Для первой настройки лаборатории для CTF я бы взял VirtualBox. Причина банальная: интерфейс минимален, документация огромна, русскоязычных пошаговых инструкций на порядок больше, чем для VMware. Если через полгода упрётесь в производительность при одновременной работе трёх-четырёх виртуальных машин — переход на VMware займёт час, а навыки полностью переносятся.
VMware даёт заметный прирост на сложных сценариях: несколько Windows-VM, лаборатории с Active Directory, тяжёлые эксплойты с большим потреблением памяти. Для начинающих — избыточно. VMware имеет смысл, когда ваша домашняя лаборатория пентестера перерастёт формат «одна Kali + один целевой сервис».
Apple Silicon (M1/M2/M3): тут засада. VirtualBox на ARM-чипах запускает только ARM64-гостей. Kali Linux имеет ARM64-образ и работает нормально. Но Metasploitable 2/3, OWASP BWA и большинство VulnHub-машин — x86-only, на M-серии не поедут. Решение — Docker для целевых сервисов (подробности ниже).
Вместо ручной установки с ISO берите готовый OVA-образ. На kali.org/get-kali/ лежит виртуальная машина Kali Linux для VirtualBox — уже настроенная, с предустановленными инструментами и рабочим окружением. Экономит 30–40 минут по сравнению с установкой из ISO, и нет шанса промахнуться с разметкой диска.
Шаг 1. Скачайте VirtualBox с virtualbox.org и установите. На Windows после установки потребуется перезагрузка.
Шаг 2. Скачайте OVA-образ Kali для VirtualBox (размер около 3–4 ГБ).
Шаг 3. В VirtualBox: «Файл — Импорт конфигурации», указываете скачанный файл. Перед импортом измените параметры: выделите 4 ГБ RAM (2 ГБ — абсолютный минимум, интерфейс будет подтормаживать) и 2 ядра CPU.
Шаг 4. После импорта откройте настройки VM — раздел «Система» — вкладка «Ускорение». Убедитесь, что VT-x/AMD-V и PAE/NX включены.
Шаг 5. Запускаете VM. Логин по умолчанию: kali / kali. Первое действие после входа — sudo apt update && sudo apt upgrade -y. На нормальном канале займёт 5–10 минут.
Шаг 6. Сразу делайте снапшот чистой системы: «Машина — Сделать снимок состояния», называете «Clean Install». Теперь при любой поломке откат — 10 секунд вместо повторной установки.
На этом этапе у вас рабочая настройка Kali Linux в VirtualBox с полным набором инструментов. Но направлять сканирование из неё в реальную сеть — административное и уголовное нарушение. Нужны изолированные цели внутри лабораторной сети.
Изоляция — не перестраховка, а техническая необходимость. Без неё Nmap из Kali может уйти в домашнюю сеть и начать стучаться к роутеру соседей. В терминах MITRE ATT&CK: Container Administration Command (T1609, Execution) описывает выполнение команд внутри контейнера, а Escape to Host (T1611, Privilege Escalation) — выход из изолированной среды на хост-систему. Корректная сегментация сети лаборатории минимизирует последствия обоих сценариев.
NAT — VM получает интернет через хост, но невидима для других VM. Годится для обновлений, бесполезно для лаборатории: атакующая и целевая VM не видят друг друга.
Bridged (сетевой мост) — VM получает IP в домашней сети. Для лаборатории опасно: сканирование из Kali достигнет реальных устройств.
Host-Only (виртуальный адаптер хоста) — VM видит только хост и другие VM на той же виртуальной сети. Интернета нет. Оптимальный режим для изолированного окружения для хакинга.
Internal (внутренняя сеть) — VM видит только другие VM на той же внутренней сети, даже хост недоступен. Максимальная изоляция, но усложняет отладку.
Рабочая схема для CTF-лаборатории: два адаптера на атакующей VM, один — на целевых.
Kali VM: адаптер 1 — NAT (обновления и скачивание инструментов), адаптер 2 — Host-Only (связь с целевыми VM в лабораторной сети).
Целевые VM (Metasploitable, DVWA и подобные): только адаптер Host-Only. Без NAT, без Bridged — никакого выхода наружу.
Проверка изоляции после настройки: в целевой VM выполните ping 8.8.8.8 — должен быть недоступен. Из Kali пропингуйте IP целевой VM — должен отвечать. Дополнительно проверьте, что из Kali через Host-Only адаптер не доступен ваш домашний роутер: ping 192.168.1.1 — не должен отвечать. Финальная проверка: nmap -sn 192.168.56.0/24 из Kali покажет только вашу Kali и целевые VM. Ничего лишнего. Сетевая изоляция виртуальных машин работает.
Виртуальная машина — полноценная ОС с собственным ядром, загрузчиком и системными сервисами. Metasploitable 2 занимает ~6 ГБ на диске и ест 512 МБ RAM даже в простое. Docker-контейнер — изолированный процесс, использующий ядро хоста. DVWA в Docker: ~200 МБ на диске, запуск за 3–5 секунд вместо минуты.
На практике это значит: на ноутбуке с 8 ГБ RAM можно запустить Kali как VM и параллельно поднять три-пять уязвимых сервисов в Docker. Попытка запустить всё это отдельными виртуальными машинами закончится swap-hell уже на втором сервисе. Проверено на собственном опыте — не повторяйте.
Docker CTF-лаборатория собирается из готовых образов: для большинства уязвимых приложений образы уже есть на Docker Hub и в проекте Vulhub.
DVWA (Damn Vulnerable Web Application) — стандартный тренажёр веб-пентеста. Запуск одной командой: docker run -d -p 127.0.0.1:8080:80 vulnerables/web-dvwa. Открываете http://127.0.0.1:8080 в браузере, проходите начальную настройку базы данных и получаете среду с SQL-инъекциями, XSS, CSRF и десятком других уязвимостей из OWASP Top 10.
Привязка к 127.0.0.1 вместо 0.0.0.0 — не мелочь. Без неё уязвимое приложение будет торчать наружу в локальную сеть. Типичная ошибка при настройке лаборатории для CTF, которая может привести к компрометации хоста извне.
OWASP Juice Shop — более современный тренажёр с интерфейсом интернет-магазина: docker run -d -p 127.0.0.1:3000:3000 bkimminich/juice-shop. Внутри — встроенный scoreboard с прогрессом решения задач. По сути, CTF в одном контейнере.
Vulhub (github.com/vulhub/vulhub) — коллекция docker-compose файлов с реальными CVE-уязвимостями. Каждый сценарий — отдельная директория с docker-compose.yml, поднимающим уязвимый сервис нужной версии. Ближе всего к задачам реальных CTF-соревнований формата Jeopardy.
Когда целевых сервисов больше двух, запускать каждый отдельной командой — неудобно и легко запутаться. Docker Compose описывает всю лабораторию в одном YAML-файле и поднимает её одной командой:
version: "3.8"
services:
dvwa:
image: vulnerables/web-dvwa
ports: ["127.0.0.1:8080:80"]
networks: [ctflab]
juice-shop:
image: bkimminich/juice-shop
ports: ["127.0.0.1:3000:3000"]
networks: [ctflab]
networks:
ctflab:
internal: true
Параметр internal: true — ключевой. Он создаёт Docker-сеть без маршрута наружу: контейнеры видят друг друга, но в интернет не ходят. Аналог Internal Network в VirtualBox, только для контейнеров. Вся лаборатория поднимается через docker compose up -d и останавливается через docker compose down.
Файл docker-compose.yml удобно хранить в Git-репозитории. Переехали на другой ноутбук — склонировали репозиторий, одна команда — и идентичное изолированное окружение для хакинга готово за минуту. Docker Compose для ИБ — способ сделать лабораторию переносимой и воспроизводимой.
Максимальную изоляцию при подготовке к CTF соревнованиям даёт запуск Docker внутри Kali VM. Схема: хост (основная ОС) → VirtualBox → Kali Linux VM (NAT + Host-Only) → Docker внутри Kali → уязвимые контейнеры.
Зачем двойная изоляция? Даже если из контейнера произойдёт Escape to Host (T1611 по MITRE ATT&CK), атакующий окажется внутри Kali VM, а не на вашей основной системе. Снапшот Kali VM захватывает все контейнеры внутри — полный откат одним действием. Виртуализация для информационной безопасности здесь работает как страховка страховки.
Минус — двойной overhead. Ядро VM плюс процессы контейнеров требуют 12–16 ГБ RAM на хосте. С 8 ГБ гибрид запустится, но при активном сканировании будет ощутимо тормозить.
Установка Docker в Kali: sudo apt install docker.io docker-compose-plugin, затем sudo usermod -aG docker $USER. После перелогина Docker готов к работе внутри VM.
Подход оправдан для тех, кто не хочет переживать о влиянии экспериментов на основную рабочую систему. Если RAM хватает — берите гибрид, не пожалеете.
Снапшоты — страховка от необратимых действий. Правило простое: сделали что-то важное — зафиксировали состояние. Стратегия для домашней лаборатории пентестера:
«Clean Install» — сразу после установки и первого обновления Kali. Базовая точка отката, к которой можно вернуться всегда.
«Pre-CTF [дата]» — перед каждым соревнованием. Поставили дополнительные инструменты, настроили VPN — сохранили состояние.
«Post-CTF [название]» — после соревнования, если хотите сохранить конфигурацию для разбора задач и написания writeup.
VirtualBox хранит снапшоты виртуальных машин как дифференциальные диски. Каждый снимок добавляет от 100 до 500 МБ. Держать больше пяти-семи штук на одну VM нет смысла: занимают место и замедляют откат. Периодически удаляйте промежуточные, оставляя «Clean Install» и последний рабочий.
Docker-контейнеры — расходный материал. Сломали — удалили, подняли заново за секунды. Полная чистка: docker system prune -a удалит все остановленные контейнеры и неиспользуемые образы, освободив гигабайты. Но удаляет ВСЁ неактивное — убедитесь, что старые образы точно не нужны.
«Не хватает RAM, всё виснет». Первым делом закройте браузер на хосте: Chrome с 20 вкладками забирает 2–4 ГБ. Уменьшите RAM Kali VM до 2 ГБ, замените тяжёлые целевые VM на Docker-контейнеры. На Windows отключите Hyper-V, если не используете WSL2 — он конфликтует с VirtualBox и жрёт ресурсы даже в фоне. bcdedit /set hypervisorlaunchtype off с перезагрузкой решает проблему.
«Kali не видит целевую VM». Убедитесь, что обе виртуальные машины подключены к одной Host-Only сети. В VirtualBox: «Файл — Менеджер сетей хоста» — должен существовать адаптер (обычно vboxnet0) с включённым DHCP-сервером. Если IP не назначается автоматически — задайте вручную: sudo ip addr add 192.168.56.10/24 dev eth1 в Kali и аналогичную команду с другим адресом на целевой VM.
«Порт занят, контейнер не стартует». Проверьте, кто слушает: ss -tlnp | grep 8080. Или измените маппинг при запуске: вместо -p 8080:80 используйте -p 9090:80.
«Случайно просканировал домашнюю сеть». Классика с реальными последствиями. Перед каждым запуском Nmap проверяйте адрес цели. Если он не из диапазона лабораторной подсети (192.168.56.0/24 для Host-Only, 172.x.x.x для Docker) — стоп. Разберитесь с маршрутизацией, потом сканируйте.
«Mac M1/M2 и x86-образы». VirtualBox на Apple Silicon не запускает x86-гостей вроде Metasploitable или VulnHub. Ставьте Kali ARM64 как VM, а все целевые сервисы поднимайте в Docker. Для полной изоляции Docker-сети: docker network create --internal ctflab. Контейнеры на этой сети видят только друг друга.
Конфликты подсетей Docker и VirtualBox. Docker по умолчанию использует 172.17.0.0/16, VirtualBox Host-Only — 192.168.56.0/24. Обычно диапазоны не пересекаются. Но если настраивали кастомные подсети — проверьте маршруты через ip route на хосте.
Лаборатория собрана, Kali отвечает, DVWA открывается по localhost:8080. Что дальше?
Vulhub — мостик от тренажёров к реальным CVE. Каждый docker-compose файл — конкретная уязвимость конкретной версии продукта: Apache Struts, Jenkins, Redis. Клонируете репозиторий, заходите в нужную директорию, docker compose up -d — уязвимый стенд готов. Ближе всего к задачам реальных CTF-соревнований формата Jeopardy.
HackTheBox и TryHackMe — подключаются через VPN из вашей Kali VM. Лаборатория выступает как изолированная точка входа: вы работаете с внешними стендами, используя инструменты из собственного окружения. Host-Only адаптер гарантирует, что VPN-трафик не уйдёт в домашнюю сеть.
Создание собственных заданий. Когда освоите Docker Compose для ИБ на уровне потребителя, попробуйте собрать свою CTF-задачу: напишите Dockerfile с уязвимым Flask-приложением, спрячьте флаг в переменной окружения, дайте решить товарищу. Техника Build Image on Host (T1612 по MITRE ATT&CK) описывает именно сборку образов на целевой системе — понимание этого процесса полезно и при создании задач, и при их решении.
Девять из десяти начинающих в CTF-чатах застревают не на сложных заданиях, а на этапе «поставить и настроить среду». Эта статья закрывает именно этот барьер. Но вот что я вижу раз за разом: большинство новичков переусложняют лабораторию. Ставят Proxmox, конфигурируют pfSense, настраивают VLAN — и выгорают до первого решённого флага. Начните с VirtualBox, одной Kali VM и одного docker run с DVWA. Для начала этого хватит за глаза — на первые три месяца подготовки к CTF соревнованиям точно. Усложняйте, когда появится конкретная задача, а не «на вырост».
Docker в контексте ИБ-обучения ценнее, чем кажется на первый взгляд. Он не просто экономит RAM — он учит работать с контейнерами. MITRE ATT&CK выделяет целый блок техник для контейнерных сред: Deploy Container (T1610), Container and Resource Discovery (T1613). Понимание того, как контейнеры устроены изнутри, делает вас полезнее и в red team, и в blue team роли. Если хотите пройти путь от первой лаборатории до реальных рабочих задач системно, а не методом тыка — на IB Basics на codeby.school эту базу закрывают за пару месяцев, от нуля до первых практических навыков.
🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «pentest-machines».
0 комментариев
Пожалуйста, войдите, чтобы оставить комментарий.
Загрузка комментариев...