
Платформа для red-team тестирования с использованием ИИ. Автономные LLM-агенты проводят пентест от начала до конца внутри контейнера Kali и пишут отчёт. Движок plan/act на LangGraph, провайдеро-независимые модели через LiteLLM, вывод в PDF/JSON/SARIF. FastAPI + React.
REDCELL проводит команду LLM-агентов через пентест. Оркестратор планирует работу и передаёт задачи агентам-исполнителям, которые запускают реальные инструменты внутри контейнера Kali и отчитываются о результатах. Вы наблюдаете за ходом и управляете им из консоли оператора: чат, который управляет оркестратором, живой граф агентов и лента активности, живой просмотр браузера, которым управляет агент, терминал на любом обратном шелле, который поймает агент, и отчёт, который можно сдать по завершении работы.
Модели подключаются через LiteLLM, так что можно нацелить его на OpenAI, Anthropic, Google, GLM, DeepSeek, Kimi, локальный Ollama или что угодно ещё, что он поддерживает. Каждый запуск сохраняет контрольные точки по ходу, так что сбой или перезапуск продолжает с того места, где остановился.
run_command покрывает всё, для чего нет отдельного инструмента.docker exec. Выбирайте localhost или сохранённый сервер для каждой сессии; удалённый сервер запускает тот же контейнер по SSH с host networking.flowchart LR
UI["Operator console<br/>React + Vite"] -->|REST + WebSocket| API["FastAPI"]
API --> PG[(PostgreSQL)]
API --> RS[(Redis<br/>pub/sub + queue)]
API --> S3[(MinIO<br/>files & reports)]
RS --> W["Worker (arq)"]
W --> ENG["Engine<br/>LangGraph + LiteLLM"]
ENG -->|docker exec| KALI["Kali container<br/>local or remote over SSH"]
KALI --> TGT["Targets"]
W -->|events / chat / shell| RS
RS -->|stream| APIAPI не запускает агентов. Он ставит запуск в очередь, воркер выполняет его, а воркер публикует вывод в каналы Redis, которые API передаёт в браузер по WebSockets.
Python 3.12, FastAPI, async SQLAlchemy + asyncpg, Alembic, arq, LangGraph, LiteLLM, ReportLab, PostgreSQL, Redis, MinIO, asyncssh. Фронтенд: React 18, Vite, TypeScript, Tailwind, TanStack Query, xterm. Инструментарий: uv для Python, bun для фронтенда.
# 1. infrastructure (Postgres, Redis, MinIO)
docker compose -f docker-compose.dev.yml up -d
# 2. Python deps, database, and seed data
uv sync --group live
uv run rc db upgrade
uv run rc seed # admin user, provider catalog, buckets
# 3. copy the env template
cp .env.example .env
# 4. run the three processes (separate terminals)
cd apps/api && uv run uvicorn app.main:app --host 127.0.0.1 --port 8080
cd apps/worker && uv run arq worker.settings.WorkerSettings
cd apps/web && bun install && bun run dev
Или запустите все три сразу с менеджером процессов (они объявлены в
Procfile): pipx install honcho, затем honcho start.
Откройте http://localhost:5183 и войдите как admin / admin.
Запуски по умолчанию выполняют реальные инструменты. Добавьте API-ключ провайдера в Settings и убедитесь, что Docker может загрузить образ Kali (martian56/kali:latest). Чтобы вместо этого сделать пробный запуск на заранее заготовленном выводе, установите REDCELL_RUN_MODE=sim в .env.
Намеренно уязвимые приложения, на которые можно нацелить REDCELL, все локальные:
docker compose -f docker-compose.targets.yml up -d
# DVWA http://localhost:8081 · Juice Shop http://localhost:3000 · WebGoat http://localhost:8082
Запустите REDCELL на сервере с опубликованными образами за обратным прокси Caddy, чтобы веб-приложение и API использовали один origin (без CORS), а HTTPS обрабатывался за вас. На свежем сервере:
git clone https://github.com/martian56/redcell.git
cd redcell
./deploy.sh
Скрипт устанавливает Docker, если его нет, затем спрашивает, как будет доступен REDCELL:
https://your-domain.Он записывает ваши ответы в .env, загружает образы и запускает стек. Прочитайте сгенерированный пароль администратора через docker compose logs init-secrets, затем войдите как admin и смените его. Чтобы позже изменить способ доступа, просто перезапустите ./deploy.sh и выберите другой вариант.
Публикуются только порты 80 и 443; Postgres, Redis, MinIO, API и веб-приложение остаются во внутренней сети. Хранимые файлы передаются потоком через API, так что объектное хранилище никогда не открыто наружу. Подробности каждого режима см. в docs/DEPLOY.md.
Конфигурация бэкенда — это один корневой .env (см. .env.example), читаемый и API, и воркером. Те, что стоит знать:
REDCELL_RUN_MODE: live (по умолчанию) или sim.REDCELL_DATABASE_URL, REDCELL_REDIS_URL, REDCELL_S3_*: инфраструктура.REDCELL_SECRET_KEY: ключ Fernet для шифрования хранимых учётных данных. Задайте настоящий перед выходом в продакшен.API-ключи провайдеров, образ выполнения, ограничения области действия и брендинг отчёта задаются на странице Settings и хранятся в базе данных, зашифрованные там, где это необходимо.
apps/
api/ FastAPI: routers, WebSocket streams, auth
worker/ arq worker: runs engagements and report generation
web/ React operator console
packages/
core/redcell_core/ engine, models, repositories, storage, bus, reporting
api-client/ the single typed client the UI talks to (mock + HTTP)
docker/ Kali execution image, web/api images, Caddy config
docker-compose.yml full stack behind a Caddy reverse proxy (self-host)
docker-compose.dev.yml Postgres + Redis + MinIO
docker-compose.targets.yml local vulnerable targets
deploy.sh interactive self-host deploy
Вклад приветствуется. См. CONTRIBUTING.md для настройки, тестов и соглашений, а также Кодекс поведения. Сообщайте о проблемах безопасности приватно через SECURITY.md, а не в публичных issue.
Это инструментарий для защиты и авторизованных наступательных действий для специалистов по безопасности, CTF и ваших собственных лабораторий. Не используйте его против систем, на тестирование которых у вас нет письменного разрешения. Сопровождающие не несут ответственности за неправомерное использование.