ptkvaibhav/clinkz
GitHub: ptkvaibhav/clinkz
基于多智能体 LLM 编排的自主渗透测试系统,实现从信息收集到报告生成的全流程黑盒安全评估
Stars: 0 | Forks: 1
# Clinkz
**由多智能体协作驱动的自主 AI 渗透测试系统。**



## 概述
Clinkz 是一个自主的多智能体 AI 系统,可执行端到端的黑盒渗透测试。只需提供目标范围,它即可生成专业的渗透测试报告 —— 无需人工干预。
智能体通过 LLM 介导的 Orchestrator(编排器)进行实时协作,根据需要动态发现并执行安全工具。该系统遵循 MITRE ATT&CK 框架和 OWASP WSTG 方法论,以确保全面的覆盖范围。
## 架构
```
┌──────────────────┐
│ Orchestrator │
│ (Central Brain) │
└────────┬─────────┘
│
┌───────────┬───────┼───────┬───────────┐
│ │ │ │ │
┌─────┴──┐ ┌────┴──┐ ┌──┴───┐ ┌─┴────┐ ┌───┴────┐
│ Recon │ │ Scan │ │Exploit│ │Critic│ │ Report │
│ Agent │ │ Agent │ │ Agent │ │Agent │ │ Agent │
└───┬────┘ └───┬───┘ └──┬───┘ └──────┘ └────────┘
│ │ │
┌───┴────────────┴────────┴───┐
│ Tool Resolver │
│ MCP Servers │ Local CLI │
└─────────────────────────────┘
```
**工作原理:**
1. **Orchestrator** 接收测试范围并按需启动智能体
2. **Recon Agent** 发现子域名、服务和技术栈
3. **Scan Agent** 映射端点、参数和攻击面
4. **Exploit Agent** 实时研究 CVE 并尝试利用
5. **Critic Agent** 验证发现、消除误报、评估 CVSS
6. **Report Agent** 生成专业的渗透测试报告
智能体并非从一开始就全部运行 —— Orchestrator 会动态地启动和关闭它们。任何智能体都可以请求 Orchestrator 重新激活前一阶段的智能体以获取更多情报。
## 功能特性
- **多智能体自主性** —— 智能体通过 LLM 介导的编排器进行推理、行动和协作,无需人工干预
- **动态工具发现** —— 智能体描述所需的能力;Tool Resolver(工具解析器)会找到合适的工具(MCP server 或本地 CLI)
- **运行时 CVE 研究** —— Exploit Agent 在网上搜索针对所发现技术的 CVE、PoC 漏洞利用和 Bug Bounty 分析文章
- **凭据链式利用** —— 发现的凭据将被存储,并在各智能体间重复用于经过身份验证的测试
- **MITRE ATT&CK + OWASP WSTG** —— 内置知识库驱动具有方法论意识的测试
- **MCP 协议支持** —— 通过 Model Context Protocol 连接外部工具服务器
- **LLM 无关性** —— 支持 OpenAI、Anthropic、Google Gemini 和 Ollama(本地模型)
- **专业报告** —— 生成 HTML、PDF、JSON 和 Markdown 格式的多轮报告
## 快速开始
### 前置条件
- Python 3.12+
- Docker(用于沙盒工具执行和测试目标)
- 至少一个 LLM 提供商(OpenAI、Anthropic 或 Google Gemini)的 API key
### 安装
```
git clone https://github.com/ptkvaibhav/clinkz.git
cd clinkz
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e ".[dev]"
```
### 配置
复制示例环境文件并填入您的 API key:
```
cp .env.example .env
```
编辑 `.env` 以配置您的设置(参见下方的 [配置](#configuration-1))。
### Docker 设置
启动测试目标(DVWA、Juice Shop 等):
```
docker compose -f docker/docker-compose.yml up -d
```
### 运行扫描
```
# 全自动渗透测试
clinkz scan --target example.com --scope scope.json
# 仅 Recon 阶段
clinkz recon --target example.com
```
## 配置
所有配置均通过 `.env` 中的环境变量进行:
| Variable | Description | Default |
|----------|-------------|---------|
| `LLM_PROVIDER` | LLM 后端:`openai`、`anthropic`、`gemini`、`ollama` | `openai` |
| `ORCHESTRATOR_MODEL` | Orchestrator agent 使用的模型 | `gpt-4o` |
| `AGENT_MODEL` | 阶段智能体使用的模型 | `gpt-4o-mini` |
| `OPENAI_API_KEY` | OpenAI API key | — |
| `ANTHROPIC_API_KEY` | Anthropic API key | — |
| `GEMINI_API_KEY` | Google Gemini API key | — |
| `GOOGLE_API_KEY` | Google API key(`GEMINI_API_KEY` 的旧版别名) | — |
| `GEMINI_MODEL` | Gemini 模型名称 | `gemini-2.5-flash` |
| `OLLAMA_BASE_URL` | Ollama 服务器 URL | `http://localhost:11434` |
| `DB_PATH` | SQLite 数据库路径 | `clinkz.db` |
| `TOOL_TIMEOUT` | 工具执行超时时间(秒) | `300` |
| `TOOL_EXEC_MODE` | 工具执行模式:`local` 或 `docker` | `local` |
| `DOCKER_CONTAINER` | 用于沙盒执行的 Docker 容器名称 | `clinkz-tools` |
| `MCP_SERVERS` | MCP server 命令/URL 的 JSON 列表 | `[]` |
## 支持的工具
| Tool | Capability | Type |
|------|-----------|------|
| Nmap | 端口扫描与服务检测 | Local CLI |
| Subfinder | 子域名枚举 | Local CLI |
| httpx | HTTP 探测与技术检测 | Local CLI |
| WhatWeb | Web 技术指纹识别 | Local CLI |
| wafw00f | WAF 检测 | Local CLI |
| Katana | Web 爬虫 | Local CLI |
| ffuf | 目录与参数 Fuzzing | Local CLI |
| Nuclei | 漏洞扫描 | Local CLI |
| Nikto | Web 服务器扫描 | Local CLI |
| sqlmap | SQL 注入测试 | Local CLI |
| HTTP Client | 自定义 HTTP 请求 | Built-in |
| MCP Servers | 任何兼容 MCP 的工具 | MCP Protocol |
工具在运行时动态发现 —— 智能体绝不会硬编码工具名称。
## 智能体
| Agent | Role |
|-------|------|
| **Orchestrator** | 中央协调器 —— 路由消息、管理智能体生命周期、制定战略决策 |
| **Recon** | 侦察 —— 发现子域名、服务、技术栈、OSINT |
| **Scan** | 攻击面映射 —— 爬取端点、Fuzz 参数、识别输入向量 |
| **Exploit** | 漏洞利用 —— 研究 CVE、尝试 Exploit、链式利用漏洞 |
| **Critic** | 质量保证 —— 验证发现、检查 CVSS 评分、消除误报 |
| **Report** | 报告生成 —— 制作包含修复指导的专业渗透测试报告 |
## 报告输出
最终报告包含:
- 包含风险评级的高管摘要
- 附带 CVSS 评分的详细发现
- 每个漏洞的概念验证证据
- 分步复现说明
- 按严重程度优先排序的修复建议
- MITRE ATT&CK 和 OWASP WSTG 技术参考
- 完整的方法论检查清单及覆盖范围统计
输出格式:**HTML**、**PDF**、**JSON**、**Markdown**
## 测试
```
# 运行所有测试
pytest tests/
# 运行特定测试模块
pytest tests/test_tools/test_nmap.py -v
# 运行 with coverage
pytest --cov=clinkz tests/
```
## 项目结构
```
clinkz/
├── src/clinkz/
│ ├── agents/ # Phase agents (recon, scan, exploit, critic, report)
│ │ └── prompts/ # Agent system prompts
│ ├── comms/ # Message bus and communication protocol
│ ├── credentials/ # Credential store for chaining
│ ├── knowledge/ # MITRE ATT&CK, OWASP WSTG/API/LLM knowledge bases
│ ├── llm/ # LLM client abstraction (OpenAI, Anthropic, Gemini, Ollama)
│ ├── models/ # Pydantic models (scope, finding, target, report)
│ ├── orchestrator/ # Orchestrator agent and lifecycle manager
│ ├── reporting/ # Report generator and HTML/PDF renderer
│ ├── research/ # Runtime CVE/exploit research
│ └── tools/ # Tool wrappers and dynamic resolver
├── scripts/ # Demo and example scripts
├── tests/ # Test suite
├── docker/ # Docker configs for sandboxed execution
└── docs/ # Architecture and development docs
```
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发设置、代码风格以及如何添加新工具或智能体。
## 许可证
[MIT](LICENSE)
## 免责声明
**Clinkz 仅用于授权的安全测试。** 在测试任何系统之前,请务必获得明确的书面许可。对您不拥有或未获准测试的系统未经授权使用此工具是非法且不道德的。作者不对滥用行为承担任何责任。
标签:AI 编排, CISA项目, Cloudflare, CTI, DLL 劫持, GitHub, LLM 安全, MCP 服务器, MITRE ATT&CK, OWASP WSTG, PE 加载器, PyRIT, Python, 人工智能, 多智能体系统, 大语言模型, 安全报告生成, 密码管理, 插件系统, 攻击模拟, 无后门, 用户模式Hook绕过, 端到端测试, 结构化查询, 网络安全, 自主代理, 自动化安全, 请求拦截, 隐私保护, 驱动签名利用, 黑盒测试