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.

Репозиторий
2185521 год назадПроверено 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
    
    Скачать инструмент