H3DD4/RedBox
GitHub: H3DD4/RedBox
RedBox 是一款开源的 AI 驱动自主渗透测试编排平台,通过多 LLM 集成与自动化工作流降低安全测试中的人工干预。
Stars: 1 | Forks: 0
# 🔴 RedBox - AI 驱动的安全编排平台
**由 AI 驱动的新一代安全测试平台**
[](LICENSE)
[](https://www.typescriptlang.org/)
[](https://reactjs.org/)
[](https://nodejs.org/)
[](https://www.python.org/)
## 📖 概述
**RedBox** 是一个由 AI 驱动的综合安全测试编排平台,它将多个 LLM 提供商与高级渗透测试功能相结合。它为安全评估、知识管理和自动化测试工作流提供了一个统一的界面。
### 🎯 核心功能
- **🤖 AI 编排器**:通过 LLM 驱动的分析进行多阶段安全评估 pipeline
- **💻 AI 终端**:具有实时流式响应的交互式安全助手
- **📚 RAG 顾问**:利用 AI 增强的检索功能查询您的安全知识库
- **🔌 MCP 集成**:用于实际执行安全工具的 HexStrike Model Context Protocol
- **📊 报告生成**:自动生成高管报告、技术报告和完整安全报告
- **🔄 多 LLM 支持**:支持 Ollama、OpenAI、Anthropic Claude、Google Gemini 和自定义 endpoint
- **🧠 Neo4j 图存储**:可选的 Neo4j 集成,用于攻击路径、主机/服务上下文以及漏洞图持久化。
## 🏗️ 架构
```
RedBox/
├── redbox-ops-core/ # Main application
│ ├── backend/ # Express + TypeScript backend
│ │ ├── src/
│ │ │ ├── routes/ # API endpoints
│ │ │ ├── services/ # Core services (LLM, RAG, Orchestrator)
│ │ │ └── db.ts # SQLite database
│ │ └── prompts/ # Security testing templates
│ └── src/ # React + TypeScript frontend
│ ├── components/ # UI components
│ ├── pages/ # Application pages
│ ├── context/ # State management
│ └── services/ # API clients
└── hexstrike/ # MCP server for security tools
└── hexstrike-ai/ # Python-based tool execution server
```
## 🚀 快速开始
### 前置条件
- **Node.js** 18+ 和 npm
- **Python** 3.8+(用于 HexStrike MCP 服务器)
- **Neo4j** 5.x(可选,用于图持久化和攻击路径分析)
- **Ollama**(可选 - 用于本地 LLM)或云端 LLM 的 API 密钥
### 安装说明
#### 1. 克隆仓库
```
git clone https://github.com/H3DD4/RedBox.git
cd RedBox
```
#### 2. 设置前端和后端
```
cd redbox-ops-core
# 安装前端依赖
npm install
# 安装后端依赖
cd backend
npm install
cd ..
```
#### 3. 配置环境
```
# 前端
cp .env.example .env
# 后端
cp backend/.env.example backend/.env
```
使用您的配置编辑 `.env` 文件:
- 数据库路径
- API 端口
- LLM 提供商 endpoint
- 如果使用图持久化,请在 `redbox-ops-core/backend/.env` 中配置 Neo4j 连接设置
后端 Neo4j 变量示例:
```
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=your-password
NEO4J_DATABASE=neo4j
```
#### 4. 设置 Neo4j 图存储(可选)
您可以直接使用 Docker 启动 Neo4j:
```
docker run -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/password neo4j:latest
```
或者使用包含的 Docker Compose 服务:
```
docker compose up --build
```
然后从后端文件夹初始化 Neo4j schema:
```
cd redbox-ops-core/backend
npm install
npm run neo4j:init
```
#### 5. 设置 HexStrike MCP 服务器(可选)
```
cd ../hexstrike/hexstrike-ai
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
```
可选的辅助脚本(创建 .venv 并安装依赖):
```
# Windows PowerShell
./scripts/setup-venv.ps1
# Linux/Mac
./scripts/setup-venv.sh
```
#### 6. 启动平台
**终端 1 - 后端:**
```
cd redbox-ops-core/backend
npm run dev
```
**终端 2 - 前端:**
```
cd redbox-ops-core
npm run dev
```
**终端 3 - HexStrike MCP(可选):**
```
cd hexstrike/hexstrike-ai
python hexstrike_server.py
```
#### 7. 访问 RedBox
打开浏览器并导航至:
```
http://localhost:5173
```
**默认登录:**
- Email:`admin@redbox.io`
- 密码:`redbox`
## 🐳 Docker Compose(推荐)
使用 Docker 运行完整技术栈(包含 Neo4j):
```
docker compose up --build
```
可选的 HexStrike MCP 服务器(构建时间较长):
```
docker compose --profile hexstrike up --build
```
**注意事项:**
- 前端:`http://localhost:5173`
- 后端:`http://localhost:3001`
- HexStrike(可选):`http://localhost:8888`
- Neo4j:`http://localhost:7474` 和 `bolt://localhost:7687`
- 要将后端指向在主机上运行的 HexStrike,请在根目录的 `.env` 文件中设置 `HEXSTRIKE_API_URL`。
## 💡 用法
### 1. **配置 LLM 提供商**
- 导航至 **Settings** → **LLM Providers**
- 添加您首选的提供商(Ollama、OpenAI、Claude 等)
- 测试连接并将其设置为活跃状态
### 2. **运行安全评估**
- 转到 **Orchestrator**
- 选择 pipeline(解决 CTF、Pentest 等)
- 输入目标和测试参数
- 观看实时 AI 分析
### 3. **查询知识库**
- 在 **RAG Advisor** 中上传安全文档
- 针对您的知识库提出问题
- 获取带有来源的 AI 驱动的答案
### 4. **交互式终端**
- 使用 **AI Terminal** 进行临时安全查询
- 实时流式传输响应
- 即时执行安全分析
## 🛠️ 技术栈
### 前端
- 带有 TypeScript 的 **React 18**
- 用于极速构建的 **Vite**
- 用于样式设置的 **TailwindCSS**
- **shadcn/ui** 组件库
- 用于状态管理的 **React Query**
### 后端
- 带有 TypeScript 的 **Express.js**
- 使用 better-sqlite3 的 **SQLite**
- 通过 `neo4j-driver` 进行的 **Neo4j** 图持久化
- **JWT** 身份验证
- 用于流式传输的 **Server-Sent Events (SSE)**
- 用于文件上传的 **Multer**
### AI/ML
- **多个 LLM 提供商**:OpenAI、Anthropic、Gemini、Ollama
- **RAG 引擎**:TF-IDF + 提供商 embedding
- **流式聊天**:实时响应流式传输
- **Prompt 模板**:结构化安全测试工作流
### 安全工具
- **HexStrike MCP Server**:基于 Python 的工具执行
- **Model Context Protocol**:标准化的 AI 与工具通信
## 📁 项目结构
```
redbox-ops-core/
├── backend/
│ ├── src/
│ │ ├── routes/ # API endpoints
│ │ │ ├── auth.ts # Authentication
│ │ │ ├── orchestrator.ts # Pipeline execution
│ │ │ ├── rag.ts # RAG queries
│ │ │ ├── llm-providers.ts # LLM management
│ │ │ └── ...
│ │ ├── services/
│ │ │ ├── orchestrator.ts # Core orchestration logic
│ │ │ ├── rag-engine.ts # RAG implementation
│ │ │ ├── llm-gateway.ts # Multi-LLM interface
│ │ │ ├── neo4j.ts # Graph persistence service
│ │ │ ├── prompt-engine.ts # Template system
│ │ │ └── report-generator.ts
│ │ ├── db.ts # Database schema
│ │ └── index.ts # Server entry point
│ └── prompts/ # Security testing templates
│ ├── ctf-solving/
│ ├── real-pentesting/
│ └── shared/
└── src/
├── pages/
│ ├── Dashboard.tsx # Overview
│ ├── Orchestrator.tsx # Pipeline management
│ ├── Terminal.tsx # AI chat
│ ├── RAGAdvisor.tsx # Knowledge base
│ └── SettingsPage.tsx # Configuration
├── components/ # Reusable UI components
├── context/ # Global state
└── services/ # API clients
```
## 🔐 安全功能
- **JWT 身份验证**:安全的用户会话
- **密码哈希**:带 salt 的 bcrypt
- **Shell 命令审计**:记录所有命令
- **黑名单**:阻止危险命令
- **API 速率限制**:防止滥用
- **CORS 配置**:受控的跨域访问
## 📚 文档
- **[MCP 集成指南](MCP_INTEGRATION_GUIDE.md)**:HexStrike 设置与用法
- **[HexStrike README](hexstrike/hexstrike-ai/README.md)**:工具服务器文档
- **后端 API**:带有 SSE 流式传输的 RESTful endpoint
- **前端**:基于组件的 React 架构
## 📝 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 📧 联系方式
**项目链接**:[https://github.com/H3DD4/RedBox](https://github.com/H3DD4/RedBox)
**由 AI 驱动的新一代安全测试平台**
[](LICENSE)
[](https://www.typescriptlang.org/)
[](https://reactjs.org/)
[](https://nodejs.org/)
[](https://www.python.org/)
由 H3DD4 开发
=======
# RedBox
## 入门指南
为了让您轻松开始使用 GitLab,以下是一系列推荐的后续步骤。
已经是专家了?只需编辑此 README.md 并将其变成您自己的即可。想要更简单点?[使用底部的模板](#editing-this-readme)!
## 添加您的文件
* [创建](https://docs.gitlab.com/user/project/repository/web_editor/#create-a-file) 或 [上传](https://docs.gitlab.com/user/project/repository/web_editor/#upload-a-file) 文件
* [使用命令行添加文件](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) 或使用以下命令推送现有的 Git 仓库:
```
cd existing_repo
git remote add origin https://gitlab.com/medhedda/RedBox.git
git branch -M main
git push -uf origin main
```
## 与您的工具集成
* [设置项目集成](https://gitlab.com/medhedda/RedBox/-/settings/integrations)
## 与您的团队协作
* [邀请团队成员和合作者](https://docs.gitlab.com/user/project/members/)
* [创建新的合并请求](https://docs.gitlab.com/user/project/merge_requests/creating_merge_requests/)
* [从合并请求中自动关闭 issue](https://docs.gitlab.com/user/project/issues/managing_issues/#closing-issues-automatically)
* [启用合并请求批准](https://docs.gitlab.com/user/project/merge_requests/approvals/)
* [设置自动合并](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)
## 测试和部署
使用 GitLab 中内置的持续集成。
* [GitLab CI/CD 入门](https://docs.gitlab.com/ci/quick_start/)
* [使用静态应用程序安全测试 (SAST) 分析代码中的已知漏洞](https://docs.gitlab.com/user/application_security/sast/)
* [使用自动部署部署到 Kubernetes、Amazon EC2 或 Amazon ECS](https://docs.gitlab.com/topics/autodevops/requirements/)
* [使用基于拉取的部署改进 Kubernetes 管理](https://docs.gitlab.com/user/clusters/agent/)
* [设置受保护的环境](https://docs.gitlab.com/ci/environments/protected_environments/)
# 编辑此 README
当您准备好将此 README 变成您自己的文件时,只需编辑此文件并使用下方方便的模板(或者随意按您想要的结构进行组织 - 这只是一个起点!)。感谢 [makeareadme.com](https://www.makeareadme.com/) 提供此模板。
## 对优秀 README 的建议
每个项目都不尽相同,因此请考虑哪些部分适用于您的项目。模板中使用的部分是针对大多数开源项目的建议。还要记住,虽然 README 可能会太长、太详细,但太长也比太短好。如果您觉得您的 README 太长,请考虑使用其他形式的文档,而不是删减信息。
## 名称
为您的项目选择一个不言自明的名称。
## 描述
让人们具体了解您的项目能做什么。提供背景信息,并添加指向访问者可能不熟悉的任何参考资料的链接。也可以在此处添加“功能”列表或“背景”小节。如果有替代您项目的方法,这里是列出差异因素的好地方。
## 徽章
在某些 README 中,您可能会看到传达元数据的小图像,例如项目的所有测试是否都通过了。您可以使用 Shields 向您的 README 添加一些徽章。许多服务也提供了有关如何添加徽章的说明。
## 视觉内容
根据您正在制作的内容,包含截图甚至视频(您通常会看到 GIF 而不是实际视频)可能是一个好主意。ttygif 等工具可以提供帮助,但请查看 Asciinema 以获取更复杂的方法。
## 安装说明
在特定的生态系统中,可能有安装东西的通用方法,例如使用 Yarn、NuGet 或 Homebrew。但是,请考虑到阅读您的 README 的人可能是新手,并且需要更多指导。列出具体的步骤有助于消除歧义,并使人们能尽快使用您的项目。如果它只能在特定的上下文中运行(如特定的编程语言版本或操作系统),或者有必须手动安装的依赖项,请同时添加“环境要求”小节。
## 用法
大量使用示例,并尽可能展示预期的输出。在行内包含您可以演示的最小用法示例是非常有帮助的,同时对于过于复杂而不适合合理地包含在 README 中的示例,请提供相关链接。
## 支持
告诉人们可以在哪里寻求帮助。它可以是 issue 跟踪器、聊天室、电子邮件地址等的任意组合。
## 路线图
如果您对未来的版本有想法,最好将它们列在 README 中。
## 贡献
说明您是否接受贡献,以及您接受它们的要求是什么。
对于那些想要对您的项目进行更改的人,提供一些关于如何开始的文档是很有帮助的。也许有一个他们应该运行的脚本,或者一些他们需要设置的环境变量。把这些步骤说明确。这些说明对未来的您自己也可能很有用。
您还可以记录用于 lint 代码或运行测试的命令。这些步骤有助于确保高代码质量,并降低更改无意中破坏某些内容的可能性。如果运行测试需要外部设置(例如启动 Selenium 服务器以在浏览器中进行测试),那么提供运行测试的说明将特别有帮助。
## 作者和致谢
向那些对项目做出贡献的人表达您的感激之情。
## 许可证
对于开源项目,请说明其许可方式。
## 项目状态
如果您已经没有精力或时间投入到您的项目中,请在 README 顶部添加一条说明,表明开发已经放缓或完全停止。有人可能会选择 fork 您的项目,或者自愿担任维护者或所有者,从而使您的项目得以继续。您也可以明确提出对维护者的请求。标签:AI安全编排, MITM代理, Neo4j图数据库, Python, TypeScript, XXE攻击, 反取证, 安全插件, 安全评估, 密码管理, 插件系统, 无后门, 自动化渗透测试, 请求拦截, 逆向工具