[](https://go.dev)
[](LICENSE)
[](https://buymeacoffee.com/xalgorix)
最强大的开源 AI 自主渗透测试 Agent。
## 📸 截图
### Web UI 仪表盘

### 实时动态与漏洞

### 严重程度过滤与设置

### 扫描结果

## 🚀 Xalgorix — 最强大的开源 AI 渗透测试 Agent
**Xalgorix 是最全面的开源自主渗透测试平台。** 它结合了 AI 与 70 多种安全工具的强大功能,提供企业级的渗透测试服务——完全免费。
### 为什么 Xalgorix 是 #1
| 声明 | 现实 |
|-------|---------|
| **最完整** | ✅ 唯一具备 Web UI + 实时动态 + 聊天 + PDF + Discord 的开源工具 |
| **最详尽** | ✅ 3 种扫描模式:单一 → DAST → Wildcard (子域名枚举 → 逐个扫描) |
| **最自动化** | ✅ 自动安装工具,自动生成 PDF,自动发送 Discord 告警 |
| **最灵活** | ✅ 支持任何 LLM (OpenAI, Anthropic, DeepSeek, MiniMax, Google, Groq, Ollama) |
| **生产就绪** | ✅ 速率限制、熔断器、队列系统、严重程度过滤 |
### Xalgorix 的独特之处?
- **🚀 自主性** — 给定目标,即可自动运行。无需人工干预。
- **🧠 AI 驱动** — 利用 LLM 进行智能决策。
- **🔓 100% 免费** — 无 SaaS,无单次扫描费用,无限制。
- **🏠 自托管** — 数据绝不离开您的设备。
- **⚡ 闪电般快速** — 使用最大线程数,全面标志扫描。
- **🎯 精准** — 只报告可利用的漏洞,无误报。
- **🛡️ 安全** — 阻止破坏性命令,速率限制保护您的 IP。
## ✨ 主要功能
| 功能 | 描述 |
|---------|-------------|
| 🤖 **自主 Agent** | LLM 驱动的渗透测试,采用 20 阶段方法论 |
| 🎯 **单一扫描** | 对单个 URL/目标进行完整漏洞测试 |
| 🔍 **DAST 扫描** | 对特定 URL 进行深度漏洞测试 |
| 🌐 **Wildcard 扫描** | 枚举所有子域名 → 逐个扫描 |
| 🎯 **严重程度过滤** | 按 Critical/High/Medium/Low/Info 过滤 |
| 🚫 **范围外** | 定义要从测试中排除的目标 |
| 🔒 **安全优先** | 阻止破坏性命令,编码绕过检测 |
| 🔌 **熔断器** | 5 次尝试后自动阻止失败的工具 |
| 🌐 **Web UI** | 带实时动态和 token 跟踪的暗色模式仪表盘 |
| 💬 **扫描时聊天** | 扫描运行时向 agent 发送消息 |
| 📱 **移动端就绪** | 支持手机和平板电脑 |
| 💾 **扫描持久化** | 重启后恢复中断的扫描 |
| 📊 **PDF 报告** | 自动生成专业渗透测试报告 |
| 🔔 **Discord 告警** | 在扫描开始/发现漏洞/完成时收到通知 |
| 🔧 **自动安装** | 70+ 工具→包映射 |
| 🧠 **多 LLM** | OpenAI, Anthropic, DeepSeek, MiniMax, Groq, Ollama, Google |
| 🔐 **认证** | 可选的仪表盘登录保护 |
| 🔍 **CVE 搜索** | 查询 NIST NVD 数据库获取 CVE 详情 |
| 🐛 **Exploit 搜索** | 搜索 Exploit-DB 获取公开漏洞利用 |
| 🔎 **网络搜索** | 集成 Gemini, Brave, Google, Bing, DuckDuckGo |
| ✅ **工具预检** | 运行前自动安装缺失的工具 |
## 🆚 为什么选择 Xalgorix?
### 与开源替代方案的全面对比
| 功能 | Xalgorix | Shannon | Strix | PentestGPT | HexStrike | PentAGI | Nebula |
|---------|:--------:|:------:|:-----:|:----------:|:---------:|:-------:|:------:|
| **自托管** | ✅ | ⚠️ SaaS | ✅ | ✅ | ✅ | ✅ | ✅ |
| **黑盒测试** | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **白盒测试** | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| **Web UI 仪表盘** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **实时动态** | ✅ | ❌ | ❌ | ⚠️ 终端 | ❌ | ❌ | ❌ |
| **扫描时聊天** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **自动 PDF 报告** | ✅ | ✅ | ✅ | ⚠️ 手动 | ❌ | ❌ | ❌ |
| **Discord 告警** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **浏览器自动化** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **自动安装工具** | ✅ 70+ | ❌ | ⚠️ Docker | ⚠️ Docker | ⚠️ MCP | ⚠️ Docker | ⚠️ CLI |
| **速率限制** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **多目标队列** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **严重程度过滤** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **熔断器** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **DAST 模式** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Wildcard 扫描** | ✅ | ❌ | ❌ | ⚠️ 手动 | ❌ | ⚠️ 手动 | ❌ |
| **内置 CVE 搜索** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Exploit 搜索** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **网络搜索** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **需要源代码** | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **聚焦 Bug Bounty** | ✅ | ⚠️ SaaS | ✅ | ✅ | ⚠️ MCP | ⚠️ Docker | ✅ |
### 功能详情
- **Shannon** — 需要源代码(仅白盒),属于付费 Keygraph 平台的一部分
- **Strix** — 基于 Docker,适合 Bug Bounty,无 Web UI
- **PentestGPT** — 发表于 USENIX Security 2024,仅有终端界面
- **HexStrike** — MCP 服务器集成,通过 MCP 协议支持 150+ 工具
- **PentAGI** — 多 agent Docker 系统,设置复杂
- **Nebula** — CLI 助手,适合快速扫描,但方法论有限
### 为什么 Xalgorix 是最佳选择?
1. **🎯 最完整的 Web UI**
- 唯一拥有完整仪表盘、实时动态、聊天、token 跟踪的工具
- 实时查看所有内容,在扫描期间与 agent 交互
2. **🔄 多种扫描模式**
- Single: 快速目标扫描
- DAST: 深度 URL 漏洞测试
- Wildcard: 子域名枚举 → 逐个扫描
- 最全面的覆盖范围
3. **🔔 内置通知**
- 开始/发现漏洞/完成时的 Discord 告警
- 自动生成 PDF 报告
4. **🛡️ 生产就绪**
- 速率限制(保护您的 IP)
- 熔断器(自动阻止失败的工具)
- 队列系统(扫描多个目标)
- 严重程度过滤(专注于重要事项)
5. **🔍 内置研究工具**
- CVE 搜索 (NIST NVD)
- Exploit 搜索 (Exploit-DB)
- 网络搜索 (Gemini/Brave/Google)
6. **💰 100% 免费且开源**
- 无 SaaS 订阅
- 无单次扫描费用
- 数据保留在本地
### 竞争优势总结
| 您获得的功能 | Xalgorix | 其他 |
|--------------|----------|--------|
| **Web 仪表盘** | ✅ | ❌ 大多数 |
| **实时动态 + 聊天** | ✅ | ❌ |
| **自动 PDF + Discord** | ✅ | ❌ |
| **3 种扫描模式** | ✅ | ❌ |
| **工具自动安装** | ✅ 70+ | ⚠️ 手动 |
| **生产环境安全** | ✅ | ❌ |
| **永久免费** | ✅ | ✅ |
## 🛠️ 快速开始
### 1️⃣ 安装
```
# 快速安装
go install github.com/xalgord/xalgorix/cmd/xalgorix@latest
# 或从源码构建
git clone https://github.com/xalgord/xalgorix.git
cd xalgorix
./build.sh --install
```
### 2️⃣ 配置
```
# 创建 ~/.xalgorix.env
nano ~/.xalgorix.env
```
```
# 必填
XALGORIX_LLM=openai/gpt-4.5
XALGORIX_API_KEY=your_api_key
# 或使用 Anthropic:
# XALGORIX_LLM=anthropic/claude-sonnet-4.6
# XALGORIX_API_KEY=sk-ant-...
# 可选 - 用于自定义提供商 (MiniMax, Ollama, 等)
# XALGORIX_API_BASE=https://api.minimax.io/
# 可选
XALGORIX_DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
```
### 3️⃣ 运行
```
# Web UI (推荐)
xalgorix --web
# 或 CLI
xalgorix --target https://example.com
```
## 📖 命令参考
### CLI 标志
| 标志 | 别名 | 描述 |
|------|-------|-------------|
| `--web` | `-w` | 启动 Web UI 仪表盘 |
| `--port` | `-p` | Web UI 端口 (默认: 1337) |
| `--target` | `-t` | 目标 URL, IP 或本地路径 (可重复) |
| `--instruction` | `-i` | 给 agent 的自定义指令 |
| `--model` | `-m` | LLM 模型 (覆盖 XALGORIX_LLM) |
| `--update` | `-up` | 更新到最新版本 |
| `--version` | `-v` | 显示版本 |
| `--start` | — | 安装并作为 systemd 服务启动 |
| `--stop` | — | 停止服务 |
| `--restart` | — | 重启服务 |
| `--uninstall` | — | 从系统中移除 |
| `--help` | `-h` | 显示帮助 |
### 环境变量
#### 必需
| 变量 | 描述 | 示例 |
|----------|-------------|---------|
| `XALGORIX_LLM` | 模型名称 (可选 provider 前缀) | `openai/gpt-5.4`, `anthropic/claude-opus-4.6`, `deepseek/deepseek-v4`, `minimax/M3`, `custom/my-model` |
| `XALGORIX_API_KEY` | API key | `sk-...` |
#### 可选 - API Base (用于自定义 provider)
| 变量 | 描述 | 示例 |
|----------|-------------|---------|
| `XALGORIX_API_BASE` | API 基础 URL (如果未设置,则从 provider 前缀自动检测) | `https://api.openai.com/`, `https://api.anthropic.com`, `https://api.minimax.io/`, `https://your-custom-llm.com/v1` |
#### 可选 - 网络搜索
| 变量 | 描述 | 示例 |
|----------|-------------|---------|
| `GEMINI_API_KEY` | 用于网络搜索的 Google Gemini API key | `AIza...` |
#### 支持的 Provider 前缀 (自动检测)
| 前缀 | API Base |
|--------|----------|
| `openai/` | `https://api.openai.com/v1` |
| `anthropic/` | `https://api.anthropic.com` |
| `deepseek/` | `https://api.deepseek.com/v1` |
| `groq/` | `https://api.groq.com/openai/v1` |
| `google/` | `https://generativelanguage.googleapis.com/v1` |
| `gemini/` | `https://generativelanguage.googleapis.com/v1` |
| `ollama/` | `http://localhost:114341` |
| `minimax/` | `https://api.minimax.io/v1` |
#### 可选 - 模型设置
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `XALGORIX_REASONING_EFFORT` | `high` | 推理强度: `low`, `medium`, `high` |
| `XALGORIX_LLM_MAX_RETRIES` | `5` | API 失败时的最大重试次数 |
| `XALGORIX_MEMORY_COMPRESSOR_TIMEOUT` | `60` | 上下文压缩超时 (秒) |
| `XALGORIX_MAX_ITERATIONS` | `0` | 最大迭代次数 (0 = 无限制) |
#### 可选 - 集成
| 变量 | 描述 | 示例 |
|----------|-------------|---------|
| `XALGORIX_DISCORD_WEBHOOK` | 用于告警的 Discord webhook | `https://discord.com/api/webhooks/...` |
| `XALGORIX_USERNAME` | 仪表盘用户名 (启用认证) | `admin` |
| `XALGORIX_PASSWORD` | 仪表盘密码 | `secret123` |
#### 可选 - 速率限制
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `XALGORIX_RATE_LIMIT_REQUESTS` | `60` | 时间窗口内的请求数 |
| `XALGORIX_RATE_LIMIT_WINDOW` | `60` | 时间窗口 (秒) |
#### 可选 - 浏览器
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `XALGORIX_DISABLE_BROWSER` | `false` | 设为 `true` 以禁用浏览器自动化 |
### 支持的模型
Xalgorix 支持多种 LLM provider:
- **OpenAI** — `openai/gpt-5.4`, `openai/gpt-5`, `openai/o1`, `openai/o3`
- **Anthropic** — `anthropic/claude-opus-4.6`, `anthropic/claude-sonnet-4.6`
- **DeepSeek** — `deepseek/deepseek-v4`, `deepseek/deepseek-v3`, `deepseek/deepseek-coder`
- **Google** — `google/gemini-3.1-pro`, `google/gemini-2.0-flash`
- **Groq** — 托管 Llama 4, Qwen 3, Mixtral (直接使用模型名称)
- **Ollama** — `ollama/llama4`, `ollama/qwen3` (本地)
- **MiniMax** — `minimax/M3`, `minimax/Text-01`
## 📖 使用指南
### Web UI 功能
| 功能 | 用法 |
|---------|-------|
| 🎯 **单一扫描** | 输入 URL,点击开始 |
| 🔍 **DAST 扫描** | 选择 "DAST" 模式进行 URL 漏洞测试 |
| 🌐 **Wildcard 扫描** | 选择 "Wildcard" 模式进行子域名枚举 → 每个子域名都会进行全面扫描 |
| 📂 **多目标** | 上传一个 `.txt` 文件,每行一个目标 |
| 🎯 **严重程度过滤** | 仅勾选 Critical/High 以跳过 Low/Info |
| 🚫 **范围外** | 排除不需要测试的目标 |
| 💬 **自定义指令** | 告诉 Xalgorix 重点关注什么 |
| ⚙️ **LLM Provider** | 在设置中切换 provider |
| 🔔 **Discord** | 添加 webhook 以接收告警 |
### 指令示例
```
# 针对特定漏洞
"Focus on SQL Injection and IDOR. Skip XSS."
# 传统认证测试
"Login with: admin@email.com / Password123"
# API 密钥认证
"API: am_us_pod_474368638921786eec2228b27f..., username: agentmail"
# 基于邮件的服务测试
"AgentMail credentials: api_key=xxx, email=user@agentmail.to"
# Bug bounty 规则
"This is a HackerOne program. Out of scope: DoS, social engineering."
# 内网
"Scan 10.0.0.0/24. Focus on SMB and database services."
```
## 🏗️ 架构
```
xalgorix/
├── cmd/xalgorix/ # CLI entry point
├── internal/
│ ├── agent/ # 🤖 Core agent loop
│ ├── config/ # ⚙️ Configuration
│ ├── llm/ # 🧠 LLM client & parser
│ ├── tools/ # 🔧 11 built-in tools
│ │ ├── terminal/ # 💻 Command execution
│ │ ├── browser/ # 🌐 Headless Chrome
│ │ ├── python/ # 🐍 Python scripts
│ │ ├── reporting/ # 📊 Vulnerability reports
│ │ └── ...
│ ├── web/
│ │ ├── server.go # 🌎 HTTP + WebSocket
│ │ └── static/ # 🎨 Web UI (HTML/CSS/JS)
│ └── tui/ # 📟 Terminal UI
└── skills/ # 📚 Vulnerability knowledge
```
## 🔧 配置
### 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `XALGORIX_LLM` | — | 模型 (如 `openai/gpt-4.5`, `anthropic/claude-sonnet-4.6`) |
| `XALGORIX_API_KEY` | — | 您的 API key |
| `XALGORIX_API_BASE` | 自动检测 | API 端点 (为自定义 provider 设置) |
| `XALGORIX_DISCORD_WEBHOOK` | — | Discord webhook URL |
| `XALGORIX_RATE_LIMIT_REQUESTS` | 100 | 时间窗口内的请求数 |
| `XALGORIX_RATE_LIMIT_WINDOW` | 60 | 时间窗口 (秒) |
| `XALGORIX_MAX_ITERATIONS` | 0 | 0 = 无限制 |
| `XALGORIX_DISABLE_BROWSER` | false | 禁用无头 Chrome |
| `CAIDO_PORT` | 8080 | 用于浏览器集成的 Caido 代理端口 |
| `CAIDO_API_TOKEN` | — | Caido GraphQL API token |
### 支持的 LLM Provider
| Provider | 模型示例 |
|----------|--------------|
| 🟢 OpenAI | `openai/gpt-5.4`, `openai/gpt-5`, `openai/o1`, `openai/o3` |
| 🔴 Anthropic | `anthropic/claude-opus-4.6`, `anthropic/claude-sonnet-4.6` |
| 🟣 DeepSeek | `deepseek/deepseek-v4`, `deepseek/deepseek-v3` |
| 🟠 Google | `google/gemini-3.1-pro`, `google/gemini-2.0-flash` |
| 🟡 Groq | `llama-4`, `qwen3`, `mixtral` (直接使用模型名称) |
| ⚫ Ollama | `ollama/llama4`, `ollama/qwen3` (本地) |
| 🔵 MiniMax | `minimax/M3`, `minimax/Text-01` |
## 🛡️ 安全功能
### 被阻止的命令
```
❌ Filesystem: rm -rf /, rm -rf ~, mkfs, dd
❌ SQL: DROP TABLE, DELETE FROM, UPDATE
❌ System: shutdown, reboot, halt, poweroff
❌ Code: shutil.rmtree, os.remove
```
### 编码绕过检测
Xalgorix 检测混淆命令:
| 技术 | 示例 |
|----------|--------|
| Base64 | `echo cm0gL3JmIC8= \| base64 -d` |
| Hex | `\x72\x6d\x20\x2d\x72\x66` |
| URL | `%72%6d%20%2d%72%66` |
### 熔断器
在 **5 次连续失败** 后,工具将被暂时阻止 **60 秒**,以防止浪费时间。
## 📊 API 端点
### 扫描
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| `POST` | `/api/scan` | 开始扫描 |
| `POST` | `/api/stop` | 停止扫描 |
| `GET` | `/api/status` | 获取状态 |
| `GET` | `/api/scans` | 列出扫描 |
| `GET` | `/api/scans/:id` | 获取扫描详情 |
| `GET` | `/api/report/:id` | 下载 PDF |
### 队列
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| `GET` | `/api/queue/status` | 检查中断的队列 |
| `POST` | `/api/queue/resume` | 恢复扫描 |
| `POST` | `/api/queue/clear` | 清除队列 |
### 设置
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| `GET` | `/api/settings/rate-limit` | 获取速率限制 |
| `POST` | `/api/settings/rate-limit` | 更新速率限制 |
## 🔍 侦察工具 (自动安装)
| 类别 | 工具 |
|----------|-------|
| 🌐 子域名 | subfinder, findomain, assetfinder, amass |
| 🔎 URL | gospider, katana, gau, waybackurls |
| 🔧 参数 | paramspider, arjun |
| 🚀 端口 | nmap |
| 💥 漏洞 | nuclei, nikto, sqlmap, dalfox |
| 📁 Fuzzing | gobuster, ffuf |
| 🖥️ 技术 | whatweb, wappalyzer |
## 📋 20 阶段方法论
1. 🔍 **侦察 (Recon)** — 子域名、端口、目录
2. 🦠 **漏洞扫描 (Vuln Scan)** — Nuclei, nikto, nmap scripts
3. 📂 **内容** — Fuzzing, 备份, 管理面板
4. 🔐 **SSL/TLS** — 密码, 证书, 头部
5. 🔑 **认证** — 登录 SQLi, 暴力破解, OAuth
6. 💉 **注入** — XSS, SQLi, Command, XXE, SSTI
7. 🔄 **SSRF** — 参数 Fuzzing, 云元数据
8. 🚪 **IDOR** — 访问控制, 权限提升
9. 🌐 **API** — GraphQL, REST, 速率限制
10. 📤 **上传** — 扩展名绕过, webshells
11. ⚙️ **RCE** — 反序列化, Log4j
12. ⏱️ **竞争** — TOCTOU, 业务逻辑
13. 🌟 **接管** — 子域名, CNAME
14. 📧 **邮件** — SPF, DKIM, DMARC
15. ☁️ **云** — S3, Azure, GCP, K8s
16. 🔌 **WebSocket** — Origin, 注入
17. CMS | WordPress, Joomla, Drupal
18. 🔗 **链接** — 断链劫持
19. 📦 **供应链** — JS 库, 依赖项
20. 📝 **报告** — JSON + PDF
## 📄 PDF 报告内容
自动生成的报告包括:
- ✅ 带有目标和日期的封面
- 📊 带有漏洞统计的执行摘要
- 🐛 漏洞详情 (CVSS, PoC, 修复建议)
- 🔗 已测试的端点
- 📋 应用的方法论
- ⚠️ 法律免责声明
## 📁 数据存储
```
~/xalgorix-data/scans/
├── example.com_abc123/
│ └── scan.json
├── target.io_def456/
│ └── scan.json
└── queue_state.json
```
- 📅 30 天自动清理
- 💾 页面刷新后依然保留
- 🔄 重启后恢复队列
## 🤝 贡献
欢迎 Pull Request!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
## 📜 许可证
MIT License — 详见 [LICENSE](LICENSE)。
## 🔗 链接
| 资源 | URL |
|----------|-----|
| 📖 文档 | [docs.xalgorix.com](https://docs.xalgorix.com) |
| 🐛 Issues | [github.com/xalgord/xalgorix/issues](https://github.com/xalgord/xalgorix/issues) |
| ☕ 捐赠 | [buymeacoffee.com/xalgord](https://buymeacoffee.com/xalgord) |
**由 [@xalgord](https://github.com/xalgord) 用 ⚡ 构建**
*请负责任地使用。*