jamwal69/AKAGAMI

GitHub: jamwal69/AKAGAMI

一款具备范围限制和操作安全意识的漏洞赏金侦查指挥台,提供多智能体编排、情报存储、端点清单和报告生成等功能。

Stars: 1 | Forks: 0

# AKAGAMI

具备范围限制和操作安全意识的漏洞赏金侦查指挥台。

CI Python 3.11 | 3.12 Tests: 436 passing License: MIT Status: beta

AKAGAMI report header

AKAGAMI 是一个具备范围限制和操作安全意识的漏洞赏金侦查指挥台,提供多智能体编排、模拟运行规划、端点情报、安全门控以及报告生成功能。 它帮助授权的安全操作员验证范围、检查本地工具、规划主动或被动侦查、组织端点情报,以及根据存储的任务数据生成 Markdown 报告。它不是一个保证能发现漏洞的系统;扫描器输出和通过的测试仍然需要人工验证。 快速演示: ``` akagami recon -t example.com -C Example --passive-only --dry-run ``` 安全提示:仅对您拥有或获得明确授权的资产使用 AKAGAMI。在每次执行任务前,特别是启用主动扫描、授权测试、监控触发的任务或漏洞利用规划之前,请务必确认项目范围。 有关安装和冒烟测试命令,请参阅 [docs/quickstart.md](docs/quickstart.md)。 ## 功能状态矩阵 | 功能 | 状态 | 已实现内容 | 当前限制 | |---|---|---|---| | 工作区创建 | 稳定 | 为每个公司创建包含范围文件、输出文件夹、SQLite DB、ChromaDB 文件夹和活动日志的工作区树 | 仅限本地文件系统 | | 范围强制执行 | 稳定 | ToolBus 在执行工具前会检查域名、URL、端口、IP、CIDR 以及范围外优先级 | 范围质量取决于任务配置和操作员审查 | | 安全命令渲染 | 稳定 | 子进程命令由经过验证的 YAML 定义渲染,且执行时不使用 `shell=True` | 仍需安装并信任外部二进制文件 | | 确定性解析 | 稳定 | 支持的工具输出由 Python 解析模块解析,而非 LLM | 不支持或格式错误的输出可能会回退到部分/原始存储 | | 情报存储 | 稳定 | 基于 SQLite 的存储,用于主机、端口、Web 路径、漏洞、OSINT、凭据、会话和端点清单 | 数据模式为本项目本地所有 | | 端点清单 | 稳定 | `akagami endpoints` 显示存储清单中高价值的 HTTP/API 攻击面 | 它对攻击面进行排序以供手动测试;它不证明可利用性 | | 侦查模拟运行 | 稳定 | `akagami recon --dry-run` 验证任务/范围,构建默认任务图,并打印计划任务、智能体、请求工具、风险和范围决策 | 它仅使用确定性默认规划;不调用 LLM 也不执行工具 | | 被动 OSINT | Beta | 存在 whois、crt.sh、theHarvester、Shodan、GitHub 代码搜索和 Web 搜索路径 | Shodan/GitHub 需要 API 密钥;Web 搜索依赖于 MCP/API 桥接 | | 主动侦查 | Beta | 存在 nmap、ProjectDiscovery `httpx`、ffuf、nuclei、arjun、corsy 和 ssrfmap 的执行路径 | 需要明确的主动权限并已安装外部二进制文件 | | 报告生成 | Beta | 编排的任务可以使用基于路由器的文本结合 Jinja2 Markdown 模板;手动的 `akagami report` 使用相同模板并带有启发式回退文本 | 手动报告命令不会初始化 LLM 路由器 | | CVE 扩充/评分 | Beta | 存在本地 ChromaDB 查找、NVD API 查找、Groq 扩充、CVSS 查找和上下文评分路径 | 结果需要验证,并取决于可用的 CVE 数据/API 访问权限 | | 浏览器/会话捕获 | 实验性 | Playwright 可以尝试简单的登录/捕获流程并存储经过脱敏处理的会话上下文,同时在运行内存中保留原始的身份验证信息 | 没有用于选择器/凭据工作流的完善 CLI;身份验证扫描非开箱即用 | | 授权下的 nuclei 移交 | 实验性 | 捕获的运行时身份验证标头/cookie 可以在内存中移交给 nuclei | 取决于成功的浏览器捕获和任务排序 | | AI 端点测试 | 实验性 | AI 红队智能体具备提示词注入和端点测试路径 | 需要明确的任务规划和仔细的范围控制 | | 漏洞利用规划 | 实验性 | 规划器可以在满足阶段门控条件后生成漏洞利用计划 | 仅限于规划;不执行漏洞利用 | | 监控守护进程 | 实验性 | `akagami watcher` 会轮询本地的 `new_targets.txt` 文件,并可以为新条目启动任务 | 它目前不会轮询 HackerOne/Bugcrowd API;它仅消耗本地文件 | | subfinder/gau/katana | 已配置但未接入 | 定义存在于 `config/tools.yaml` 和打包的 `reconforge/config/tools.yaml` 中 | 默认的智能体/任务图目前不会执行它们 | | amass/masscan/gobuster/wpscan | 已配置但未接入 | 工具定义已存在 | 不是默认任务执行的一部分 | | 操作员批准 CLI | 稳定 | `akagami approval-status` 显示门控/批准状态,`akagami approve` 将操作员批准记录在任务库中 | 批准仅是一个存储的标志;它不运行漏洞利用规划 | | 真实任务恢复执行 | 未实现 | `akagami resume` 从情景记忆中打印恢复上下文 | 它不会从保存点重新启动编排器 | | 自动化有效漏洞发现 | 未实现 | 该工具可以收集证据和扫描器结果 | 它本身无法可靠地发现复杂的业务逻辑、授权、支付、竞争条件或 IDOR 漏洞 | ## 安装 ``` python -m pip install -e . ``` 用于开发环境: ``` python -m pip install -r requirements.txt python -m playwright install chromium ``` 该软件包提供了 `akagami` 控制台脚本: ``` akagami --version ``` ## 环境变量 Akagami 在编排任务期间加载 `.env`。 ``` # 可选,配置后启用基于 LLM 的规划/审查/报告文本 NVIDIA_NIM_API_KEY=... NVIDIA_NIM_MODEL=deepseek-ai/deepseek-v4-flash GROQ_API_KEY=... GROQ_MODEL_FAST=llama-3.3-70b-versatile GROQ_MODEL_REASONING=deepseek-r1-distill-llama-70b # 可选的被动 OSINT 集成 SHODAN_API_KEY=... GITHUB_TOKEN=... ``` 如果没有 LLM 密钥,许多组件将使用启发式回退,但高级规划、评估审查、扩充、评分上下文和报告文本将会受限。 ## 外部工具 仅安装您打算运行的模式所需的工具。 您可以在不运行扫描或联系目标的情况下,检查本地二进制文件的可用性及有限的兼容性探测: ``` akagami tools check akagami tools doctor ``` | 领域 | 已接入代码路径使用的工具 | |---|---| | 被动 OSINT | `whois`、`curl`、`theHarvester` | | 主动侦查 | `nmap`、ProjectDiscovery `httpx`、`ffuf`、`nuclei`、`arjun`、`corsy`、`ssrfmap` | | 漏洞和技术检查 | `nuclei`、`searchsploit`、`jwt_tool`、`graphql-cop`、`clairvoyance` | | JavaScript/机密检查 | `trufflehog` | | 浏览器捕获 | Playwright Chromium | `subfinder`、`gau`、`katana`、`amass`、`masscan`、`gobuster` 和 `wpscan` 存在于工具配置中,但在当前的检查点并未接入默认的智能体执行中。 ## CLI UX 与普通模式 Akagami 的 CLI 使用基于 Rich 的横幅、面板、状态徽章和表格来呈现面向操作员的输出。人类可读的命令会显示紧凑的指挥台、任务简报、模拟运行安全边界、计划任务/工具表、门控和批准面板、端点/情报表、工具检查状态、报告摘要以及任务完成后的下一步命令。 状态徽章包括 `PASSIVE`、`ACTIVE`、`OPSEC`、`APPROVED`、`BLOCKED`、`EXPERIMENTAL`,以及风险标签,如 `HIGH`、`MEDIUM` 和 `LOW`。 如需适合脚本处理的输出,请在命令前使用全局普通模式: ``` akagami --plain recon -t example.com -C Example --dry-run akagami --plain tools check ``` JSON 输出模式保持无横幅且可解析: ``` akagami intel -m -f json akagami endpoints -m -f json ``` 在禁用终端颜色样式(使用 Rich 输出的地方)时,Akagami 还会遵循 `NO_COLOR` 设置。 ## CLI 命令 ``` akagami recon -t [-C ] [--passive-only|--active] [--opsec-mode] [--dry-run] [--mode standard|bug-bounty] [-c config/mission.yaml] ``` 启动任务,创建或更新工作区,加载任务配置,并运行编排器。主动扫描需要在任务配置中设置 `--active` 和 `permissions.active_scanning: true`。 ``` akagami recon -t -C --active --dry-run ``` 在不运行任务的情况下构建安全计划。模拟运行会验证本地的任务/范围配置,构建任务图,显示计划任务、智能体、请求工具、主动/被动风险以及范围决策。它不执行外部工具、不调用 LLM API、不创建任务数据库记录、不写入行动/发现日志,也不生成报告。 ``` akagami workspaces ``` 列出 `workspace/` 下的已知公司工作区。 ``` akagami intel -m [-C ] [-f table|json] ``` 从任务数据库读取存储的情报并打印表格或 JSON。 ``` akagami endpoints -m [-C ] [-l 20] [-f table|json] ``` 显示排序后的 HTTP/API 清单记录,以供手动审查。 ``` akagami resume -m [-C ] ``` 从情景记忆中打印保存的任务上下文。它不会自动继续执行。 ``` akagami gate -m [-t ] [-C ] ``` 评估存储的侦查数据是否足够广泛以通过阶段门控。当任务记录存在时,门控结果将被持久化以用于批准工作流。 ``` akagami approval-status -m -C ``` 显示阶段门控是否通过,操作员是否已批准漏洞利用规划,以及该任务的漏洞利用规划是否已获批准。 ``` akagami approve -m -C ``` 在公司工作区数据库中将该任务的 `operator_approved` 记录为 `true`。此命令本身不执行漏洞利用规划,也不会解锁/运行智能体。 ``` akagami report -m [-t ] [-n ] [-C ] [-o output/report.md] ``` 根据存储的情报生成 Markdown 报告。此手动命令使用打包的 Jinja2 模板和启发式回退文本,因为它不初始化 LLM 路由器。 ``` akagami tools check [--config config/tools.yaml] ``` 显示源码检出目录 `config/tools.yaml` 中的每个配置工具(或安装时打包的回退配置),包括其二进制名称、必需/可选标记、安装状态、发现路径、类别、风险元数据和兼容性状态。它使用 PATH 查找,并可能对关键工具运行有限的安全版本探测。它不运行扫描或联系目标。 ``` akagami tools doctor [--config config/tools.yaml] [--workspace-root workspace] ``` 对 Python 版本、包导入、配置的二进制文件及有限版本探测、Playwright Chromium 可用性、环境变量存在性(不打印值)、工作区可写性以及打包资源运行本地健康检查。它不运行扫描、联系目标或需要 API 密钥。 ``` akagami db seed-cves --nvd-feed [--persist-dir output/chromadb] akagami db stats [--persist-dir output/chromadb] ``` 初始化或检查本地的 ChromaDB CVE 存储。 ``` akagami watcher ``` 启动实验性监控循环。当前行为会监视本地的 `new_targets.txt`,消耗其内容,并针对新目标启动漏洞赏金模式的任务。 ## 任务配置 默认的源码检出配置位于 `config/mission.yaml`。安装的包也会携带默认执行器所需的运行时工具定义。 ``` mission: target: example.com mission_name: "Authorized External Recon" company_name: "Example" scope: in_scope: - example.com - "*.example.com" out_of_scope: - "10.0.0.0/8" permissions: active_scanning: true opsec: enabled: true ``` 安全的合成示例可在 `config/example_mission.yaml`、`config/example_bug_bounty.yaml` 和 `docs/example_scenario.md` 中找到。仅将针对特定目标的配置用于私人/本地测试。请勿发布真实的项目范围、客户名称、标头、token 或任务制品。 ## 工作区布局 运行任务会创建以下树形结构: ``` workspace/ └── / ├── scope/ │ ├── in_scope.txt │ ├── out_of_scope.txt │ └── subdomains.txt ├── output/ │ ├── reports/ │ ├── nmap/ │ ├── nuclei/ │ ├── httpx/ │ ├── ffuf/ │ ├── amass/ │ ├── osint/ │ └── misc/ ├── loot/ ├── data/ │ ├── missions.db │ └── chromadb/ └── notes/ └── engagement_log.md ``` 当前代码中没有默认的 `katana/` 或 `gau/` 工作区输出目录。 ## 现实漏洞赏金中的实用性 Akagami 最适合作为侦查和证据组织的助手。当拥有合适的工具和输入时,它可以帮助映射域名、服务、HTTP 元数据、端点清单、扫描器发现、CVE 候选项、明显暴露的路径以及已验证的机密发现。 如果没有人工构建并验证测试用例,它不太可能可靠地发现复杂的业务逻辑漏洞、授权绕过、链式提权、支付缺陷、竞争条件、深层的 IDOR、细微的 GraphQL/API 滥用或特定于客户端的工作流漏洞。 对于真实的 HackerOne 目标,请将输出视为线索。请自行验证范围、手动复现、消除误报并撰写最终报告。 ## 安全模型 - 被动模式是更安全的默认设置。 - 主动扫描需要同时具备 `--active` CLI 标志和任务配置权限。 - 模拟运行模式仅用于规划:它使用本地确定性规划和工具元数据,然后在子进程、MCP/API 调用、LLM 调用、任务数据库写入、运行时行动日志、情报存储和报告生成之前停止。 - ToolBus 在执行前强制执行范围检查。 - 范围外的条目优先于范围内的条目。 - Opsec 模式在支持的条件下应用时间/速率/user-agent 控制。 - 浏览器智能体捕获的原始身份验证信息保存在敏感的工作内存中;存储的会话上下文经过脱敏处理。 - 漏洞利用规划仅用于规划,不应将其视为运行漏洞利用命令的授权。 - 标准模式要求在漏洞利用规划解锁检查通过之前,阶段门控必须通过且操作员已批准。`akagami approve` 仅记录批准;它不执行漏洞利用规划。 ## 项目 ``` reconforge/ ├── agents/ # OSINT, active recon, vuln, browser, JS, AI, exploit planner agents ├── assets/ # Packaged brand assets ├── config/ # Packaged runtime tool definitions ├── intel/ # Pydantic models, SQLite store, endpoint inventory helpers ├── llm/ # Provider router and provider clients ├── memory/ # Working, episodic, semantic, and summarization memory ├── orchestrator/ # Master orchestrator, task graph, event bus, stage gate ├── parsers/ # Deterministic parsers for supported tool outputs ├── report/ # Markdown report generator and packaged Jinja2 template ├── skills/ # Critic, CVE enricher, parser tombstone, severity scorer ├── tools/ # ToolBus, executor, scope checks, MCP/API bridge ├── ui/ # Rich terminal UI helpers ├── utils/ # Logging, sanitizer, opsec helpers ├── cli.py # Click CLI entry point ├── diagnostics.py # Local runtime and tool diagnostics ├── watcher.py # Experimental local-file watcher └── workspace.py # Per-company workspace creation helpers ``` ## 测试与构建 ``` python -m pytest tests/ -q python -m compileall reconforge tests python -m build --no-isolation --outdir /tmp/reconforge-build git diff --check ``` 当前的发布强化检查点:预计有 436 个测试。 ## 公开发发布规范 在发布之前,请验证私有的/本地制品(如 `.env`、`venv/`、`.pytest_cache/`、`akagami.egg-info/`、`output/`、`workspace/`、真实目标配置和真实场景日志)未被跟踪。公开示例应保持合成性质,并仅使用保留的域名/IP 范围。 ## 法律声明 仅对您拥有或获得明确授权测试的系统使用 Akagami。在每次执行任务前,特别是启用主动扫描、授权测试、监控触发的任务或漏洞利用规划之前,请务必确认项目范围。
标签:GitHub, Python, 多智能体, 实时处理, 密码管理, 无后门, 特征检测, 自动化报告, 运行时操纵, 逆向工具