xoxruns/deadend-cli

GitHub: xoxruns/deadend-cli

Deadend CLI 是一个完全本地化、模型无关的自主 Web 渗透测试 Agent,通过反馈驱动的迭代策略在黑盒测试中自动发现和利用漏洞。

Stars: 212 | Forks: 34

# Deadend CLI [![Discord - Deadend CLI](https://img.shields.io/badge/Discord-Deadend%20CLI-5865F2?logo=discord&logoColor=white)](https://discord.gg/zwUVa3E7KT) **使用反馈驱动迭代的自主渗透测试 Agent** 通过完全本地化的执行和模型无关的架构,在 XBOW 基准测试中达到了约 78% 的成绩。 ![Deadend CLI](https://raw.githubusercontent.com/xoxruns/deadend-cli/main/assets/demo_gif.gif) *喜欢这个项目或者想了解更多?欢迎随时[联系](#contact)!* 📄 [阅读技术深度解析](https://xoxruns.medium.com/feedback-driven-iteration-and-fully-local-webapp-pentesting-ai-agent-achieving-78-on-xbow-199ef719bf01) | 📊 [基准测试结果(使用 VScode ANSI 颜色查看)](https://github.com/xoxruns/deadend-cli/tree/main/benchmarks-results/xbow) ## 目录 - [什么是 Deadend CLI?](#what-is-deadend-cli) - [架构概览](#architecture-summary) - [基准测试结果](#benchmark-results) - [核心分析能力](#core-analysis-capabilities) - [目前测试过的模型](#models-tested-until-now) - [自定义渗透测试工具](#-custom-pentesting-tools) - [快速开始](#quick-start) - [前置条件](#prerequisites) - [安装说明](#installation) - [首次运行](#first-run) - [开发](#development) - [用法示例](#usage-examples) - [命令](#commands) - [模型设置与配置](#model-settings-and-configuration) - [技术栈](#technology-stack) - [当前状态与路线图](#current-status--roadmap) - [贡献](#contributing) - [引用](#citation) - [联系方式](#contact) ## 什么是 Deadend CLI? Deadend CLI 是一个自主的 Web 应用程序渗透测试 Agent,它使用反馈驱动的迭代来调整其漏洞利用策略。当标准工具失效时,它会生成自定义的 Python payload,观察响应,并迭代改进其方法直到取得突破。 **核心特性:** - 完全本地执行(无云依赖,零数据泄露) - 模型无关设计(适用于任何可部署的 LLM) - 自定义沙箱工具(Playwright、Docker、WebAssembly) - 基于 ADaPT 的架构,包含 Supervisor-Subagent 层次结构 - 基于置信度的决策制定(失败 <20%,扩展 20-60%,细化 60-80%,验证 >80%) **基准测试结果:** 在 XBOW 验证套件中得分 78%(76/98 项挑战),包括其他 Agent 成功率为 0% 的盲注 SQL 注入利用。 [在我们的技术文章中阅读架构拆解 →](https://xoxruns.medium.com/feedback-driven-iteration-and-fully-local-webapp-pentesting-ai-agent-achieving-78-on-xbow-199ef719bf01) ## 架构概览 该 Agent 采用两阶段方法(侦察 → 利用)以及 Supervisor-Subagent 层次结构: **Supervisor**:维护高层次目标,委派给专门的 Subagent **Subagents**:专注的工具集(用于 HTTP 的 Requester、用于命令的 Shell、用于 payload 的 Python) **Policy**:置信度分数(0-1.0)决定是失败、扩展、细化还是验证 **关键创新:** 当标准工具失效时,Agent 会生成自定义的漏洞利用脚本,并根据观察到的反馈进行迭代——解决了静态工具链成功率为 0% 的盲注 SQL 注入等挑战。 [阅读完整的架构详情 →](https://xoxruns.medium.com/feedback-driven-iteration-and-fully-local-webapp-pentesting-ai-agent-achieving-78-on-xbow-199ef719bf01) ## 基准测试结果 在 XBOW 的 104 项挑战验证套件上进行评估(黑盒模式,2026 年 1 月): | Agent | 成功率 | 基础设施 | 盲注 SQLi | |-------|-------------|----------------|------------| | XBOW(专有) | 85% | 专有 | ? | | Cyber-AutoAgent | 85%(这是 2025 年 10 月最新的 Cyber-Autoagent 得分) 81%| AWS Bedrock | 0% | | **Deadend CLI** | **78%** | **完全本地** | **33%** | | MAPTA | 76.9% | 外部 API | 0% | **测试过的模型:** Claude Sonnet 4.5(约 78%)、Kimi K2 Thinking(约 69%) 强势表现:XSS(91%)、业务逻辑(86%)、SQL 注入(83%)、IDOR(80%) 满分项目:GraphQL、SSRF、NoSQL 注入、HTTP 方法篡改(100%) ## 核心分析能力 该框架专注于通过以下方式进行**智能安全分析**: - **🔍 污点分析**:自动追踪从 source 到 sink 的数据流 - **🎯 Source/Sink 检测**:智能识别入口点和易受攻击的函数 - **🔗 上下文工具集成**:智能连接专门工具以测试复杂的逻辑模式 - **🧠 AI 驱动的推理**:模拟专家安全思维的上下文感知分析 ## 目前测试过的模型 以下模型已使用 Deadend CLI 进行了测试。兼容性和性能可能会有所不同: **Moonshot AI** - **模型**:`Kimi-K2-Thinking`、`Kimi-K2.5` - **状态**:在所有功能上表现优异 - **备注**:在工作流的每一步都具有可靠的性能 **Anthropic** - **模型**:Claude Sonnet 4.5、Claude 3 Opus、Claude 3 Haiku - **状态**:具有出色结果的强大模型 - **备注**:能正确提取结果和 token 使用信息。推荐在生产环境中使用。 **DeepSeek** - **模型**:通过各种提供商提供的 DeepSeek 模型 - **状态**:可用但存在限制 - **备注**:模型适用于一般推理,但在执行 Shell 命令和生成 HTTP payload 时会遇到困难。可能需要进行架构调整或模型微调才能获得最佳性能。 **OpenAI** - **模型**:GPT-5.X、Codex 变体 - **状态**:调查中 - **备注**:通过 LiteLLM 执行工具时观察到了一些问题。在进行最终的兼容性评估之前,需要进一步调查。 ## 🔧 自定义渗透测试工具 - **Web 应用专用工具**:专为 Web 应用程序渗透测试设计的自定义工具 - **身份验证处理**:内置对会话管理、cookie 和身份验证流程的支持 - **细粒度测试**:对单个请求和参数的精确控制 - **Payload 生成**:针对目标上下文定制的 AI 驱动 payload 创建 - **自动化 Payload 测试**:在单一工作流中生成、注入和验证 payload ## 快速开始 ### 前置条件 - Docker(必需) - curl(用于安装脚本) ### 安装说明 **推荐:从发布版本安装(Linux x86_64 / macOS ARM64)** ``` # 安装最新版本 curl -fsSL https://raw.githubusercontent.com/xoxruns/deadend-cli/main/install.sh | bash # 或者安装特定版本 curl -fsSL https://raw.githubusercontent.com/xoxruns/deadend-cli/main/install.sh | bash -s -- --version v1.0.0 # 自定义安装目录 (默认: ~/.cache/deadend/server) curl -fsSL https://raw.githubusercontent.com/xoxruns/deadend-cli/main/install.sh | bash -s -- --install-dir /path/to/install ``` 安装程序将会: - 下载适用于您平台的预编译二进制文件 - 将 RPC 服务器安装到 `~/.cache/deadend/server`(或自定义目录) - 将 CLI 二进制文件安装到 `~/.local/bin`(在 macOS 上为 `/usr/local/bin`) - 自动设置 Playwright 浏览器 ### 首次运行 在首次运行时,我们将看到一个预设视图,用于初始化您想要使用的模型,并且 # 启动 CLI ``` deadend --target "http://localhost:3000" --prompt "find SQL injection vulnerabilities" ``` **注意:** 如果找不到 `deadend`,请确保安装目录在您的 PATH 中: - Linux:`~/.local/bin` - macOS:`/usr/local/bin` ``` # Linux export PATH="$HOME/.local/bin:$PATH" # macOS export PATH="/usr/local/bin:$PATH" # 添加到 ~/.bashrc 或 ~/.zshrc 以使其永久生效 ``` ### 开发 **从源码构建** ``` git clone https://github.com/xoxruns/deadend-cli.git cd deadend-cli uv sync ``` **使用 Deno 运行 CLI** 要使用 Deno 直接运行 CLI 界面进行开发: ``` cd cli/deadend_cli deno task dev ``` ## 用法示例 ### 基础漏洞测试 ``` # 测试 OWASP Juice Shop docker run -p 3000:3000 bkimminich/juice-shop deadend --target http://localhost:3000 --prompt "test the login endpoint for SQL injection" ``` ### API 安全测试 ``` deadend --target https://api.example.com --prompt "test authentication for broken access control" ``` ## 命令 ### `deadend` 启动交互式安全测试会话 - `--target`、`-t`:目标 URL - `--prompt`、`-p`:初始测试提示词 - `--mode`、`-m`:`hacker`(需要批准)或 `yolo`(自主) - `--codebase`、`-c`:代码库目标文件夹(⚠️ **即将推出** - 尚未实现) ## 模型设置与配置 包含模型规范和 API 密钥的配置文件位于 `~/.cache/deadend/config.json`。此文件同时处理文本生成模型(用于 Agent 推理)和文本嵌入模型(用于 RAG/向量搜索)。 ### 配置文件位置 - **路径**:`~/.cache/deadend/config.json` - **格式**:JSON - **初始设置**:首次运行时,预设向导将引导您完成初始配置 ### 模型 Schema 在定义模型时,请使用以下 Schema。关键格式 `:` 遵循 [LiteLLM 的命名约定](https://docs.litellm.ai/docs/providers): ``` ":": { "provider": "", // Provider name (e.g., openai, anthropic, ollama) "model_name": "", // Model identifier (e.g., claude-sonnet-4-5, gpt-4) "api_key": "", // API key (optional if ENV var is set, but recommended to add here) "base_url": "", // Base URL for custom gateways or providers (e.g., Ollama) "type_model": null, // Set to "embeddings" only for embedding models "vec_dim": null // Vector dimension for embedding models (defaults to 1536) } ``` **关键格式**:JSON 键必须采用 `:` 格式,其中: - `` 匹配 LiteLLM 提供商标识符(参见[支持的提供商](https://docs.litellm.ai/docs/providers)) - `` 是该提供商特定的模型标识符 ### 配置示例 以下是一个同时包含文本生成模型和嵌入模型的 `config.json` 示例: ``` { "anthropic:claude-sonnet-4-5": { "provider": "anthropic", "model_name": "claude-sonnet-4-5", "api_key": "sk-ant-api03-...", "base_url": null, "type_model": null, "vec_dim": null }, "openrouter:qwen/qwen3-embedding-8b": { "provider": "openrouter", "model_name": "qwen/qwen3-embedding-8b", "api_key": "sk-or-v1-...", "base_url": "https://openrouter.ai/api/v1/embeddings", "type_model": "embeddings", "vec_dim": 4096 } } ``` ### 模型类型 **文本生成模型** (`type_model: null`): - 用于 Agent 推理、任务规划和 payload 生成 - 示例:Claude Sonnet 4.5、GPT-4、Llama 3 等 - 核心 Agent 功能所必需 **嵌入模型** (`type_model: "embeddings"`): - 用于 RAG(检索增强生成)和向量搜索 - 需要使用 `vec_dim` 指定向量空间维度 - 可选,但建议用于更好的上下文检索 ### 添加模型 1. **通过预设向导**(推荐):在没有配置的情况下运行 `deadend` 以启动交互式设置 2. **手动配置**:使用上述 Schema 直接编辑 `~/.cache/deadend/config.json` 3. **环境变量**:可以通过环境变量设置 API 密钥,但为了方便起见,建议将其存储在 `config.json` 中 ### 支持的提供商 Deadend CLI 使用 [LiteLLM](https://docs.litellm.ai/) 进行模型抽象,这为多个 LLM 提供商提供了统一的接口。模型遵循 LiteLLM 的命名约定:`provider:model_name`。 #### 模型格式 在 `config.json` 和 `settings.json` 中,模型均使用 `:` 格式指定。提供商名称对应于 LiteLLM 的提供商标识符。 **示例:** - `anthropic:claude-sonnet-4-5` - Anthropic 的 Claude Sonnet 4.5 - `openai:gpt-4` - OpenAI 的 GPT-4 - `openrouter:qwen/qwen3-embedding-8b` - 通过 OpenRouter 提供的 Qwen 嵌入模型 - `ollama:llama3` - 通过本地 Ollama 实例提供的 Llama 3 #### 支持的提供商 Deadend CLI 支持所有与 LiteLLM 兼容的提供商。有关受支持提供商及其模型名称的完整列表,请参阅 [LiteLLM 提供商文档](https://docs.litellm.ai/docs/providers)。 **受欢迎的提供商包括:** - **OpenAI**:`openai:gpt-4`、`openai:gpt-3.5-turbo`、`openai:gpt-4o` 等。 - **Anthropic**:`anthropic:claude-3-opus`、`anthropic:claude-sonnet-4-5`、`anthropic:claude-3-haiku` 等。 - **Ollama**:`ollama:llama3`、`ollama:mistral`、`ollama:codellama` 等(需要在配置中设置 `base_url`) - **OpenRouter**:`openrouter:meta-llama/llama-3-70b-instruct`、`openrouter:google/gemini-pro` 等。 - **HuggingFace**:`huggingface/meta-llama/Llama-2-7b-chat-hf`(需要 `base_url`) **对于嵌入模型**,使用相同的格式并在 `config.json` 中设置 `type_model: "embeddings"`: - `openai:text-embedding-ada-002` - `openrouter:qwen/qwen3-embedding-8b` - `ollama:nomic-embed-text` ### CLI 界面设置 (`settings.json`) CLI 界面使用位于 `~/.cache/deadend/settings.json` 的单独 `settings.json` 文件来存储默认偏好设置和 UI 设置。此文件包含: - **默认模型选择**:默认使用哪个提供商和模型 - **执行模式**:默认执行模式(yolo 或 supervisor) - **UI 偏好**:组件状态显示和自动折叠设置 - **上一个目标**:记住上次使用的目标 URL - **嵌入模型**:用于 RAG 操作的默认嵌入模型 #### 设置 Schema ``` { "provider": "anthropic", // Default LLM provider "model": "claude-sonnet-4-5", // Default model name "executionMode": "yolo", // Default execution mode: "yolo" or "supervisor" "showComponentStatus": true, // Show component health status in UI "autoCollapseStatus": false, // Auto-collapse status messages "lastTarget": "", // Last target URL used "embedding": { // Default embedding model configuration "provider": "openrouter", "model": "qwen/qwen3-embedding-8b" } } ``` #### 设置位置 - **路径**:`~/.cache/deadend/settings.json` - **格式**:JSON - **自动创建**:当您通过预设向导配置模型时自动创建 - **与 config.json 分离**:此文件存储 CLI 偏好设置,而 `config.json` 存储模型 API 密钥和规范 #### 主要区别 | 文件 | 用途 | 包含内容 | |------|---------|----------| | `config.json` | 模型规范 | API 密钥、模型定义、基础 URL、向量维度 | | `settings.json` | CLI 偏好 | 默认模型选择、执行模式、UI 设置、嵌入默认值 | CLI 界面从 `settings.json` 中读取信息以决定默认使用哪个模型,而 `config.json` 则为这些模型提供实际的 API 密钥和连接详情。 ## 技术栈 **后端/Agent:** - **LiteLLM**:多提供商模型抽象(OpenAI、Anthropic、Ollama) - **Instructor**:结构化 LLM 输出 - **pgvector**:用于上下文的向量数据库 - **Pyodide/WebAssembly**:Python 沙箱 - **Playwright**:HTTP 请求生成(附带浏览器二进制文件) - **Docker**:Shell 命令隔离 - **PyOxidizer**:独立二进制打包 **CLI 界面:** - **Deno**:CLI 的运行时环境 - **React**:UI 框架 (v19) - **Ink**:基于 React 的终端 UI 框架 - **TypeScript/TSX**:类型安全的开发 - **Commander**:CLI 参数解析 - **Marked**:Markdown 解析和渲染 - **marked-terminal**:终端 Markdown 显示 ## 当前状态与路线图 ### 稳定版 (v0.1.0) - ✅ 新架构 - ✅ XBOW 基准测试评估 (78%) - ✅ 自定义沙箱工具 - ✅ 通过 liteLLM 支持多模型 - ✅ 两阶段执行(侦察 + 利用) - ✅ 使用 React/Ink 界面**重新设计 CLI** - ✅ 带有命令系统的交互式聊天界面 - ✅ Supervisor 和 YOLO 执行模式 - ✅ 实时事件流和组件健康监控 - ✅ 用于配置的预设向导 ### 进行中 - 🚧 代码库分析支持(白盒测试) - 🚧 预设配置工作流(API 测试、Web 应用、身份验证绕过) - 🚧 工作流自动化(保存/重放攻击链) - 🚧 上下文优化(减少冗余工具调用) - 🚧 密钥管理改进 - 🚧 使用模板生成报告 (`/report`) - 🚧 计划模式(在通过 `/plan` 执行前审查策略) ### 未来路线图 目前的架构证明了在没有云依赖的情况下实现极具竞争力的自主渗透测试(78%)是可行的。接下来的挑战: - **开源模型**:使用 Llama/Qwen 达到 75% 以上的成绩(消除对专有模型的依赖) - **混合测试**:添加 AST 分析以进行白盒代码检查 - **对抗鲁棒性**:针对 WAF、速率限制和自适应防御进行训练 - **多目标编排**:同时测试互连系统 - **上下文效率**:在组件之间实现更好的信息共享 目标:使自主渗透测试变得易于访问(开放模型)、全面(混合测试)且鲁棒(能够应对真实防御)。 ## 贡献 欢迎在以下方面做出贡献: - 上下文优化算法 - 漏洞测试用例 - 开源权重模型微调 - 对抗性测试场景 有关如何做出贡献的指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 引用 ``` @software{deadend_cli_2026, author = {Yassine Bargach}, title = {Deadend CLI: Feedback-Driven Autonomous Pentesting}, year = {2026}, url = {https://github.com/xoxruns/deadend-cli} } ``` ## 免责声明 **仅供授权安全测试使用。** 未经授权的测试是非法的。用户有责任遵守所有适用的法律并获得适当的授权。 ## 联系方式 有问题、反馈或想要合作? - 📧 **电子邮件**:[yassine@straylabs.ai](mailto:yassine@straylabs.ai) - 💬 **Discord**:xoxruns - 🧪 **Discord 服务器**:[加入 Deadend 社区](https://discord.gg/zwUVa3E7KT) — 使用此空间进行讨论、研究和功能请求。 - 💼 **LinkedIn**:[Yassine Bargach](https://www.linkedin.com/in/yass-99637a105/) - 🐦 **Twitter**:[@xoxruns](https://x.com/xoxruns) ## 链接 📄 [架构深度解析](https://xoxruns.medium.com/feedback-driven-iteration-and-fully-local-webapp-pentesting-ai-agent-achieving-78-on-xbow-199ef719bf01) 📊 [基准测试结果](https://github.com/xoxruns/deadend-cli/tree/main/benchmarks-results/xbow) 🐛 [报告问题](https://github.com/xoxruns/deadend-cli/issues) ⭐ [为本仓库加星](https://github.com/xoxruns/deadend-cli) ![Deadend CLI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/766e37975b221601.png)
标签:AI安全智能体, AI工具, Anthropic, CISA项目, CIS基准, CLI, DLL 劫持, IP 地址批量处理, LiteLLM, LLM评估, LLM集成, Ollama, OpenAI, Payload生成, PE 加载器, Python, WiFi技术, XBOW基准测试, 内存规避, 大语言模型, 插件系统, 攻击模拟, 数据展示, 无后门, 本地部署, 模型无关架构, 特征检测, 红队, 网络安全, 自动化渗透, 自治代理, 请求拦截, 逆向工具, 隐私保护, 驱动签名利用, 黑盒测试