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

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

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

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

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

Категории

Все категории
Loading categories
purpleteam-s2-containers — Контейнеры второго этапа | Kitploit
Инструменты/GitLabGitLab/purpleteam-labs/purpleteam-s2-containers
Сканеры уязвимостейБезопасность контейнеровДинамический анализ (песочница)Веб-безопасностьТестирование на ПроникновениеБезопасность облачных средDevSecOpsОбучение и ОбразованиеArchived
GitLabpurpleteam-labs/purpleteam-s2-containers

purpleteam-s2-containers

Контейнеры второго этапа

Репозиторий
1105 лет назадЕщё не проверено

Популярное

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

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

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

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

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

логотип purpleteam

purpleteam Контейнеры второго этапа


Контейнеры второго этапа purpleteam




Эти контейнеры запускаются динамически на основе входных данных конфигурации Build User (Job), передаваемых в CLI purpleteam, а именно количества определённых вами testSession.

Следующие конфигурации актуальны, если вы собираетесь запускать серверную часть purpleteam в среде local. В среде cloud всё делается за вас.

Клонируйте этот репозиторий.

Определите переменные окружения

app-slave (Zap)

Мы используем файл .env непосредственно в каталоге app-slave для тестирования.

ZAP_API_KEY

Убедитесь, что вы присвоили значение переменной окружения ZAP_API_KEY.

ZAP_API_KEY может быть любым, просто убедитесь, что, помимо определения его для app-slave, вы также добавили его в конфигурацию проекта app-scanner. Проекту app-scanner требуется настроенный ZAP API Key для аутентификации в Zap, работающем в контейнере второго этапа. Для проекта app-scanner это необходимо указать в следующем:
{ "slave": { "apiKey": <zap-api-key-here> } }

HOST_ZAP_LOG4J_PROPERTIES_PATH и ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET

Если вам потребуются отладочные логи Zap, вам также нужно будет добавить переменные окружения для конфигурации отладки LOG4J.

Файл .env

Если вы решите использовать файл .env, добавление всех этих переменных окружения будет выглядеть примерно так:

root@kitploit:~
ZAP_API_KEY=<zap-api-key-here>
HOST_ZAP_LOG4J_PROPERTIES_PATH=<absolute-path-to/purpleteam-s2-containers/app-slave/log4j.properties>
ZAP_LOG4J_PROPERTIES_PATH_MOUNT_TARGET=/home/zap/.ZAP/log4j.properties

Отладка

app-slave (Zap)

Отладка логирования

При условии, что вы задали переменные окружения, обсуждавшиеся выше:

Чтобы включить отладку логирования для контейнеров app-slave (Zap), работающих в среде local, раскомментируйте массив volumes и элемент, содержащий ключ source с переменной окружения HOST_ZAP_LOG4J_PROPERTIES_PATH.

Подробнее ниже о фактическом просмотре логов.

Взаимодействие с Zap

Вы можете взаимодействовать с Zap (запрашивать UI Zap) во время выполнения тестов. Раньше это было полезно для проверки состояния Zap при отладке app-scanner.

  1. Убедитесь, что контейнер appslave_zap_[n] запущен, с помощью:
    root@kitploit:~
    docker stats
    
  2. Проверьте, к какому порту хоста привязан контейнер appslave_zap_[n], с помощью:
    root@kitploit:~
    docker container ls
    
    Это может быть любой порт от 8080 до 8091 включительно, как определено в docker-compose.yml.
    Порт, на котором прослушивает Zap внутри контейнера, всегда будет 8080
  3. В вашем браузере с помощью FoxyProxy настройте прокси на localhost:[zap-host-port]
    FoxyProxyDetails_Zap-min
    Необязательно: настройте следующий URL Pattern в FoxyProxy: zap:8080/*
    FoxyProxyURLPattern_Zap-min
    Если вы используете URL Pattern, это позволит вам оставить FoxyProxy включенным, выбрав "Use proxies based on their predefined patterns and priorities". В противном случае вы можете просто выбрать конкретный созданный прокси
  4. Перейдите по адресу http://zap:8080/
    Ваши запросы будут проксироваться через порт хоста и обрабатываться процессом zap в контейнере, указанном портом хоста в вашей конфигурации FoxyProxy

selenium-standalone

Отладка логирования

Чтобы включить отладку логирования для контейнеров Selenium, работающих в среде local, раскомментируйте массив environment и элемент SE_OPTS=-debug для chrome и/или firefox.

Подробнее ниже о фактическом просмотре логов.

Просмотр браузера в контейнере Selenium

Ниже описано, что необходимо сделать, чтобы просмотреть браузер внутри любого из контейнеров Selenium, запущенных из этого проекта.

Настройка docker-compose.yml:

  • Замените образы контейнеров на образы с -debug. Образы с -debug могут быть закомментированы, поэтому достаточно закомментировать обычный образ и раскомментировать образ с добавлением -debug в конце
  • Убедитесь, что вы можете получить доступ к VNC-серверу внутри контейнера, раскомментировав диапазон портов 5900. Задав диапазон в качестве внешнего порта (например: 5900-5901), вы сможете одновременно подключаться по VNC к нескольким контейнерам. В примере мы разрешили одновременное открытие двух сессий. Если вам нужно подключиться более чем к двум, просто расширьте диапазон внешних портов

Настройка VNC-клиента:

  1. Вам понадобится VNC-клиент для подключения к VNC-серверу внутри контейнера. У нас успешно работал Remmina Remote Desktop Client на Linux Mint. Установите Remmina-plugin-vnc через Менеджер программ

  2. Запустите ваш Remmina Remote Desktop Client

  3. Создайте новые записи. Если вы планируете одновременно подключаться по VNC к нескольким контейнерам Selenium, можно настроить каждую из них, как показано ниже:

    КлючЗначение
    Имяseleniumstandalone_chrome_1
    ПротоколVNC - Virtual Network Computing
    На вкладке Basic
    Сервер127.0.0.1:5900
    Парольsecret
    Глубина цветаTrue color (24 bit) # Это единственное, что сработало для нас
    КачествоPoor (fastest)

Дополнительные сведения на GitHub SeleniumHQ

Просмотр браузера в контейнере Selenium

После запуска контейнеров Selenium (удобно держать docker stats запущенным в терминале для просмотра этого) вы можете подтвердить, какой контейнер Selenium использует какой внешний порт, с помощью docker container ls, так как Docker не знает, какие порты вы назначили какой записи VNC-клиента, поэтому имя данной записи VNC-клиента может не совпадать с именем контейнера Selenium. По этой причине рекомендуется проверять привязку портов с помощью docker container ls.

Чтобы сопоставить, какой контейнер Selenium используется для какого тестового сеанса, когда у вас несколько тестовых сеансов, вам может потребоваться просмотреть выполняемый лог app-scanner. Возможно, вам также потребуется убедиться, что app-scanner настроен на уровень логирования debug, чтобы увидеть некоторые или все следующие сообщения лога:

[app.parallel] cucCli process with PID "28" has been spawned for test session with Id "lowPrivUser"

[app.parallel] cucCli process with PID "34" has been spawned for test session with Id "adminUser"

[pid-28,world] seleniumContainerName is: seleniumstandalone_chrome_1

[pid-34,world] seleniumContainerName is: seleniumstandalone_chrome_2

В этом примере у нас настроено два тестовых сеанса в конфигурации Build User (Job). Один имеет id lowPrivUser, а другой — id adminUser. В этом примере тестовый сеанс lowPrivUser имеет процесс с PID 28, а тестовый сеанс adminUser — процесс с PID 34.
В следующих двух сообщениях лога после этого мы видим, сопоставляя PID, что тестовый сеанс lowPrivUser выполняется в контейнере с именем seleniumstandalone_chrome_1, а тестовый сеанс adminUser — в контейнере с именем seleniumstandalone_chrome_2.
Нет гарантий, какой тестовый сеанс будет выполняться в каком из контейнеров seleniumstandalone_chrome_[n], поэтому, если вам нужно быть уверенным, используйте эту технику сопоставления.

Чтобы подключиться по VNC к контейнерам Selenium, когда Remmina запущен, просто дважды щелкните одну или несколько созданных вами записей VNC, и вы сможете увидеть браузер, с которым происходит взаимодействие... при условии, что шаги тестов Cucumber в app-scanner фактически дошли до этого момента.
Вы, конечно, можете замедлить тесты, приостановить их, пройти по шагам с помощью отладчика. Подробности — в вики purpleteam на странице workflow

Перенаправление и просмотр логов контейнеров

locally вы можете держать docker stats запущенным, чтобы видеть, какие контейнеры работают, когда они запускаются и останавливаются. Это также даст вам их имена для следующих команд.

Чтобы просмотреть логи контейнера второго этапа, следите за stdout (и stderr, так как Docker объединяет stdout и stderr) контейнера:

root@kitploit:~
docker logs --follow [container-name]

Если вы также хотите отправить эти логи в файл:

root@kitploit:~
docker logs --follow [container-name] |tee output.log$(date '+%Y-%m-%d_%T')

Если вы хотите отправить эти логи в файл без просмотра через терминал:

root@kitploit:~
docker logs --follow [container-name] > output.log$(date '+%Y-%m-%d_%T')
Скачать инструмент
КлючЗначение
Имяseleniumstandalone_chrome_2
ПротоколVNC - Virtual Network Computing
На вкладке Basic
Сервер127.0.0.1:5901
Парольsecret
Глубина цветаTrue color (24 bit) # Это единственное, что сработало для нас
КачествоPoor (fastest)