Зачем нужна собственная лаборатория
Пентест без согласованного scope — нарушение закона. Единственный легальный способ набить руку — работать с системами, которые вы контролируете сами. Домашняя лаборатория решает три задачи одновременно: даёт полную свободу экспериментов, изолирует уязвимый код от реальных сетей и позволяет воспроизводить атаки многократно без последствий.
Минимальная лаборатория состоит из двух компонентов: атакующая машина (обычно Kali Linux) и одна или несколько уязвимых целей. Всё это работает внутри виртуальной среды, отрезанной от вашей основной сети.
Выбор гипервизора
Kali Linux официально поддерживает установку в виртуальные машины на базе VMware, VirtualBox, Hyper-V, Parallels, Proxmox и Vagrant. Для новичка оптимальны два варианта:
| Гипервизор | Стоимость | Платформы | Примечание |
|---|---|---|---|
| VirtualBox | Бесплатно | Windows, macOS, Linux | Проще всего для старта, готовые образы Kali доступны на сайте проекта |
| VMware Workstation Pro | Платно | Windows, Linux | После приобретения Broadcom лицензионная модель изменилась; проверяйте актуальные условия |
VirtualBox покрывает потребности начинающего полностью. Kali Linux предоставляет готовые образы OVA для VirtualBox, которые избавляют от ручной установки и начальной настройки.
Требования к хосту
Для комфортной работы с двумя виртуальными машинами (Kali + цель) ориентируйтесь на:
- RAM: 8 ГБ минимум, 16 ГБ рекомендуется. Kali выделяйте 2–4 ГБ, целевой машине — 1–2 ГБ.
- Диск: 40–60 ГБ свободного места на SSD. Виртуальные машины с снапшотами быстро разрастаются.
- CPU: любой современный процессор с поддержкой аппаратной виртуализации (VT-x / AMD-V). Убедитесь, что виртуализация включена в BIOS/UEFI.
Установка Kali Linux в VirtualBox
Самый быстрый путь — скачать готовый образ с официального сайта Kali Linux. На странице загрузки выберите раздел Virtual Machines и скачайте OVA-файл для VirtualBox. Импортируйте его через меню File → Import Appliance.
После первого запуска:
- Войдите с учётными данными по умолчанию (они указаны на странице загрузки образа).
- Сразу смените пароль пользователя.
- Обновите пакеты:
Bash:
sudo apt update && sudo apt upgrade -y
- Проверьте, что сетевой адаптер настроен правильно (об этом ниже).
Сетевая изоляция — критический шаг
Это самый важный аспект безопасности лаборатории. Уязвимые приложения содержат реальные эксплойты. Если они окажутся доступны из вашей домашней сети или интернета, любой сможет их проэксплуатировать.
Рекомендуемая схема
Создайте в VirtualBox отдельную сеть типа Host-Only или Internal Network:
- Host-Only: хост-машина видит виртуальные машины, но они не имеют выхода в интернет. Подходит, если инструменты Kali не требуют загрузки данных извне во время работы.
- Internal Network: виртуальные машины видят друг друга, но не видят хост и не имеют выхода наружу. Максимальная изоляция.
Настройте оба адаптера Kali:
- Адаптер 1: NAT — для доступа в интернет (обновления, загрузка инструментов).
- Адаптер 2: Host-Only или Internal Network — для связи с уязвимыми целями.
Уязвимые цели подключайте только к Host-Only / Internal Network. Никакого NAT или Bridged для них.
Типичная ошибка
Bridged-адаптер на уязвимой машине делает её видимой для всех устройств в вашей локальной сети. Это означает, что любой эксплойт, который вы отрабатываете, потенциально доступен вашему соседу по Wi-Fi или вредоносному ПО на другом устройстве в сети.
Уязвимые цели для практики
OWASP Juice Shop
OWASP Juice Shop — наиболее современное и комплексное уязвимое веб-приложение для обучения. Оно написано на Node.js, Express и Angular и содержит уязвимости из OWASP Top 10, а также множество дополнительных недостатков безопасности, встречающихся в реальных приложениях.
Что делает Juice Shop удобным для новичка:
- Hacking Instructor — встроенные пошаговые скрипты, которые ведут через уязвимости и объясняют механизм каждой.
- Tutorial Mode — режим, в котором 13 обучающих задач нужно решать последовательно, прежде чем откроются остальные 103 задачи.
- Score Board — трекер прогресса, показывающий найденные и решённые уязвимости.
- Coding Challenges — для 35 задач доступны дополнительные упражнения: фаза «Find It» учит находить уязвимость в исходном коде, фаза «Fix It» — выбирать правильное исправление.
- Self-healing — при каждом перезапуске сервера приложение сбрасывается в чистое состояние, а прогресс сохраняется в браузере или через локальный бэкап.
Установка через Docker:
Bash:
docker run --rm -p 3000:3000 bkimminich/juice-shop
После запуска приложение доступно по адресу
http://localhost:3000. Если вы используете Docker внутри виртуальной машины, убедитесь, что порт проброшен на Host-Only адаптер, чтобы Kali мог обратиться к цели.Установка через Node.js:
Bash:
git clone https://github.com/juice-shop/juice-shop.git
cd juice-shop
npm install
npm start
Приложение также поддерживает запуск через Vagrant, что удобно для воспроизводимой среды.
Сопроводительное руководство: официальный companion guide «Pwning OWASP Juice Shop» доступен бесплатно онлайн и содержит подсказки и полные пошаговые решения для каждой задачи.
Другие уязвимые приложения
Помимо Juice Shop, для практики подходят:
- DVWA (Damn Vulnerable Web Application) — классическое PHP-приложение с переключением уровня сложности. Покрывает SQL-инъекции, XSS, CSRF, загрузку файлов и другие базовые уязвимости.
- Metasploitable 2/3 — виртуальные машины с набором уязвимых сервисов (FTP, SSH, HTTP, SMB и др.), предназначенные для отработки эксплуатации через Metasploit.
- VulnHub — каталог пользовательских уязвимых машин разной сложности, которые можно скачать и запустить локально.
Все эти цели запускайте только в изолированной виртуальной сети.
Онлайн-лаборатории как дополнение
Если ресурсов хоста не хватает на несколько виртуальных машин, часть практики можно перенести в облачные лаборатории.
PortSwigger Web Security Academy
Бесплатная платформа от создателей Burp Suite. Содержит интерактивные лаборатории по веб-безопасности: SQL-инъекции, XSS, CSRF, SSRF, десериализация, контроль доступа и другие темы. Каждая лаборатория — изолированная среда, в которой можно безопасно эксплуатировать уязвимости.
Для работы достаточно Burp Suite Community Edition, который бесплатен. Academy подходит для отработки именно веб-направления без необходимости разворачивать локальную инфраструктуру.
OWASP Web Security Testing Guide
Это не лаборатория, а методология. WSTG описывает структурированный подход к тестированию веб-приложений: от сбора информации и маппинга до тестирования аутентификации, управления сессиями, валидации ввода и обработки ошибок. Каждый сценарий имеет идентификатор формата
WSTG-<category>-<number>, что удобно для ведения отчётов и чек-листов.Используйте WSTG как каркас: разворачивайте Juice Shop или DVWA и проходите по сценариям гида последовательно.
Практический рабочий процесс
Типичная сессия в лаборатории выглядит так:
- Запуск среды. Включите Kali и целевую машину. Убедитесь, что обе находятся в одной изолированной сети.
- Разведка. С Kali просканируйте целевой хост: определите открытые порты, работающие сервисы и их версии.
- Анализ. Сопоставьте найденные сервисы с известными уязвимостями. Для веб-приложений — изучите структуру, endpoints, параметры запросов.
- Эксплуатация. Отработайте конкретную уязвимость. В Juice Shop используйте Hacking Instructor для первых задач.
- Фиксация. Запишите, что нашли, как эксплуатировали и какой impact. Это формирует навык написания отчётов.
- Сброс. Перезапустите целевую машину, чтобы вернуть её в исходное состояние.
Снапшоты
Перед каждым экспериментом делайте снапшот целевой машины. Если эксплуатация привела к нестабильному состоянию или вы случайно изменили конфигурацию, откат займёт секунды. В VirtualBox: Machine → Take Snapshot.
Частые ошибки при настройке лаборатории
| Ошибка | Последствие | Решение |
|---|---|---|
| Bridged-сеть на уязвимой машине | Цель доступна из локальной сети и потенциально из интернета | Используйте Host-Only или Internal Network |
| Kali как основная ОС | Случайный запуск агрессивных инструментов в рабочей сети | Kali — только в виртуальной машине |
| Отсутствие снапшотов | Потеря состояния цели после неудачного эксплойта | Снапшот перед каждой сессией |
| Обновление уязвимой цели | Уязвимости исправляются, практика теряет смысл | Не обновляйте пакеты на целевых машинах |
| Одна машина для атаки и цели | Невозможно отработать сетевые атаки | Минимум две виртуальные машины |
Проверка изоляции
После настройки убедитесь, что лаборатория действительно изолирована:
- С хост-машины попробуйте обратиться к уязвимой цели по IP из Host-Only сети. Соединение должно проходить.
- С другого устройства в вашей домашней сети (телефон, второй ноутбук) попробуйте тот же IP. Соединение не должно проходить.
- С уязвимой цели попробуйте выйти в интернет (
ping 8.8.8.8или аналогичная проверка). При Internal Network доступа быть не должно.
Если все три проверки дают ожидаемый результат — лаборатория настроена корректно и можно приступать к практике.
