Files
CyberStrikeAI/README_CN.md

327 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<div align="center">
<img src="web/static/logo.png" alt="CyberStrikeAI Logo" width="300">
</div>
# CyberStrikeAI
[中文](README_CN.md) | [English](README.md)
CyberStrikeAI 是一款 **AI 原生渗透测试协同体**,以 Go 编写,内置上百款安全工具,完整支持 MCP 协议,能够让智能体按照对话指令自主规划、执行并总结一次完整的安全测试流程。
<div align="left">
<a href="https://zc.tencent.com/competition/competitionHackathon?code=cha004" target="_blank">
<img src="./img/tch.png" alt="TCH Top-Ranked Intelligent Pentest Project" width="300">
</a>
</div>
- Web 控制台
<img src="./img/效果.png" alt="Preview" width="560">
- MCP stdio 模式
<img src="./img/mcp-stdio2.png" alt="Preview" width="560">
- 外部 MCP 服务器 & 攻击链视图
<img src="./img/外部MCP接入.png" alt="Preview" width="560">
<img src="./img/攻击链.png" alt="Preview" width="560">
## 特性速览
- 🤖 兼容 OpenAI/DeepSeek/Claude 等模型的智能决策引擎
- 🔌 原生 MCP 协议,支持 HTTP / stdio 以及外部 MCP 接入
- 🧰 100+ 现成工具模版 + YAML 扩展能力
- 📄 大结果分页、压缩与全文检索
- 🔗 攻击链可视化、风险打分与步骤回放
- 🔒 Web 登录保护、审计日志、SQLite 持久化
- 📚 知识库功能:向量检索与混合搜索,为 AI 提供安全专业知识
## 工具概览
系统预置 100+ 渗透/攻防工具,覆盖完整攻击链:
- **网络扫描**nmap、masscan、rustscan、arp-scan、nbtscan
- **Web 应用扫描**sqlmap、nikto、dirb、gobuster、feroxbuster、ffuf、httpx
- **漏洞扫描**nuclei、wpscan、wafw00f、dalfox、xsser
- **子域名枚举**subfinder、amass、findomain、dnsenum、fierce
- **网络空间搜索引擎**fofa_search、zoomeye_search
- **API 安全**graphql-scanner、arjun、api-fuzzer、api-schema-analyzer
- **容器安全**trivy、clair、docker-bench-security、kube-bench、kube-hunter
- **云安全**prowler、scout-suite、cloudmapper、pacu、terrascan、checkov
- **二进制分析**gdb、radare2、ghidra、objdump、strings、binwalk
- **漏洞利用**metasploit、msfvenom、pwntools、ropper、ropgadget
- **密码破解**hashcat、john、hashpump
- **取证分析**volatility、volatility3、foremost、steghide、exiftool
- **后渗透**linpeas、winpeas、mimikatz、bloodhound、impacket、responder
- **CTF 实用工具**stegsolve、zsteg、hash-identifier、fcrackzip、pdfcrack、cyberchef
- **系统辅助**exec、create-file、delete-file、list-files、modify-file
## 基础使用
### 快速上手
1. **获取代码并安装依赖**
```bash
git clone https://github.com/Ed1s0nZ/CyberStrikeAI.git
cd CyberStrikeAI-main
go mod download
```
2. **初始化 Python 虚拟环境tools 目录所需)**
`tools/*.yaml` 中大量工具(如 `api-fuzzer`、`http-framework-test`、`install-python-package` 等)依赖 Python 生态。首次进入项目根目录时请创建本地虚拟环境并安装依赖:
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
两个 Python 专用工具(`install-python-package` 与 `execute-python-script`)会自动检测该 `venv`(或已经激活的 `$VIRTUAL_ENV`),因此默认 `env_name` 即可满足大多数场景。
3. **配置模型与鉴权**
启动后在 Web 端 `Settings` 填写,或直接编辑 `config.yaml`
```yaml
openai:
api_key: "sk-your-key"
base_url: "https://api.openai.com/v1"
model: "gpt-4o"
auth:
password: "" # 为空则首次启动自动生成强口令
session_duration_hours: 12
security:
tools_dir: "tools"
```
4. **按需安装安全工具(可选)**
```bash
# macOS
brew install nmap sqlmap nuclei httpx gobuster feroxbuster subfinder amass
# Ubuntu/Debian
sudo apt-get install nmap sqlmap nuclei httpx gobuster feroxbuster
```
未安装的工具会自动跳过或改用替代方案。
5. **启动服务**
```bash
chmod +x run.sh && ./run.sh
# 或
go run cmd/server/main.go
# 或
go build -o cyberstrike-ai cmd/server/main.go
```
6. **浏览器访问** http://localhost:8080 ,使用日志中提示的密码登录并开始对话。
### 常用流程
- **对话测试**自然语言触发多步工具编排SSE 实时输出。
- **工具监控**:查看任务队列、执行日志、大文件附件。
- **会话历史**:所有对话与工具调用保存在 SQLite可随时重放。
- **可视化配置**:在界面中切换模型、启停工具、设置迭代次数等。
### 默认安全措施
- 设置面板内置必填校验,防止漏配 API Key/Base URL/模型。
- `auth.password` 为空时自动生成 24 位强口令并写回 `config.yaml`。
- 所有 API除登录外都需携带 Bearer Token统一鉴权中间件拦截。
- 每个工具执行都带有超时、日志和错误隔离。
## 进阶使用
### 工具编排与扩展
- `tools/*.yaml` 定义命令、参数、提示词与元数据,可热加载。
- `security.tools_dir` 指向目录即可批量启用;仍支持在主配置里内联定义。
- **大结果分页**:超过 200KB 的输出会保存为附件,可通过 `query_execution_result` 工具分页、过滤、正则检索。
- **结果压缩/摘要**:多兆字节日志可先压缩或生成摘要再写入 SQLite减小档案体积。
**自定义工具的一般步骤**
1. 复制 `tools/` 下现有示例(如 `tools/sample.yaml`)。
2. 修改 `name`、`command`、`args`、`short_description` 等基础信息。
3. 在 `parameters[]` 中声明位置参数或带 flag 的参数,方便智能体自动拼装命令。
4. 视需要补充 `description` 或 `notes`,给 AI 额外上下文或结果解读提示。
5. 重启服务或在界面中重新加载配置,新工具即可在 Settings 面板中启用/禁用。
### 攻击链分析
- 智能体解析每次对话,抽取目标、工具、漏洞与因果关系。
- Web 端可交互式查看链路节点、风险级别及时间轴,支持导出报告。
### MCP 全场景
- **Web 模式**:自带 HTTP MCP 服务供前端调用。
- **MCP stdio 模式**`go run cmd/mcp-stdio/main.go` 可接入 Cursor/命令行。
- **外部 MCP 联邦**:在设置中注册第三方 MCPHTTP/stdio按需启停并实时查看调用统计与健康度。
#### MCP stdio 快速集成
1. **编译可执行文件**(在项目根目录执行):
```bash
go build -o cyberstrike-ai-mcp cmd/mcp-stdio/main.go
```
2. **在 Cursor 中配置**
打开 `Settings → Tools & MCP → Add Custom MCP`,选择 **Command**,指定编译后的程序与配置文件:
```json
{
"mcpServers": {
"cyberstrike-ai": {
"command": "/absolute/path/to/cyberstrike-ai-mcp",
"args": [
"--config",
"/absolute/path/to/config.yaml"
]
}
}
}
```
将路径替换成你本地的实际地址Cursor 会自动启动 stdio 版本的 MCP。
#### MCP HTTP 快速集成
1. 确认 `config.yaml` 中 `mcp.enabled: true`,按照需要调整 `mcp.host` / `mcp.port`(本地建议 `127.0.0.1:8081`)。
2. 启动主服务(`./run.sh` 或 `go run cmd/server/main.go`MCP 端点默认暴露在 `http://<host>:<port>/mcp`。
3. 在 Cursor 内 `Add Custom MCP → HTTP`,将 `Base URL` 设置为 `http://127.0.0.1:8081/mcp`。
4. 也可以在项目根目录创建 `.cursor/mcp.json` 以便团队共享:
```json
{
"mcpServers": {
"cyberstrike-ai-http": {
"transport": "http",
"url": "http://127.0.0.1:8081/mcp"
}
}
}
```
### 知识库功能
- **向量检索**AI 智能体在对话过程中可自动调用 `search_knowledge_base` 工具搜索知识库中的安全知识。
- **混合检索**:结合向量相似度搜索与关键词匹配,提升检索准确性。
- **自动索引**:扫描 `knowledge_base/` 目录下的 Markdown 文件,自动构建向量嵌入索引。
- **Web 管理**:通过 Web 界面创建、更新、删除知识项,支持分类管理。
- **检索日志**:记录所有知识检索操作,便于审计与调试。
**快速开始(使用预构建知识库):**
1. **下载知识数据库**:从 [GitHub Releases](https://github.com/Ed1s0nZ/CyberStrikeAI/releases) 下载预构建的知识数据库文件。
2. **解压并放置**:将下载的知识数据库文件(`knowledge.db`)解压后放到项目的 `data/` 目录下。
3. **重启服务**:重启 CyberStrikeAI 服务,知识库即可直接使用,无需重新构建索引。
**知识库配置步骤:**
1. **启用功能**:在 `config.yaml` 中设置 `knowledge.enabled: true`
```yaml
knowledge:
enabled: true
base_path: knowledge_base
embedding:
provider: openai
model: text-embedding-v4
base_url: "https://api.openai.com/v1" # 或你的嵌入模型 API
api_key: "sk-xxx"
retrieval:
top_k: 5
similarity_threshold: 0.7
hybrid_weight: 0.7
```
2. **添加知识文件**:将 Markdown 文件放入 `knowledge_base/` 目录,按分类组织(如 `knowledge_base/SQL注入/README.md`)。
3. **扫描索引**:在 Web 界面中点击"扫描知识库",系统会自动导入文件并构建向量索引。
4. **对话中使用**AI 智能体在需要安全知识时会自动调用知识检索工具。你也可以显式要求:"搜索知识库中关于 SQL 注入的技术"。
**知识库结构说明:**
- 文件按分类组织(目录名作为分类)。
- 每个 Markdown 文件自动切块并生成向量嵌入。
- 支持增量更新,修改后的文件会自动重新索引。
### 自动化与安全
- **REST API**:认证、会话、任务、监控等接口全部开放,可与 CI/CD 集成。
- **任务控制**:支持暂停/终止长任务、修改参数后重跑、流式获取日志。
- **安全管理**`/api/auth/change-password` 可即时轮换口令;建议在暴露 MCP 端口时配合网络层 ACL。
## 配置参考
```yaml
auth:
password: "change-me"
session_duration_hours: 12
server:
host: "0.0.0.0"
port: 8080
log:
level: "info"
output: "stdout"
mcp:
enabled: true
host: "0.0.0.0"
port: 8081
openai:
api_key: "sk-xxx"
base_url: "https://api.deepseek.com/v1"
model: "deepseek-chat"
database:
path: "data/conversations.db"
knowledge_db_path: "data/knowledge.db" # 可选:知识库独立数据库
security:
tools_dir: "tools"
knowledge:
enabled: false # 是否启用知识库功能
base_path: "knowledge_base" # 知识库目录路径
embedding:
provider: "openai" # 嵌入模型提供商(目前仅支持 openai
model: "text-embedding-v4" # 嵌入模型名称
base_url: "" # 留空则使用 OpenAI 配置的 base_url
api_key: "" # 留空则使用 OpenAI 配置的 api_key
retrieval:
top_k: 5 # 检索返回的 Top-K 结果数量
similarity_threshold: 0.7 # 相似度阈值0-1低于此值的结果将被过滤
hybrid_weight: 0.7 # 混合检索权重0-1向量检索的权重1.0 表示纯向量检索0.0 表示纯关键词检索
```
### 工具模版示例(`tools/nmap.yaml`
```yaml
name: "nmap"
command: "nmap"
args: ["-sT", "-sV", "-sC"]
enabled: true
short_description: "网络资产扫描与服务指纹识别"
parameters:
- name: "target"
type: "string"
description: "IP 或域名"
required: true
position: 0
- name: "ports"
type: "string"
flag: "-p"
description: "端口范围,如 1-1000"
```
## 项目结构
```
CyberStrikeAI/
├── cmd/ # Web 服务、MCP stdio 入口及辅助工具
├── internal/ # Agent、MCP 核心、路由与执行器
├── web/ # 前端静态资源与模板
├── tools/ # YAML 工具目录(含 100+ 示例)
├── img/ # 文档配图
├── config.yaml # 运行配置
├── run.sh # 启动脚本
└── README*.md
```
## 基础体验示例
```
扫描 192.168.1.1 的开放端口
对 192.168.1.1 做 80/443/22 重点扫描
检查 https://example.com/page?id=1 是否存在 SQL 注入
枚举 https://example.com 的隐藏目录与组件漏洞
获取 example.com 的子域并批量执行 nuclei
```
## 进阶剧本示例
```
加载侦察剧本:先 amass/subfinder再对存活主机进行目录爆破。
挂载基于 Burp 的外部 MCP完成认证流量回放并回传到攻击链。
将 5MB nuclei 报告压缩并生成摘要,附加到对话记录。
构建最新一次测试的攻击链,只导出风险 >= 高的节点列表。
```
## Changelog近期
- 2025-12-24 —— 重构攻击链生成逻辑,生成速度提升一倍。重构攻击链前端页面展示,优化用户体验。
- 2025-12-20 —— 新增知识库功能支持向量检索、混合搜索与自动索引AI 智能体可在对话中自动搜索安全知识。
- 2025-12-19 —— 新增钟馗之眼ZoomEye网络空间搜索引擎工具zoomeye_search支持 IPv4/IPv6/Web 等资产搜索、统计项查询与灵活的查询参数配置。
- 2025-12-18 —— 优化 Web 前端界面,增加侧边栏导航,提升用户体验。
- 2025-12-07 —— 新增 FOFA 网络空间搜索引擎工具fofa_search支持灵活的查询参数与字段配置。
- 2025-12-07 —— 修复位置参数处理 bug当工具参数使用默认值时确保后续参数位置正确传递。
- 2025-11-20 —— 支持超大日志/MCP 记录的自动压缩与摘要回写。
- 2025-11-17 —— 上线 AI 驱动的攻击链图谱与风险评分。
- 2025-11-15 —— 提供大结果分页检索与外部 MCP 挂载能力。
- 2025-11-14 —— 工具检索 O(1)、执行记录清理、数据库分页优化。
- 2025-11-13 —— Web 鉴权、Settings 面板与 MCP stdio 模式发布。
---
欢迎提交 Issue/PR 贡献新的工具模版或优化建议!