Холст для инфраструктуры red team и киберполигонов. Составьте топологию, экспортируйте исполняемые Terraform и Ansible и разверните её самостоятельно. Ваши облачные учётные данные никогда не покидают вашу машину.

Веб-холст, на котором вы строите инфраструктуру в виде топологии, а затем экспортируете полный, готовый к запуску рабочий каталог Terraform и Ansible. Вы запускаете его со своей собственной машины. redStackPRO никогда не хранит ваши облачные учётные данные.
[!IMPORTANT] redStackPRO находится в стадии prerelease (beta). Функциональность ещё меняется до версии 1.0. GCP и AWS протестированы от начала до конца; Azure, Proxmox и ESXi — в планах. Ожидайте шероховатостей, а если вам нужна стабильность, закрепитесь на выпущенной версии.
Столкнулись с шероховатостью или есть отзыв? Откройте issue на Issues. Если это было развёртывание, приложите очищенный
logs/deploy-*.log, который записал запуск (в нём фиксируются версии, провайдер и место остановки, с удалёнными секретами), чтобы его можно было быстро проанализировать. Ваши отчёты формируют релиз.
redStackPRO помещает атакующую инфраструктуру и целевые полигоны на один холст. Два
режима холста — Offense (атакующая инфраструктура) и Defense (оборонительные AD-полигоны); экспорт
называет свой передаточный документ OFFENSE-BRIEFING.md или DEFENSE-BRIEFING.md в соответствии с режимом.
Split horizon C2, атакующая инфраструктура: два входных рубежа, не разделяющих общую судьбу, Apache перед Sliver и Nginx перед Mythic, каждый редиректор в своей собственной пиринговой сети, а teamserver'ы, коллектор и операторы — за jumpbox'ом.

Несколько операторов, один стек. Jumpbox атакующей инфраструктуры может указывать
список operators (handle плюс роль), и каждый получает логин в портале Guacamole
на общем пароле лаборатории. Установите для jumpbox'а access_mode в wireguard или
openvpn (по умолчанию — публичный портал), и каждый оператор также получит персональные
VPN-учётные данные, сгенерированные на jumpbox'е при apply: ключи никогда не покидают машину
и не попадают в экспорт, туда попадает только файл клиентской конфигурации. Логины портала сегодня
используют один общий пароль лаборатории, поэтому изоляция между операторами обеспечивается
собственными VPN-учётными данными каждого оператора, а не логином портала; индивидуальные пароли портала — в
планах. В режиме доступа по VPN портал закрывается от интернета и перемещается за
туннель, при этом SSH остаётся открытым, чтобы администратор мог продолжать развёртывание и управление
машиной. Добавляйте или удаляйте коллегу на работающем jumpbox'е с помощью
sudo rsp-operator add <handle>. См.
wiki Deploying a Range.
Harbor, целевой полигон: небольшой корпоративный лес, корневой домен и дочерний над отношением доверия родитель-потомок, с обычным путём от скомпрометированной фишингом рабочей станции до леса.

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

[!IMPORTANT] Экспорт — это граница. Холст генерирует файлы; вы запускаете их под своими собственными учётными данными. redStackPRO никогда ничего не развёртывает и никогда не хранит секреты.
[!CAUTION] Только авторизованное использование. redStackPRO создаёт наступательную инфраструктуру и намеренно уязвимые полигоны. Используйте его только в лабораторных средах, которыми вы владеете или на тестирование которых у вас есть явное разрешение, и никогда — против систем, на которые у вас нет письменного разрешения.
Предрелизная версия, до 1.0 будет ещё многое добавлено. Сам конвейер работает от начала до конца: топология компилируется в Terraform и Ansible, а экспорт разворачивается.
| Провайдер | Состояние |
|---|---|
| GCP, AWS | Поддерживаются и протестированы от начала до конца, как для целевых полигонов, так и для атакующей инфраструктуры. |
| Azure, Proxmox, ESXi | В планах, пока не поддерживаются. |
Весь холст в одном контейнере, API и веб-приложение на одном порту:
docker compose up # builds from this repo, http://127.0.0.1:8000
Или загрузите опубликованный образ вместо сборки:
docker run -p 8000:8000 -v redstackpro-data:/data \
ghcr.io/devzero-security/redstackpro:latest
Холст слушает порт 8000 внутри контейнера. Чтобы обслуживать его на другом порту
хоста, измените левую часть маппинга (-p 8787:8000) или задайте
REDSTACKPRO_PORT для compose (REDSTACKPRO_PORT=8787 docker compose up).
Compose также содержит опциональный бэкенд Postgres для совместного развёртывания:
REDSTACKPRO_DATABASE_URL=postgresql+psycopg://redstackpro:redstackpro@db:5432/redstackpro \
docker compose --profile postgres up
Образ содержит только слой композиции. Он не включает Terraform или Ansible и никогда не хранит ваши облачные учётные данные: вы запускаете экспорт, который он создаёт, со своей машины, точно так же, как в описанном ниже процессе из исходников.
Python 3.11 или новее, и Node 24 для холста.
git clone <this repo> && cd redStackPRO
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
Холст — это два процесса, API и веб-приложение:
redstackpro serve # http://127.0.0.1:8000
cd frontend && npm install && npm run dev
redstackpro serve --port 8787 переносит API на другой порт. Направьте на него
dev-сервер холста с помощью REDSTACKPRO_API=http://127.0.0.1:8787.
Откройте его, используйте Load blueprint (кнопку или палитру режимов), чтобы открыть поставляемую отправную точку, выберите своё облако в селекторе провайдера на панели инструментов (GCP или AWS), откройте вкладку Export (она компилируется на лету), затем нажмите Download. Вы получите zip рабочего каталога, описанного ниже.
Или полностью пропустите холст и скомпилируйте поставляемый blueprint из командной строки — тот же компилятор, тот же результат:
redstackpro compile frontend/public/goad/goad-light.json -o export