Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pentest_lab — Локальная лаборатория для тестирования на проникновение с использованием docker-compose. | Kitploit
Инструменты/GitHubGitHub/oliverwiegers/pentest_lab
Веб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHuboliverwiegers/pentest_lab

pentest_lab

Локальная лаборатория для тестирования на проникновение с использованием docker-compose.

Репозиторий
218551 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Pentest Lab

Я больше не занимаюсь активной разработкой этого проекта, но буду исправлять ошибки и рассматривать issues и pull requests. Помощь приветствуется :)

Эта локальная лаборатория для пентеста использует docker compose для запуска нескольких сервисов-жертв и атакующего сервиса с Kali Linux. При первом запуске лаборатории потребуется время для скачивания всех образов Docker.

Скринкаст

Выполненные команды:

  • ./lab.sh --help
  • ./lab.sh --check-dependencies
  • ./lab.sh --up --all-services
  • ./lab.sh --info
  • ./lab.sh --overview all
  • ssh root@kali -o "UserKnownHostsFile /dev/null"
  • ./lab.sh --down

Использование

Лаборатория должна работать «из коробки», если установлены все необходимые зависимости. При запуске выполняется проверка зависимостей.

Запуск лаборатории

root@kitploit:~
git clone https://github.com/oliverwiegers/pentest_lab
cd pentest_lab
./lab.sh -u

По умолчанию лаборатория запускает все сервисы-жертвы и один сервис для красной команды. Другие сервисы можно добавлять и запускать. Подробнее об этом ниже.

Дополнительную информацию по использованию можно найти в справке, выводимой командой ./lab.sh -h | --help.

Зависимости

  • bash
  • find
  • sed
  • yq (версия для Python, не yq-go)
  • docker
  • docker-compose

В лабораторию встроена проверка зависимостей, которая выполняется при запуске. Её также можно запустить вручную: ./lab.sh -C.

Heimdall

img

Для удобства добавлен интерфейс Heimdall, доступный по адресу localhost:7000. На нём перечислены все сервисы, которые доступны с вашей локальной машины и могут быть открыты в браузере. Изменения, внесённые в интерфейс, автоматически сохраняются в ./etc/heimheimdall. После остановки лаборатории этот каталог преобразуется в ./etc/heimdall.tar. Этот tar-архив извлекается при запуске. Файлы ./etc/heimdall.tar и ./etc/heimdall игнорируются git по умолчанию.

Используемые обои можно найти здесь.

Сервисы

Лаборатория поддерживает четыре типа сервисов:

  • red_team (красная команда)
  • blue_team (синяя команда)
  • victim (жертва)
  • monitoring (мониторинг)

Сервис красной команды по умолчанию — это экземпляр Kali, достаточно базовый. Тем не менее, установлен метапакет kali-tools-web. Для лаборатории тестирования веб-приложений базовые инструменты веб-тестирования кажутся полезными. Это можно изменить, отредактировав Dockerfile, из которого собирается образ. Он находится в ./dockerfiles/kali. Сервис Kali по умолчанию устанавливает эти dotfiles. Это также можно изменить, настроив Dockerfile.

Сервисы-жертвы

  • juice-shop
  • hackazon
  • tiredful-api
  • WebGoat
  • bwapp
  • DVWA
  • XVWA
  • ninjas

Сервисы мониторинга

img img

Несмотря на то, что сервисы мониторинга также являются сервисами синей команды, они выделены в отдельную категорию.

Этот стек предоставляет возможности наблюдения за журналами и производительностью.

Подробнее об отдельных экземплярах см. ниже.

В настоящее время комплект мониторинга состоит из следующих сервисов:

  • Grafana — визуализация журналов и метрик.
  • Loki — отправка журналов Docker в Grafana.
  • Prometheus — отправка метрик в Grafana.
  • cAdvisor — сбор данных об использовании ресурсов контейнеров и метрик, отправка в Prometheus.

Grafana

Экземпляр Grafana предоставляет две панели мониторинга: одну для журналов и одну для метрик.

  • Панель мониторинга журналов
  • Панель мониторинга метрик

Они довольно простые. Можно добавить новые панели через интерфейс Grafana. Эти панели будут потеряны при удалении тома grafana. Чтобы добавить панели навсегда, обратитесь к документации по Provisioning от Grafana. Используемые каталоги для provisioning находятся в ./etc/grafana/.

Для изменения настроек через интерфейс Grafana необходимо войти как admin. Учётные данные по умолчанию: admin:admin. #hacktheplanet

Loki

Чтобы Loki мог собирать журналы Docker, в этой лаборатории устанавливается Драйвер Docker для Loki как плагин Docker.

Prometheus / cAdvisor

Чтобы Prometheus мог получать метрики производительности контейнеров, работающих в кластере, используется cAdvisor.

Добавление сервисов

Для добавления дополнительных сервисов потребуется небольшое знание файлов docker-compose.yml. Файл docker-compose.yml в корне этого репозитория автоматически генерируется при запуске лаборатории. В этом процессе используются yaml-файлы, расположенные в ./etc/services.

root@kitploit:~
➜  pentest_lab tree ./etc/services
./etc/services
├── blue_team
│   └── endlessh.yml
├── default.yml
├── monitoring
│   ├── cadvisor.yml
│   ├── grafana.yml
│   ├── loki.yml
│   └── prometheus.yml
├── red_team
└── victim
    ├── beginner
    │   ├── bwapp.yml
    │   ├── dvwa.yml
    │   ├── hackazon.yml
    │   ├── tiredful.yml
    │   ├── webgoat.yml
    │   └── xvwa.yml
    ├── expert
    │   └── juice-shop.yml
    └── intermediate
        └── ninjas.yml

Какие сервисы будут запущены, определяется вызовом ./lab.sh с соответствующими опциями. Чтобы навсегда отключить сервис, удалите расширение .yml у его файла.

Пример сервиса-жертвы:

root@kitploit:~
bwapp:
  labels:
    class: 'victim'
    cluster: 'pentest_lab'
    level: 'beginner'
  image: raesene/bwapp
  ports:
    - '8080:80'
  networks:
    pentest_lab:
      ipv4_address: 10.5.0.100
  hostname: bwapp
  volumes:
    - bwapp-data:/var/lib/mysql

Примечание: если сервис требует какой-либо установки при первом использовании, используйте docker inspect <image_name>, чтобы узнать, где образ Docker хранит данные, и добавьте том, указывающий на этот каталог. В примере выше это:

root@kitploit:~
  volumes:
    - bwapp-data:/var/lib/mysql

Это гарантирует, что вам не придётся настраивать сервис заново при каждом перезапуске лаборатории. Но если вы хотите сбросить лабораторию и начать с нуля, используйте ./lab.sh -p | --prune. Это удалит все ресурсы, принадлежащие лаборатории.

Диапазоны IP

Причина использования статических IP-адресов в том, что Kali box должен иметь неизменный IP-адрес для упрощения входа по SSH. Подробнее в разделе «Советы и хитрости» ниже.

  • Сервисы красной команды начинаются с 10.5.0.5
    • Сервис Kali имеет адрес 10.5.0.5.
  • Сервисы синей команды начинаются с 10.5.0.50
  • Сервисы-жертвы начинаются с 10.5.0.100
  • Сервисы мониторинга начинаются с 10.5.0.200

Информация о сервисах

Если вы добавляете сервисы, и есть дополнительная информация, полезная для тех, кто запускает эту лабораторию, вы можете добавить её в ./etc/services_info. Содержимое этого файла будет выводиться построчно при выполнении ./lab.sh -i.

Советы и хитрости

SSH

Чтобы легко подключаться к сервису Kali, можно добавить следующее в $HOME/.ssh/config:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new

Тогда вместо ssh [email protected] -o "UserKnownHostsFile /dev/null" можно выполнять ssh kali.

Для пользователей tmux следующая конфигурация будет автоматически подключаться к сессии tmux:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new
    RequestTTY yes
    RemoteCommand tmux -L tmux new-session -As hacktheplanet
Скачать инструмент