Skip to main content
Glama
ck3938700-ship-it

AnJian Agent

README.md
# 安鉴台 AnJian Agent

<p align="center">
  <strong>把“一个网址”变成可追溯、可复核的本地 Web 安全评估报告</strong><br>
  Local-first · Authorization-gated · MCP-ready · Local-LLM friendly
</p>

<p align="center">
  <a href="https://github.com/ck3938700-ship-it/anjian-agent/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/ck3938700-ship-it/anjian-agent/actions/workflows/ci.yml/badge.svg"></a>
  <a href="https://www.python.org/"><img alt="Python 3.11+" src="https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white"></a>
  <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/License-MIT-green.svg"></a>
  <a href="https://modelcontextprotocol.io/"><img alt="MCP" src="https://img.shields.io/badge/MCP-stdio-6f42c1"></a>
  <img alt="Windows first" src="https://img.shields.io/badge/Windows-11-0078D4?logo=windows11">
</p>

安鉴台是一套本地优先、授权门禁明确的安全评估工具。它把内置检查、Nmap、httpx、Nuclei、受控 FFUF、detection-only SQLMap、Burp/HAR、TShark/PCAP 和源码扫描结果整理成统一证据,再生成中文 Markdown、HTML 与 Obsidian 报告。

它可以作为 CLI 独立运行,也可以接入 Claude Code、任意 MCP 客户端,或 Ollama、LM Studio、vLLM、llama.cpp 等 OpenAI 兼容本地模型。AI 只负责理解意图、编排和解释;真正的授权校验、目标限制和工具执行始终在本地 Python 层完成。

> [!IMPORTANT]
> 只对你本人拥有,或已取得资产所有者明确书面授权的系统使用。本项目不提供口令爆破、拒绝服务、漏洞利用、权限绕过、持久化、数据提取或批量互联网扫描能力。自动结果是待复核观察,不等于已确认漏洞。

## 为什么需要它

手动运行多个工具时,最费时间的通常不是输入命令,而是保持范围一致、过滤重复和误报、保存证据、解释覆盖缺口、再把结果写成可交付报告。安鉴台把这些重复工作固定成可复用流程:

- **一次授权,一个网址**:精确目标在终端登记一次,有效期内可直接 `/anjian <URL>`。
- **工具可用就运行,不可用就说明**:不会把超时、Device Guard 阻止或代理 Fake-IP 伪装成“已完成”。
- **结果不会自动升级成漏洞**:`suspected`、`informational`、`passed` 与人工确认的 finding 严格分开。
- **证据统一**:跨运行、Burp/HAR、PCAP、源码结果按稳定指纹去重并交叉印证。
- **数据留在本地**:默认存储在 `%USERPROFILE%\.anjian`,不依赖云端账号或在线 AI。
- **报告可长期积累**:输出 Markdown/HTML/Obsidian,保留 SHA-256 清单和复核记录。

## 工作方式

```mermaid
flowchart LR
    U["用户 / Claude Code / 本地模型"] --> A["一次性精确目标授权"]
    A --> G["本地范围门禁"]
    G --> T["内置检查与外部工具"]
    T --> E["脱敏证据与 SHA-256"]
    E --> C["去重与交叉印证"]
    C --> O["待复核观察"]
    O --> H["人工确认"]
    H --> R["Markdown / HTML / Obsidian 报告"]
```

模型无法通过 MCP 创建授权、扩大端口、允许内网或解锁主动工具。即使本地模型产生错误指令,Python 层仍会再次检查目标、端口、有效期、内网许可和工具级授权。

## 能力矩阵

| 通道 | 能力 | 关键限制 |
|---|---|---|
| 内置 baseline | DNS、HTTP(S)、TLS、响应头、Cookie | 低影响;不保存响应正文 |
| 外部 baseline | Nmap、ProjectDiscovery httpx | 仅明确端口;代理 Fake-IP 时安全跳过原始端口扫描 |
| 模板检查 | Nuclei | 受系统策略与终端工具授权约束 |
| 内容枚举 | FFUF | 有界字典、低速、单线程、SPA/soft-404/挑战页过滤 |
| 注入观察 | SQLMap | 只对已发现的同源 GET 参数做 detection-only 检查 |
| 被动资产 | subfinder、amass | 只有显式允许下级子域时运行 |
| Web 证据 | Burp XML、HAR | 删除正文、Cookie、Authorization 和令牌值 |
| 流量证据 | TShark/PCAP | 用户指定文件、只读分析、不导出载荷 |
| 源码证据 | 内置规则、Semgrep、Trivy、Gitleaks | 只扫描用户明确提供的本地目录 |
| 输出 | Markdown、HTML、Obsidian、浏览器 PDF | 自动观察需人工复核后才进入正式发现 |

## 5 分钟开始

### 1. 安装

需要 Windows 11、Python 3.11+ 和 PowerShell。在仓库目录执行:

```powershell
powershell -ExecutionPolicy Bypass -File .\setup.ps1
```

或使用普通 Python 环境:

```powershell
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
```

### 2. 检查本机能力

```powershell
anjian doctor
```

缺少外部工具不会阻止安装;运行时会安全降级并在报告中记录覆盖限制。

### 3. 为精确目标登记一次授权

```powershell
anjian authorize-target "https://example.com"
```

根据提示亲自输入 `AUTHORIZE DEEP example.com`。默认端口为 80/443、有效期 90 天、不包含下级子域和私有网络。未登记或授权过期时,`quick-assess` 不会访问目标。

### 4. 一键评估

```powershell
anjian quick-assess "https://example.com"
```

命令会返回评估 ID、阶段状态、观察摘要和 `report.md` 的本地路径。

## 接入 Claude Code

```powershell
powershell -ExecutionPolicy Bypass -File .\claude-integration\install-claude.ps1
```

重启 Claude Code 后输入:

```text
/anjian https://example.com
```

安装器会创建隔离运行环境、注册本地 stdio MCP Server,并安装 `/anjian` 命令与 Skill;不会读取或修改你的 API Key。完整说明见 [Claude Code 指南](docs/CLAUDE_AGENT_GUIDE.md)。

## 接入本地大模型

安鉴台 v0.5.0 提供无需模型工具调用能力的本地模型适配器:确定性 Python 核心先执行授权评估,再把脱敏结构化结果交给本地模型解释。小模型即使不会 function calling,也能稳定使用。

以 Ollama 为例:

```powershell
ollama pull qwen2.5:7b
anjian-local-agent "评估 https://example.com" --model qwen2.5:7b
```

LM Studio、vLLM 或 llama.cpp 只需指定兼容地址:

```powershell
anjian-local-agent "审计 https://example.com" `
  --base-url http://127.0.0.1:1234/v1 `
  --model local-model
```

如果模型服务不可用,适配器仍会保留确定性 JSON 结果,不会丢失已经完成的评估。详见 [本地大模型部署](docs/LOCAL_LLM.md)。

## 浏览器工作台

```powershell
anjian seed-demo
anjian serve
```

浏览器打开 `http://127.0.0.1:8765`。工作台默认只监听本机回环地址,可维护项目、授权范围、人工发现、复测与正式报告。不要为了远程访问直接改成 `0.0.0.0`。

## 数据与隐私

- CLI、MCP 和本地模型数据:`%USERPROFILE%\.anjian`
- 浏览器工作台数据库:项目目录中的 `data/anjian.db`
- `.gitignore` 默认排除数据库、报告、HAR、PCAP、Burp XML、虚拟环境和 `.env`
- Web 证据只持久化必要的脱敏元数据;源代码秘密只保存哈希前缀
- 客户材料、授权文件和真实报告不应提交到公开 Git 仓库

备份与保留期检查:

```powershell
anjian backup
anjian retention
```

## 当前边界

安鉴台适合授权的小型网站安全基线评估、证据整理和报告交付,不是“自动渗透万能平台”。它不能证明网站没有漏洞,也不能代替登录态业务逻辑测试、复杂授权测试、代码审计、云配置审计、移动端或内网横向评估。Cloudflare、代理、WAF 和 Windows 应用控制也可能限制外部工具覆盖,报告会如实列出这些缺口。

## 开发与验证

```powershell
python -m pip install -e ".[dev]"
pytest
```

自动测试只访问测试进程拥有的 `127.0.0.1` 服务,不向公共互联网发送扫描请求。架构、安全边界与后续计划分别见:

- [架构说明](docs/ARCHITECTURE.md)
- [安全与滥用模型](docs/SECURITY_MODEL.md)
- [用户手册](docs/USER_GUIDE.md)
- [路线图](docs/ROADMAP.md)
- [贡献指南](CONTRIBUTING.md)
- [安全问题报告](SECURITY.md)

## 项目原则

1. 授权和范围控制优先于“能力更多”。
2. 自动化负责减少重复劳动,人类负责最终判断。
3. 任何失败、跳过和覆盖限制都必须出现在报告中。
4. 默认本地存储、最少数据、证据脱敏。
5. 新增网络能力必须先有滥用分析、范围约束与本地测试。

## License

[MIT](LICENSE) © 2026 AnJian Desk Contributors

如果安鉴台对你有帮助,欢迎 Star、提交问题或改进文档。请不要在公开 Issue 中粘贴真实目标、客户名称、授权文件、Cookie、Token 或未公开漏洞细节。

TDQS

C2.9/5.0

Scored across 15 tools

Disambiguation4/5

Tools are generally well-distinguished by action (assess, list, run, import, generate, scan, validate) and resource. However, anjian_doctor, anjian_capability_plan, and anjian_list_assessments all touch capability/status inspection and could occasionally confuse an agent about which to use for checking system state.

Naming Consistency3/5

All tools share the anjian_ prefix with snake_case, showing consistency. However, the naming is inconsistent in granularity and verb style: some use domain-specific verbs (consolidate, validate_observation, import_pcap) while others are action-focused (run, list, create, get). The nouns range from concrete (assessment, target) to abstract (doctor, consolidate), lacking a uniform verb_noun pattern.

Tool Count4/5

At 15 tools, this is near the high end of the ideal range but reasonable for a security assessment platform covering assessment lifecycle, evidence import, analysis, and reporting. Each tool serves a distinct stage of the workflow. Slightly heavy but justifiable given the breadth of the domain.

Completeness4/5

The surface covers the full assessment lifecycle: create/get/list/run assessments, import evidence (Burp/HAR/PCAP/source), consolidate, validate, and generate reports. Minor gaps include no explicit tool for deleting/deprecating assessments or managing report history/cleanup, and no dedicated tool for listing imported evidence, but agents can work around these.

Maintenance

ActivityStale
ResponsivenessNo issues