Redcell

Exploitation

AI red-team платформа, где автономные LLM-агенты выполняют полный цикл пентеста от начала до конца внутри Kali Linux-контейнера.


Установка
git clone https://github.com/martian56/redcell.git
cd redcell
docker compose -f docker-compose.dev.yml up -d
uv sync --group live
uv run rc db upgrade
uv run rc seed
cp .env.example .env
показать оригинал переведено ИИ

REDCELL

ИИ-агенты, которые проводят пентест от начала до конца и составляют отчёт.

CI Python FastAPI React Postgres Redis LiteLLM

Консоль оператора REDCELL во время работы против DVWA: граф агентов, критическая уязвимость RCE, управляемый агентом браузер и перехваченный reverse shell

[!WARNING] REDCELL запускает реальные инструменты для атаки. Направляйте его только на системы, которыми владеете или имеете разрешение тестировать. Соблюдение рамок тестирования и законодательства — на вашей ответственности.


Что это такое

REDCELL запускает команду LLM-агентов для проведения пентеста. Оркестратор планирует выполнение и ставит задачи исполнительным агентам, которые запускают реальные инструменты внутри контейнера Kali и отчитываются о результатах. Вы наблюдаете и управляете процессом через консоль оператора: чат, управляющий оркестратором, живой граф агентов и лента активности, прямой просмотр браузера, которым управляет агент, терминал для любого перехваченного reverse shell, а также готовый отчёт по завершении работы.

Модели подключаются через LiteLLM, поэтому вы можете использовать OpenAI, Anthropic, Google, GLM, DeepSeek, Kimi, локальный Ollama или любой другой поддерживаемый провайдер. Каждый запуск сохраняет контрольные точки по мере выполнения, поэтому после сбоя или перезапуска работа продолжается с того же места.

Возможности

  • Многоагентный движок. Цикл планирования/действий на базе LangGraph. Оркестратор делегирует задачи исполнительным агентам, которые запускают инструменты командной строки и фиксируют обнаруженные уязвимости, трофеи и хосты по мере работы.
  • Структурированные инструменты. Специализированные инструменты для nmap, nuclei, обнаружения директорий и виртуальных хостов, а также поиска и запуска в Metasploit. Каждый из них самостоятельно парсит свой вывод в данные об атакуемой поверхности или уязвимостях, поэтому сканирование фиксирует хосты и уязвимости без дополнительных шагов. run_command покрывает всё, для чего нет специализированного инструмента.
  • Реальное выполнение, локальное или удалённое. Инструменты запускаются в контейнере Kali через docker exec. Можно выбрать локальный хост или сохранённый сервер для каждой сессии; удалённый сервер запускает тот же контейнер по SSH с сетевым режимом хоста.
  • Браузер агента. Для сценариев с авторизацией и приложений с тяжёлым JavaScript, недоступных для инструментов командной строки, агент управляет реальным Chromium в контейнере Kali. Вы наблюдаете за ним в реальном времени и можете взять управление на себя, чтобы выполнить какие-то действия вручную, а затем вернуть управление агенту.
  • Reverse shell. Агент открывает слушатель, перехватывает shell и предоставляет вам интерактивный терминал. Вы также можете открывать собственные терминалы и запускать команды самостоятельно.
  • Поворот в сети. Перенаправляйте трафик инструментов через перехваченный reverse shell, чтобы добраться до хостов, видимых только с скомпрометированной машины. Для этого используется обратный SOCKS-туннель chisel, а nmap автоматически работает через этот туннель.
  • Чат управляет запуском. Указывайте чату, что вам нужно, и он корректирует работу живого оркестратора или возобновляет завершённую сессию для выполнения новых задач. Он также отвечает на вопросы о текущем тестировании.
  • Сессии анализа кода. Направьте сессию на публичный git-репозиторий или локальную папку для проверки безопасности исходного кода с привязкой результатов к файлам и строкам.
  • Конфигурация на сессию. Настройте сервер выполнения, модель и необязательный прокси-сервер для выхода в сеть для каждой сессии. Серверы и прокси проходят реальную проверку подключения, чтобы вы знали, что они работают, прежде чем начнёте на них полагаться.
  • Триаж находок. Подтверждайте или отклоняйте обнаруженные уязвимости и объединяйте дубликаты, которые агент зафиксировал несколько раз. В отчёте исключаются отклонённые находки, а подтверждённые помечаются.
  • Отчёты. Экспорт в PDF, а также JSON и SARIF. Отчёт генерируется моделью сессии и обрабатывается для чтения так, как будто его написал человек, включая резюме для руководства, методологию, результаты и рекомендации по устранению в порядке приоритета.
  • Живая консоль. Лента активности, терминалы и поток браузера агента передаются через WebSockets; граф агента, результаты, трофеи, поверхность атаки, слушатели и история прокси обновляются с коротким опросом. Всё обновляется в реальном времени по мере выполнения задания.
  • Уведомления. Всплывающие уведомления в приложении, а также уведомления в браузере, когда вкладка находится в фоновом режиме, чтобы вопрос от агента или пойманная оболочка не оставались незамеченными.

Архитектура

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| API

API не запускает агентов. Он ставит задание в очередь, воркер выполняет его, а воркер публикует вывод в каналы 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 для фронтенда.

Быстрый старт

Вам понадобятся Docker, uv и 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

Откройте http://localhost:5183 и войдите с логином admin / admin.

По умолчанию задания выполняют реальные инструменты. Добавьте ключ API провайдера в настройках и убедитесь, что 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

Конфигурация

Конфигурация бэкенда находится в корневом файле .env (см. .env.example), который читается как API, так и воркером. Основные параметры:

  • REDCELL_RUN_MODE: live (по умолчанию) или sim.
  • REDCELL_DATABASE_URL, REDCELL_REDIS_URL, REDCELL_S3_*: инфраструктура.
  • REDCELL_SECRET_KEY: Ключ Fernet для шифрования сохранённых учётных данных. Установите реальный ключ перед переходом в продакшен.

Ключи API провайдеров, образ для выполнения, ограничения области тестирования и брендинг отчётов находятся на странице настроек и хранятся в базе данных, с шифрованием там, где это необходимо.

Структура проекта

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
docker-compose.dev.yml       Postgres + Redis + MinIO
docker-compose.targets.yml   local vulnerable targets

Участие в разработке

Принимаются любые вклады. См. CONTRIBUTING.md для настройки, тестов и соглашений, а также Правила поведения. Сообщайте о проблемах безопасности приватно через SECURITY.md, а не в публичных issue.

Ответственное использование

Это инструмент для защитных и авторизованных наступательных действий, предназначенный для специалистов по безопасности, CTF и ваших собственных лабораторий. Не используйте его против систем, на тестирование которых у вас нет письменного разрешения. Разработчики не несут ответственности за неправомерное использование.

Войдите, чтобы оставить комментарий