端到端执行渗透测试并撰写报告的 AI 智能体。
[!WARNING] REDCELL 会运行真实的攻击性工具。请仅将其指向你拥有或已获授权测试的系统。保持在授权范围内并遵守法律是你的责任。
REDCELL 让一队 LLM 智能体执行渗透测试。编排器规划整个任务,并将目标交给执行器智能体,后者在 Kali 容器内运行真实工具并回报结果。你可以从操作员控制台观察并引导整个运行过程:一个驱动编排器的聊天界面、实时的智能体图谱与活动流、智能体所驱动浏览器的实时视图、针对智能体捕获到的任意反弹 shell 的终端,以及工作完成后可交付的报告。
模型通过 LiteLLM 可插拔,因此你可以将其指向 OpenAI、Anthropic、Google、GLM、DeepSeek、Kimi、本地 Ollama,或它支持的任何其他模型。每次运行都会持续创建检查点,因此崩溃或重启后可以从上次中断处继续。
run_command 可覆盖任何没有专用工具的场景。docker exec 在 Kali 容器中运行。每个会话可选择 localhost 或已保存的服务器;远程服务器通过 SSH 以主机网络运行同一容器。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 不运行智能体。它将运行任务排队,由 worker 执行,worker 将输出发布到 Redis 频道,API 再通过 WebSocket 转发到浏览器。
Python 3.12、FastAPI、async SQLAlchemy + asyncpg、Alembic、arq、LangGraph、LiteLLM、ReportLab、PostgreSQL、Redis、MinIO、asyncssh。前端:React 18、Vite、TypeScript、Tailwind、TanStack Query、xterm。工具链:Python 使用 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
或者使用进程管理器一次性启动全部三个进程(它们已在
Procfile 中声明):pipx install honcho 然后 honcho start。
打开 http://localhost:5183 并使用 admin / admin 登录。
运行默认会执行真实工具。在 Settings 中添加提供商 API 密钥,并确保 Docker 可以拉取 Kali 镜像(martian56/kali:latest)。若要改为针对预设输出进行试运行,请在 .env 中设置 REDCELL_RUN_MODE=sim。
可让 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 反向代理之后,这样 Web 应用和 API 共享同一源(无 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 和 Web 应用都保留在内部网络中。存储的文件通过 API 流式传输,因此对象存储永不暴露。各模式的详细信息请参见 docs/DEPLOY.md。
后端配置是一个根目录下的 .env(参见 .env.example),由 API 和 worker 共同读取。值得了解的几项:
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 和你自己实验室的防御性及授权攻击性工具。请勿将其用于你未获得书面许可测试的系统。维护者不对滥用负责。