70
Эй, хакеры и пентестеры! Хотите создать свою личную песочницу для отработки навыков взлома, не боясь сломать что-то важное или попасть под прицел админов? Сегодня мы с вами соберем крутую лабораторию для пентеста, используя Vagrant для виртуализации, Docker для контейнеров и Metasploit как основное оружие. А еще настроим зеркала уязвимых приложений, таких как OWASP Juice Shop и DVWA, чтобы было на чем оттачивать скиллы. Всё будет изолировано, безопасно и готово к бою. Погнали!
Зачем нужна лаборатория для пентеста?
Пентест — это про практику. Теория хороша, но без реальных тестов на уязвимых системах ты не станешь профи. Собственная лаборатория даёт тебе:
Мы используем Vagrant для создания виртуальных машин (VM), Docker для лёгких контейнеров с уязвимыми приложениями и Metasploit как главный инструмент атаки. Всё это изолировано, чтобы ты мог экспериментировать без страха.
Что тебе понадобится
Перед стартом убедись, что у тебя есть:
Шаг 1: Настройка базовой среды с Vagrant
Vagrant позволяет быстро разворачивать виртуальные машины с предустановленными конфигурациями. Мы создадим две VM: одну для атак (Kali Linux с Metasploit), другую для мишеней (Ubuntu с Docker для уязвимых приложений).
Создаём Vagrantfile
Создай файл Vagrantfile
в пустой директории:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| # Машина для атак (Kali Linux) config.vm.define "kali" do |kali| kali.vm.box = "kalilinux/rolling" kali.vm.hostname = "kali" kali.vm.network "private_network", ip: "192.168.56.10" kali.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 end end # Машина для мишеней (Ubuntu с Docker) config.vm.define "target" do |target| target.vm.box = "ubuntu/jammy64" target.vm.hostname = "target" target.vm.network "private_network", ip: "192.168.56.11" target.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 end # Устанавливаем Docker на target-машину target.vm.provision "shell", inline: <<-SHELL sudo apt update sudo apt install -y docker.io docker-compose sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker vagrant SHELL end end |
Запускаем машины
В той же директории выполни:
1 |
vagrant up |
Vagrant скачает образы Kali Linux и Ubuntu, настроит сетевые интерфейсы (приватная сеть для общения между машинами) и установит Docker на машину-мишень. После завершения ты можешь подключиться к машинам:
vagrant ssh kali
vagrant ssh target
Лайфхак: Если у тебя слабый ПК, уменьши memory
и cpus
в конфиге, но не ниже 1024 МБ для Kali — Metasploit жрёт ресурсы.
Шаг 2: Разворачиваем уязвимые приложения с Docker
Теперь на машине-мишени (Ubuntu) мы поднимем уязвимые веб-приложения с помощью Docker. Мы выберем два популярных проекта: OWASP Juice Shop (симуляция уязвимого интернет-магазина) и DVWA (Damn Vulnerable Web Application).
OWASP Juice Shop
Создай файл docker-compose.yml
в домашней директории на машине target
:
1 2 3 4 5 6 7 |
version: "3" services: juiceshop: image: pwning/juice-shop ports: - "3000:3000" restart: always |
Запусти контейнер:
1 |
docker-compose up -d |
После старта Juice Shop будет доступен по адресу http://192.168.56.11:3000
. Это крутой полигон для отработки инъекций, XSS, CSRF и других атак.
DVWA (Damn Vulnerable Web Application)
Добавь DVWA в тот же docker-compose.yml
:
1 2 3 4 5 6 7 8 9 10 11 12 |
version: "3" services: juiceshop: image: pwning/juice-shop ports: - "3000:3000" restart: always dvwa: image: vulnerables/web-dvwa ports: - "80:80" restart: always |
Перезапускай контейнеры:
1 |
docker-compose up -d |
DVWA будет доступен по адресу http://192.168.56.11
. Логин/пароль по умолчанию: admin/password
. Здесь можно практиковать SQL-инъекции, брутфорс и многое другое.
Лайфхак: Если порты конфликтуют, меняй их в конфиге (например, для DVWA используй 8080:80
).
Шаг 3: Настройка Metasploit на Kali
Если ты подключился к машине kali
через vagrant ssh kali
, Metasploit уже должен быть предустановлен. Проверь:
1 |
msfconsole |
Если всё ок, ты увидишь знакомый интерфейс. Если нет — обнови пакеты:
1 |
sudo apt update && sudo apt install metasploit-framework |
Теперь настроим сеть так, чтобы Kali видела машину-мишень. IP-адреса уже заданы в Vagrantfile
(Kali: 192.168.56.10, Target: 192.168.56.11). Пингуй мишень:
1 |
ping 192.168.56.11 |
Если есть ответ — ты готов к атакам.
Пример атаки: Сканирование портов мишени через Metasploit.
msfconsole
.
1 2 3 4 |
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.56.11 set PORTS 1-1000 run |
Ты увидишь открытые порты, включая 80 (DVWA) и 3000 (Juice Shop). Это твой первый шаг к эксплуатации.
Шаг 4: Тестируем уязвимости
OWASP Juice Shop
Открой браузер на своей хост-машине и перейди на http://192.168.56.11:3000
. Попробуй простые атаки:
test' OR 1=1 --
).<script>alert('hacked')</script>
).Juice Shop даже имеет встроенные челленджи с подсказками — круто для новичков.
DVWA
Перейди на http://192.168.56.11
и выбери уровень сложности “Low”. Попробуй:
1' OR '1'='1
для обхода авторизации.Лайфхак: Если хочешь усложнить задачу, повысь уровень безопасности в DVWA до “High”.
Шаг 5: Дополнительные фичи и автоматизация
1 2 |
vagrant snapshot save kali kali_backup vagrant snapshot save target target_backup |
Если что-то сломается, восстанови:
1 |
vagrant snapshot restore kali kali_backup |
Пример скрипта scan.rc
:
1 2 3 4 |
use auxiliary/scanner/portscan/tcp set RHOSTS 192.168.56.11 set PORTS 1-65535 run |
Запусти: msfconsole -r scan.rc
.
Итог: Твоя лаборатория готова!
Теперь у тебя есть полностью изолированная среда для пентеста. Ты можешь:
Совет от профи: Не ограничивайся Juice Shop и DVWA. Попробуй другие контейнеры, например, VulnHub машины или TryHackMe образы, интегрируя их в свою лабораторию через Vagrant.