Guardian 是一款生产就绪、由AI驱动的渗透测试自动化命令行工具,它利用Google Gemini和LangChain来编排智能、逐步的渗透测试工作流程,同时保持道德黑客标准。
Guardian 是一款企业级 AI 驱动的渗透测试自动化框架,它结合了多种 AI 提供商(OpenAI GPT-4、Claude、Google Gemini、OpenRouter、Requesty)与经过实战检验的安全工具,提供智能、自适应的安全评估以及全面的证据捕获能力。
Guardian 仅供授权的安全测试和教育目的使用。
您有完全责任确保在测试任何系统之前获得明确的书面授权。 未经授权访问计算机系统是违法的,违反法律包括《计算机欺诈和滥用法》(CFAA)、《通用数据保护条例》(GDPR)以及相应的国际立法。
使用 Guardian 即表示您同意仅在您拥有或已获明确授权测试的系统上使用它。
[project.entry-points."guardian.providers"] 提供,无需 forkthink_deeply 交换恢复 —— 大模型思考,小模型裁判,成本降低约 10 倍10 个类别中的 50 个集成安全工具:
execution_id 链接到其源工具执行session_<id>.json 支持 --resumedepends_on 的步骤并行运行,最多 max_parallel_toolsparameters: {key: "{{ <id>.parsed.alive_hosts }}"} 针对先前步骤结果进行解析when: 子句根据先前输出控制执行--resume 从最后完成的步骤之后继续agent: debate | visual | analystsecurity-severity,基于 execution_id 的去重 fingerprintsguardian report --export sarif --export defectdojo --export slack<UNTRUSTED_TOOL_OUTPUT> 分隔符包装,并剥离 ANSI 转义asyncio 子进程执行;智能体异步--help 保持在 500ms 以下如果安装了这些工具,Guardian 可以智能地使用它们:
注意:Guardian 可以在没有外部工具的情况下工作,但扫描能力有限。AI 会根据可用工具自适应调整。
git clone https://github.com/zakirkun/guardian-cli.git cd guardian-cli
### 第二步:设置 Python 环境
**Linux/macOS:**```bash
python3 -m venv venv
source venv/bin/activate
pip install -e .
Windows:```powershell python -m venv venv .\venv\Scripts\activate pip install -e .
### 步骤 3:配置 AI 提供商
Guardian 支持多个 AI 提供商。在 `config/guardian.yaml` 中配置您偏好的提供商:```yaml
# config/guardian.yaml
ai:
# Choose your provider: openai, claude, gemini, openrouter, or requesty
provider: openai
# OpenAI Configuration (recommended)
openai:
model: gpt-4o
api_key: sk-your-api-key-here # Or set OPENAI_API_KEY env var
# Claude Configuration
claude:
model: claude-3-5-sonnet-20241022
api_key: null # Or set ANTHROPIC_API_KEY env var
# Gemini Configuration
gemini:
model: gemini-2.5-pro
api_key: null # Or set GOOGLE_API_KEY env var
# OpenRouter Configuration
openrouter:
model: anthropic/claude-3.5-sonnet
api_key: null # Or set OPENROUTER_API_KEY env var
# Requesty Configuration (OpenAI-compatible gateway)
requesty:
model: openai/gpt-4o-mini
api_key: null # Or set REQUESTY_API_KEY env var
或者使用环境变量:```bash
export OPENAI_API_KEY="sk-your-key-here" export ANTHROPIC_API_KEY="sk-ant-your-key-here" export GOOGLE_API_KEY="your-gemini-key" export OPENROUTER_API_KEY="your-router-key" export REQUESTY_API_KEY="your-requesty-key"
$env:OPENAI_API_KEY="sk-your-key-here" $env:ANTHROPIC_API_KEY="sk-ant-your-key-here"
### 步骤 4:初始化配置```bash
# Verify installation
python -m cli.main --help
# Check AI provider status
python -m cli.main models
python -m cli.main workflow list
python -m cli.main models
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
### 使用场景示例
#### 1. 快速 Web 应用渗透测试```bash
# Fast security check with evidence capture
python -m cli.main workflow run --name web_pentest --target https://dvwa.csalab.app
预期输出:
python -m cli.main workflow run --name network --target 192.168.1.0/24
#### 3. 使用参数的自定义工作流```bash
# Run with workflow-specific parameters
# Parameters in workflow YAML override config defaults
python -m cli.main workflow run --name web_pentest --target example.com
工作流参数优先级:
python -m cli.main report --session 20260203_175905 --format html
#### 5. 切换 AI 提供商```bash
# Use OpenAI GPT-4
python -m cli.main workflow run --name web_pentest --target example.com --provider openai
# Use Claude
python -m cli.main workflow run --name web_pentest --target example.com --provider claude
# Use Gemini
python -m cli.main workflow run --name web_pentest --target example.com --provider gemini
# Local Ollama (no cloud)
OLLAMA_HOST=http://localhost:11434 python -m cli.main workflow run --name recon --target scanme.nmap.org --provider ollama
# Any OpenAI-compatible endpoint (vLLM, LM Studio, Together, Groq)
python -m cli.main workflow run --name web_pentest --target example.com --provider openai_compatible
python -m cli.main kb seed
python -m cli.main kb status
python -m cli.main kb query "log4j JNDI" --top 5
python -m cli.main kb update --kind cve --file ./nvd-2025.json
在 `config/guardian.yaml` 中启用分析师定位:```yaml
rag:
enabled: true
top_k: 5
python -m cli.main workflow run --name web_pentest_with_debate --target https://example.com
三个角色(红方辩护人、蓝方辩护人、评审员)仅对有争议的调查结果进行辩论——有把握的裁决跳过辩论以限制代币成本。
#### 8. 视觉分诊(vision-LLM)```bash
# Captures full-page screenshots and feeds them to a vision-capable provider
python -m cli.main workflow run --name web_visual_pentest --target https://example.com --provider openai
需要 playwright:pip install playwright && python -m playwright install chromium。当活动提供商没有视觉支持时,会静默跳过。
python -m cli.main report --session 20260203_175905 --export sarif
python -m cli.main report --session 20260203_175905 --export sarif --export defectdojo --export slack
--slack-webhook https://hooks.slack.com/services/...
#### 10. 遥测 + 学习排名器(离线)```bash
# Anonymise sessions into JSONL (no raw targets, no commands, no secrets)
python -m cli.main telemetry export ./reports --out telemetry.jsonl
# Train the offline tool ranker
python -m cli.main telemetry train telemetry.jsonl
# Inspect what the ranker learned
python -m cli.main telemetry status
在配置中启用:```yaml ai: use_learned_ranker: true # ToolAgent calls ranker before LLM selector
> **Windows 用户**: 使用 `python -m cli.main` 而不是 `guardian`
---
## 🔧 配置
### 完整配置参考
编辑 `config/guardian.yaml` 来自定义 Guardian 的行为:```yaml
# AI Configuration
ai:
provider: openai # openai, claude, gemini, openrouter, requesty
openai:
model: gpt-4o
api_key: sk-your-key # Or use OPENAI_API_KEY env var
claude:
model: claude-3-5-sonnet-20241022
api_key: null
gemini:
model: gemini-2.5-pro
api_key: null
temperature: 0.2
max_tokens: 8000
# Penetration Testing Settings
pentest:
safe_mode: true # Prevent destructive actions
require_confirmation: true # Confirm before each step
max_parallel_tools: 3 # Concurrent tool execution
max_depth: 3 # Maximum scan depth
tool_timeout: 300 # Tool timeout in seconds
# Output Configuration
output:
format: markdown # markdown, html, json
save_path: ./reports
include_reasoning: true
verbosity: normal # quiet, normal, verbose, debug
# Scope Validation
scope:
blacklist: # Never scan these
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
require_scope_file: false
max_targets: 100
# Tool Configuration (defaults)
tools:
httpx:
threads: 50
timeout: 10
tech_detect: true
nuclei:
severity: ["critical", "high", "medium"]
templates_path: ~/nuclei-templates
nmap:
default_args: "-sV -sC"
timing: T4
在 workflows/ 目录中创建自定义工作流:```yaml
name: custom_web_assessment description: Custom web security testing
steps:
name: http_discovery type: tool tool: httpx parameters: threads: 100 # Override config default (50) timeout: 15 # Override config default (10) tech_detect: true
name: vulnerability_scan type: tool tool: nuclei parameters: severity: ["critical", "high"] # Override config templates_path: ".shared/nuclei/templates/"
name: generate_report type: report
**参数优先级:**
- 工作流参数 **覆盖** 配置文件参数
- 配置文件参数 **覆盖** 工具默认值
- 自包含、可重用的工作流
---
## 📖 文档
### 用户指南
- **[快速入门指南](https://github.com/zakirkun/guardian-cli/blob/main/QUICKSTART.md)** - 5 分钟内上手运行
- **[命令参考](https://github.com/zakirkun/guardian-cli/blob/main/docs)** - 所有命令的详细文档
- **[配置指南](https://github.com/zakirkun/guardian-cli/blob/main/config/guardian.yaml)** - 完整的配置参考
- **[工作流指南](https://github.com/zakirkun/guardian-cli/blob/main/docs/WORKFLOW_GUIDE.md)** - 创建自定义工作流
- **[评估指南](https://github.com/zakirkun/guardian-cli/blob/main/docs/EVAL_GUIDE.md)** - 运行和扩展评估工具
- **[插件指南](https://github.com/zakirkun/guardian-cli/blob/main/docs/PLUGIN_GUIDE.md)** - 发布第三方提供者和工具
- **[变更日志](https://github.com/zakirkun/guardian-cli/blob/main/CHANGELOG.md)** - 版本历史和迁移说明
### 开发者指南
- **[创建自定义工具](https://github.com/zakirkun/guardian-cli/blob/main/docs/TOOLS_DEVELOPMENT_GUIDE.md)** - 构建自己的工具集成
- **[工作流开发](https://github.com/zakirkun/guardian-cli/blob/main/docs/WORKFLOW_GUIDE.md)** - 创建自定义测试工作流
- **[可用工具](https://github.com/zakirkun/guardian-cli/blob/main/tools/README.md)** - 集成工具概览
### 架构概览```
Guardian Architecture:
┌─────────────────────────────────────────┐
│ AI Provider Layer │
│ (OpenAI, Claude, Gemini, OpenRouter, │
│ Requesty) │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Multi-Agent System │
│ Planner → Tool Agent → Analyst → │
│ Reporter │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Workflow Engine │
│ - Parameter Priority │
│ - Evidence Capture │
│ - Session Management │
└─────────────────────────────────────────┘
│
┌─────────────────────────────────────────┐
│ Tool Integration Layer │
│ (19 Security Tools) │
└─────────────────────────────────────────┘
guardian-cli/ ├── ai/ # AI integration │ └── providers/ # Multi-provider support │ ├── base_provider.py │ ├── openai_provider.py │ ├── claude_provider.py │ ├── gemini_provider.py │ ├── openrouter_provider.py │ └── requesty_provider.py ├── cli/ # Command-line interface │ └── commands/ # CLI commands (init, scan, recon, etc.) ├── core/ # Core agent system │ ├── agent.py # Base agent │ ├── planner.py # Planner agent │ ├── tool_agent.py # Tool selection agent │ ├── analyst_agent.py # Analysis agent │ ├── reporter_agent.py # Reporting agent │ ├── memory.py # State management │ └── workflow.py # Workflow orchestration ├── tools/ # Pentesting tool wrappers │ ├── nmap.py # Nmap integration │ ├── masscan.py # Masscan integration │ ├── httpx.py # httpx integration │ ├── subfinder.py # Subfinder integration │ ├── amass.py # Amass integration │ ├── nuclei.py # Nuclei integration │ ├── sqlmap.py # SQLMap integration │ ├── wpscan.py # WPScan integration │ ├── whatweb.py # WhatWeb integration │ ├── wafw00f.py # Wafw00f integration │ ├── nikto.py # Nikto integration │ ├── testssl.py # TestSSL integration │ ├── sslyze.py # SSLyze integration │ ├── gobuster.py # Gobuster integration │ ├── ffuf.py # FFuf integration │ └── ... # 15 tools total ├── workflows/ # Workflow definitions (YAML) ├── utils/ # Utilities (logging, validation) ├── config/ # Configuration files ├── docs/ # Documentation └── reports/ # Generated reports
---
## 🆕 最新更新
### 版本 4.0.0 — 新型研发与覆盖扩展
**轨道 A — AI/Agent 研发(7 项)**
| ID | 项 | 亮点 |
|---|---|---|
| A1 | RAG 知识库 | `core/knowledge_base.py` SQLite + FTS5 + 可选嵌入;通过 `kb_references` 槽位进行分析师 grounding;`guardian kb {seed,update,query,status}` |
| A2 | 多智能体辩论分类 | 仅对 MEDIUM-fp 发现进行红/蓝/法官辩论;新增分析步骤类型 `agent: debate` |
| A3 | 视觉-LLM 截图分析 | `tools/playwright_screenshot.py` + `core/agents/visual_triage.py`;OpenAI + Claude `generate_with_images` |
| A4 | 插件契约与本地提供商 | 提供商和工具的入口点发现;附带了 **Ollama** 和 **OpenAI 兼容** 提供商 |
| A5 | 学习型工具选择(离线) | `core/learners/tool_ranker.py` + `core/telemetry.py`;通过 `ai.use_learned_ranker: true` 可选启用 |
| A6 | 评估工具链 | `evals/{__init__,scoring,fixtures_loader,test_*}.py` + 黄金标准测试夹具;3 个层级(解析器、工作流、Agent grounding) |
| A7 | 裁判模型升级 | `BaseAgent.think_deeply(judge_model=...)` 交换与恢复;转录式评判大约降低 10 倍成本 |
**轨道 B — 工具覆盖扩展(7 项)**
| ID | 类别 | 新增工具 |
|---|---|---|
| B8 | Active Directory | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| B9 | 移动 Android | mobsf, apkleaks, objection |
| B10 | API 模糊测试器 | schemathesis, restler, cariddi |
| B11 | SAST + 密钥扫描 | semgrep, trufflehog, dependency-check |
| B12 | LLM 红队 | garak, pyrit, prompt_fuzz |
| B13 | Burp/ZAP 桥接 | zap, burp |
| B14 | 输出导出器 | SARIF v2.1.0, DefectDojo, Slack |
**质量门槛:**
- 296 项测试通过(比 v3 基线 153 项增加 93%)
- 所有 v3 强化措施得以保留:提示注入分隔符、密钥擦除、DNS 解析范围、原子检查点、日志轮换、懒加载工具
- `guardian --help` 启动时间在拥有 50 个工具的情况下保持在 500 毫秒以内
- 新增 CLI 界面:`guardian kb`、`guardian telemetry`
- 8 个新自带工作流:`web_pentest_with_debate`、`web_visual_pentest`、`ad_assessment`、`mobile_android`、`llm_redteam`、`sast_review`、`api_pentest_v2`,以及现有的 v3 工作流
### 版本 3.0.0 — 强化与引擎 v2
- 所有工具输出添加提示注入分隔符(`<UNTRUSTED_TOOL_OUTPUT>`)
- DAG 调度器、Pydantic 模式、原子检查点、`--resume`
- 11 个新包装器(云/容器/SBOM/GraphQL/JWT/OSINT)
- CVSS v3.1 重新计算 + 漂移检测
- 日志轮换、写入时密钥擦除
- 确认门控已为主动+工具连接
### 版本 2.0.0
- 多提供商 AI(OpenAI、Claude、Gemini、OpenRouter、Requesty)
- 通过 `execution_id` 进行证据链接
- 工作流参数优先级系统
---
## 🤝 贡献
我们欢迎贡献!方法如下:
### 设置开发环境```bash
# Fork and clone
git clone https://github.com/zakirkun/guardian-cli.git
cd guardian-cli
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/
# Format code
black .
详细指南请参见 CONTRIBUTING.md。
v4.0.0 已发布版本:
--resume 的 DAG 工作流引擎未来计划:
导入错误```bash
pip install -e . --force-reinstall
**AI 提供商错误**```bash
# Verify API key is set
python -m cli.main models
# Check provider configuration
cat config/guardian.yaml | grep -A 5 "ai:"
未找到工具```bash
which nmap which httpx
**工作流未加载**```bash
# Check workflow file exists
ls workflows/web_pentest.yaml
# Verify YAML syntax
python -c "import yaml; yaml.safe_load(open('workflows/web_pentest.yaml'))"
Windows 命令未找到```powershell
python -m cli.main --help
如需更多帮助,请[提交问题](https://github.com/zakirkun/guardian-cli/issues)。
---
## 📄 许可证
本项目基于MIT许可证授权 - 详见[LICENSE](https://github.com/zakirkun/guardian-cli/blob/main/LICENSE)文件。
---
## 🙏 致谢
- **OpenAI** - GPT-4 能力
- **Anthropic** - Claude AI
- **Google** - Gemini AI
- **LangChain** - AI 编排框架
- **ProjectDiscovery** - 开源安全工具(httpx、subfinder、nuclei)
- **Nmap** - 网络探测与安全审计
- **安全社区** - 工具开发者与研究人员
---
## 📞 支持与联系
- **GitHub Issues**:[报告错误或请求功能](https://github.com/zakirkun/guardian-cli/issues)
- **讨论**:[加入社区讨论](https://github.com/zakirkun/guardian-cli/discussions)
- **文档**:[阅读文档](https://github.com/zakirkun/guardian-cli/blob/main/docs)
- **安全**:私下报告漏洞至 [email protected]
---
## 🌟 星标历史
<a href="https://github.com/zakirkun/guardian-cli/stargazers">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zakirkun/guardian-cli&type=Date" />
星标历史图表
</picture>
</a>
---
---
<div align="center">
**Guardian** - 智能、道德、自动化渗透测试
由安全社区用❤️制作
[⬆ 返回顶部](#-guardian)
</div>
| 类别 | 工具 |
|---|
| 网络 | nmap, masscan |
| Web 侦察 | httpx, whatweb, wafw00f, cmseek |
| 子域名 / DNS | subfinder, amass, dnsrecon |
| 漏洞扫描 | nuclei, nikto, sqlmap, wpscan |
| SSL/TLS 测试 | testssl, sslyze |
| 内容发现 | gobuster, ffuf, arjun |
| 安全分析 | xsstrike, gitleaks |
| 云 / 容器 / SBOM | trivy, grype, syft, scoutsuite, prowler, kube-bench |
| 现代 Web + OSINT | graphw00f, clairvoyance, jwt_tool, shodan, theharvester |
| SAST + 机密(B11) | semgrep, trufflehog, dependency-check |
| API 模糊测试(B10) | schemathesis, cariddi, restler |
| Burp/ZAP 桥接(B13) | zap, burp |
| LLM 红队(B12) | garak, pyrit, prompt_fuzz |
| 移动 Android(B9) | mobsf, apkleaks, objection |
| Active Directory(B8) | crackmapexec, bloodhound, kerbrute, impacket-secretsdump |
| 视觉证据(A3) | playwright_screenshot |
| 工具 | 用途 | 安装方式 |
|---|
| nmap | 端口扫描 | apt install nmap / choco install nmap |
| masscan | 超快速扫描 | apt install masscan / 从源码构建 |
| httpx | HTTP 探测 | go install github.com/projectdiscovery/httpx/cmd/httpx@latest |
| subfinder | 子域名枚举 | go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
| amass | 网络映射 | go install github.com/owasp-amass/amass/v4/...@master |
| nuclei | 漏洞扫描 | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| whatweb | 技术指纹识别 | gem install whatweb / apt install whatweb |
| wafw00f | WAF 检测 | pip install wafw00f |
| nikto | Web 漏洞扫描 | apt install nikto |
| sqlmap | SQL 注入 | pip install sqlmap / apt install sqlmap |
| wpscan | WordPress 扫描 | gem install wpscan |
| testssl | SSL/TLS 测试 | 从 testssl.sh 下载 |
| sslyze | SSL/TLS 分析 | pip install sslyze |
| gobuster | 目录暴力枚举 | go install github.com/OJ/gobuster/v3@latest |
| ffuf | Web 模糊测试 | go install github.com/ffuf/ffuf/v2@latest |
| arjun | 参数发现 | pip install arjun |
| xsstrike | 高级 XSS | git clone https://github.com/s0md3v/XSStrike |
| gitleaks | 密钥扫描 | go install github.com/zricethezav/gitleaks/v8@latest |
| cmseek | CMS 检测 | pip install cmseek |
| dnsrecon | DNS 枚举 | pip install dnsrecon |