sundi133/dapper

GitHub: sundi133/dapper

一款基于 AI 多智能体架构的自主渗透测试工具,通过白盒源码分析结合黑盒动态攻击,自动发现并验证 Web 应用和 API 中的可利用漏洞,输出带 PoC 的专业报告。

Stars: 0 | Forks: 0

# Dapper 是你完全自主的 AI 渗透测试工具。 Dapper 的工作很简单:在其他任何人之前攻破你的 Web 应用。
你的“随性编码”蓝队的红队。
每个 Claude(编码者)都值得拥有自己的 Dapper。
## 🎯 什么是 Dapper? Dapper 是一款 AI 渗透测试工具,它提供的是真实的漏洞利用,而不仅仅是警告。 Dapper 的目标是在其他人之前攻破你的 Web 应用。它会自主寻找你代码中的攻击向量,然后使用其内置浏览器执行真实的漏洞利用(例如注入攻击和身份验证绕过),以证明该漏洞确实是可以被利用的。 **Dapper 解决了什么问题?** 得益于 Claude Code 和 Cursor 等工具,你的团队可以不停地交付代码。但是你的渗透测试呢?一年才做一次。这就造成了一个*巨大的*安全缺口。在一年中的其余 364 天里,你可能在不知不觉中将漏洞发布到了生产环境。 Dapper 通过作为你随需应用的白盒渗透测试工具来填补这一空白。它不仅仅是发现潜在的问题。它执行真实的漏洞利用,提供漏洞存在的具体证据。这让你可以充满信心地交付,因为你知道每次构建都是安全的。 ## ✨ 功能特性 - **完全自主运行**:只需一个命令即可启动渗透测试。AI 负责处理从高级 2FA/TOTP 登录(包括使用 Google 登录)和浏览器导航到最终报告的所有工作,期间无需任何人工干预。 - **带有可复现漏洞利用的渗透测试级别报告**:提供专注于已验证、可利用发现的最终报告,附带可复制粘贴的概念验证,以消除误报并提供可操作的结果。 - **涵盖关键的 OWASP 漏洞**:目前可识别并验证以下关键漏洞:注入、XSS、SSRF 以及失效的身份验证/授权,更多漏洞类型正在开发中。 - **代码感知的动态测试**:分析你的源代码以智能地指导其攻击策略,然后对运行中的应用程序执行基于实时浏览器和命令行的漏洞利用,以确认真实世界中的风险。 - **由集成安全工具驱动**:通过利用领先的侦察和测试工具(包括 **Nmap、Subfinder、WhatWeb 和 Schemathesis**)来增强其发现阶段,从而对目标环境进行深度分析。 - **并行处理以加快获取结果**:更快地获取你的报告。系统将最耗时的阶段并行化,同时运行针对所有漏洞类型的分析和利用。 ## 📦 产品系列 Dapper 提供两个版本: | 版本 | 许可证 | 适用场景 | |---------|---------|----------| | **Dapper Lite** | AGPL-3.0 | 安全团队、独立研究人员、测试自己的应用程序 | | **Dapper Pro** | 商业版 | 需要高级功能、CI/CD 集成和专属支持的企业 | ## 📑 目录 - [什么是 Dapper?](#-what-is-dapper) - [查看 Dapper 实际操作](#-see-dapper-in-action) - [功能特性](#-features) - [产品系列](#-product-line) - [设置与使用说明](#-setup--usage-instructions) - [前置条件](#prerequisites) - [快速开始](#quick-start) - [监控进度](#monitoring-progress) - [停止 Dapper](#stopping-dapper) - [使用示例](#usage-examples) - [配置(可选)](#configuration-optional) - [[实验性 - 不支持] Router 模式(替代提供商)](#experimental---unsupported-router-mode-alternative-providers) - [输出和结果](#output-and-results) - [示例报告](#-sample-reports) - [架构](#️-architecture) - [覆盖范围与路线图](#-coverage-and-roadmap) - [免责声明](#️-disclaimers) - [许可证](#-license) - [社区与支持](#-community--support) - [联系我们](#-get-in-touch) ## 🚀 设置与使用说明 ### 前置条件 - **Docker** - 容器运行环境 ([安装 Docker](https://docs.docker.com/get-docker/)) - **AI 提供商凭证**(任选其一): - **Anthropic API key**(推荐) - 从 [Anthropic 控制台](https://console.anthropic.com) 获取 - **Claude Code OAuth token** - **[实验性 - 不支持] 通过 Router 模式使用替代提供商** - 通过 OpenRouter 使用 OpenAI 或 Google Gemini(请参阅 [Router 模式](#experimental---unsupported-router-mode-alternative-providers)) ### 快速开始 ``` # 克隆 Dapper git clone https://github.com/sundi133/dapper.git cd dapper # 配置凭据(选择一种方法) # 选项 A:导出环境变量 export ANTHROPIC_API_KEY="your-api-key" # or CLAUDE_CODE_OAUTH_TOKEN # 选项 B:创建 .env 文件 cat > .env << 'EOF' ANTHROPIC_API_KEY=your-api-key EOF # 运行 pentest ./dapper start URL=https://your-app.com REPO=your-repo ``` Dapper 将构建容器,启动工作流,并返回一个工作流 ID。渗透测试将在后台运行。 ### 监控进度 ``` # 查看实时 worker 日志 ./dapper logs # 查询特定 workflow 的进度 ./dapper query ID=dapper-1234567890 # 打开 Temporal Web UI 以进行详细监控 open http://localhost:8233 ``` ### 停止 Dapper ``` # 停止所有 containers(保留 workflow 数据) ./dapper stop # 完全清理(移除所有数据) ./dapper stop CLEAN=true ``` ### 使用示例 ``` # 基本 pentest ./dapper start URL=https://example.com REPO=repo-name # 使用配置文件 ./dapper start URL=https://example.com REPO=repo-name CONFIG=./configs/my-config.yaml # 自定义输出目录 ./dapper start URL=https://example.com REPO=repo-name OUTPUT=./my-reports ``` ### 准备你的仓库 Dapper 期望目标仓库被放置在项目根目录的 `./repos/` 目录下。`REPO` 标志指的是 `./repos/` 内部的一个文件夹名称。将你想要扫描的仓库复制到 `./repos/` 中,或者直接将其克隆到那里: ``` git clone https://github.com/your-org/your-repo.git ./repos/your-repo ``` **对于 monorepo(单体仓库):** ``` git clone https://github.com/your-org/your-monorepo.git ./repos/your-monorepo ``` **对于多仓库应用程序**(例如,独立的前端/后端): ``` mkdir ./repos/your-app cd ./repos/your-app git clone https://github.com/your-org/frontend.git git clone https://github.com/your-org/backend.git git clone https://github.com/your-org/api.git ``` ### 特定平台说明 **对于 Linux(原生 Docker):** 根据你的 Docker 设置,你可能需要使用 `sudo` 运行命令。如果你遇到输出文件的权限问题,请确保你的用户有权访问 Docker socket。 **对于 macOS:** 安装 Docker Desktop 后即可开箱即用。 **测试本地应用程序:** Docker 容器无法访问宿主机上的 `localhost`。请使用 `host.docker.internal` 替代 `localhost`: ``` ./dapper start URL=http://host.docker.internal:3000 REPO=repo-name ``` ### 配置(可选) 虽然你可以在没有配置文件的情况下运行,但创建一个可以实现经过身份验证的测试和自定义分析。请将你的配置文件放在 `./configs/` 目录中——此文件夹会自动挂载到 Docker 容器中。 #### 创建配置文件 复制并修改示例配置: ``` cp configs/example-config.yaml configs/my-app-config.yaml ``` #### 基本配置结构 ``` authentication: login_type: form login_url: "https://your-app.com/login" credentials: username: "test@example.com" password: "yourpassword" totp_secret: "LB2E2RX7XFHSTGCK" # Optional for 2FA login_flow: - "Type $username into the email field" - "Type $password into the password field" - "Click the 'Sign In' button" success_condition: type: url_contains value: "/dashboard" rules: avoid: - description: "AI should avoid testing logout functionality" type: path url_path: "/logout" focus: - description: "AI should emphasize testing API endpoints" type: path url_path: "/api" ``` #### 针对 2FA 的 TOTP 设置 如果你的应用程序使用了双因素身份验证,只需将 TOTP 密钥添加到你的配置文件中即可。AI 将在测试期间自动生成所需的验证码。 ### [实验性 - 不支持] Router 模式(替代提供商) Dapper 可以通过实验性地使用 claude-code-router 将请求路由到替代的 AI 提供商。此模式未经官方支持,主要适用于: * **模型实验** — 结合 GPT-5.2 或 Gemini 3 系列模型尝试 Dapper #### 快速设置 1. 将你的提供商 API key 添加到 `.env` 中: ``` # 选择一个 provider: OPENAI_API_KEY=sk-... # 或 OPENROUTER_API_KEY=sk-or-... # 设置默认模型: ROUTER_DEFAULT=openai,gpt-5.2 # provider,model format ``` 2. 使用 `ROUTER=true` 运行: ``` ./dapper start URL=https://example.com REPO=repo-name ROUTER=true ``` #### 实验性模型 | 提供商 | 模型 | |----------|--------| | OpenAI | gpt-5.2, gpt-5-mini | | OpenRouter | google/gemini-3-flash-preview | #### 免责声明 此功能是实验性的且不受支持。输出质量在很大程度上取决于模型。Dapper 构建在 Anthropic Agent SDK 之上,并针对 Anthropic Claude 模型进行了优化和主要测试。替代提供商可能会产生不一致的结果(包括在侦察等早期阶段失败),具体取决于模型和路由设置。 ### 输出和结果 所有结果默认保存在 `./audit-logs/{hostname}_{sessionId}/` 中。使用 `--output ` 指定自定义目录。 输出结构: ``` audit-logs/{hostname}_{sessionId}/ ├── session.json # Metrics and session data ├── agents/ # Per-agent execution logs ├── prompts/ # Prompt snapshots for reproducibility └── deliverables/ └── comprehensive_security_assessment_report.md # Final comprehensive security report ``` ## 📊 示例报告 查看 Dapper 在行业标准易受攻击应用程序上的渗透测试结果,了解其真实的实战能力: #### 🧃 **OWASP Juice Shop** • [GitHub](https://github.com/juice-shop/juice-shop) *一个由 OWASP 维护的出了名不安全的 Web 应用程序,旨在测试工具发现各种现代漏洞的能力。* **表现**:在单次自动化运行中,识别出目标 OWASP 类别中**超过 20 个高危漏洞**。 **主要成就**: - **实现了完全的身份验证绕过**,并通过注入攻击提取了整个用户数据库 - **通过绕过注册流程创建新的管理员账户,执行了完整的权限提升** - **识别并利用了系统性的授权缺陷 (IDOR)**,以访问和修改任何用户的私人数据和购物车 - **发现了服务器端请求伪造 (SSRF)** 漏洞,从而实现了内部网络侦察 #### 🔗 **c{api}tal API** • [GitHub](https://github.com/Checkmarx/capital) *一个由 Checkmarx 提供的蓄意制造漏洞的 API,旨在测试工具发现 OWASP API 安全 Top 10 漏洞的能力。* **表现**:识别出**近 15 个严重和高危漏洞**,导致应用程序被完全攻破。 **主要成就**: - **通过在隐藏的 debug 端点中利用命令链接绕过拒绝列表,执行了 root 级别的注入攻击** - **通过发现并定位一个遗留的、未修补的 v1 API 端点,实现了完全的身份验证绕过** - **通过利用用户资料更新功能中的批量赋值漏洞,将普通用户提升为完全的管理员权限** - **展示了极高的准确性**,通过正确确认应用程序强大的 XSS 防御机制,实现了零误报 #### 🚗 **OWASP crAPI** • [GitHub](https://github.com/OWASP/crAPI) *一个由 OWASP 提供的现代化、蓄意制造漏洞的 API,旨在根据 OWASP API 安全 Top 10 基准测试工具的有效性。* **表现**:识别出**超过 15 个严重和高危漏洞**,实现了应用程序的完全攻破。 **主要成就**: - **使用多种高级 JWT 攻击绕过了身份验证**,包括算法混淆、alg:none 和弱密钥 注入 - **通过注入攻击实现了完整的数据库攻破**,从 PostgreSQL 数据库中提取了用户凭证 - **执行了关键的服务器端请求伪造 (SSRF) 攻击**,成功将内部身份验证令牌转发到了外部服务 - **展示了极高的准确性**,通过正确识别应用程序强大的 XSS 防御机制,实现了零误报 *这些结果证明了 Dapper 能够超越简单的扫描,执行具有极少误报和可操作概念验证的深度上下文漏洞利用。* ## 🏗️ 架构 Dapper 使用复杂的多智能体架构来模拟人类渗透测试员的方法论。它结合了白盒源代码分析和黑盒动态漏洞利用,分为四个截然不同的阶段: ``` ┌──────────────────────┐ │ Reconnaissance │ └──────────┬───────────┘ │ ▼ ┌──────────┴───────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Vuln Analysis │ │ Vuln Analysis │ │ ... │ │ (Injection) │ │ (XSS) │ │ │ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Exploitation │ │ Exploitation │ │ ... │ │ (Injection) │ │ (XSS) │ │ │ └─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │ │ │ └─────────┬─────────┴───────────────────┘ │ ▼ ┌──────────────────────┐ │ Reporting │ └──────────────────────┘ ``` ### 架构概述 Dapper 的设计旨在模拟人类渗透测试员的方法论。它利用 Anthropic 的 Claude Agent SDK 作为其核心推理引擎,但其真正的优势在于围绕它构建的复杂多智能体架构。该架构将**白盒源代码分析**的深度上下文与**黑盒动态漏洞利用**的真实世界验证相结合,由编排器通过四个不同的阶段进行管理,以确保专注于最小的误报和智能的上下文管理。 #### **阶段 1:侦察** 第一阶段构建了应用程序攻击面的全面图谱。Dapper 分析源代码并集成 Nmap 和 Subfinder 等工具,以了解技术栈和基础设施。同时,它通过浏览器自动化执行实时应用程序探索,将代码级洞察与真实世界的行为相关联,为下一阶段生成包含所有入口点、API 端点和身份验证机制的详细图谱。 #### **阶段 2:漏洞分析** 为了最大化效率,此阶段并行运行。利用侦察数据,针对每个 OWASP 类别的专门智能体会并行寻找潜在的缺陷。对于注入和 SSRF 等漏洞,智能体会执行结构化的数据流分析,追踪用户输入到危险的接收点。此阶段产生一个关键的交付物:一份传递给验证阶段的**假定的可利用路径**列表。 #### **阶段 3:漏洞利用** 继续并行工作流以保持速度,此阶段完全致力于将假设转化为证据。专门的漏洞利用智能体接收假定的路径,并尝试使用浏览器自动化、命令行工具和自定义脚本执行真实的攻击。此阶段执行严格的**“无利用,不报告”**策略:如果无法成功利用某个假设来证明其影响,则将其作为误报丢弃。 #### **阶段 4:报告** 最后阶段将所有经过验证的发现汇编成一份专业、可操作的报告。一个智能体会整合侦察数据和成功的漏洞利用证据,清理任何噪音或产生的幻觉伪影。只包含经过验证的漏洞,并附有**可复现的、可复制粘贴的概念验证**,最终交付一份只专注于已验证风险的渗透测试级报告。 ## 📋 覆盖范围与路线图 有关 Dapper 安全测试覆盖范围和开发路线图的详细信息,请参阅我们的[覆盖范围与路线图](./COVERAGE.md)文档。 ## ⚠️ 免责声明 ### 重要使用指南与免责声明 在使用 Dapper (Lite) 之前,请仔细阅读以下指南。作为用户,你需要对自己的行为负责并承担所有责任。 #### **1. 变异效应的可能性与环境选择** 这不是一个被动的扫描器。漏洞利用智能体旨在**主动执行攻击**以确认漏洞。此过程可能会对目标应用程序及其数据产生变异效应。 #### **2. 合法与合乎道德的使用** Dapper 专为的安全审计目的而设计。 #### **3. LLM 与自动化的注意事项** - **需要人工验证**:虽然我们的“通过利用进行证明”方法论在消除误报方面投入了大量工程精力,但底层的 LLM 仍然可能在最终报告中生成幻觉或支持力度较弱的内容。**人工监督对于**验证所有报告发现的合法性和严重性**至关重要**。 - **全面性**:由于 LLM 上下文窗口的固有限制,Dapper Lite 中的分析可能不够详尽。为了对你整个代码库进行更全面的、基于图谱的分析,**Dapper Pro** 利用其高级数据流分析引擎来确保更深入、更彻底的覆盖。 #### **4. 分析范围** - **目标漏洞**:当前版本的 Dapper Lite 专门针对以下类别的*可利用*漏洞: - 失效的身份验证与授权 - 注入 - 跨站脚本攻击 (XSS) - 服务器端请求伪造 (SSRF) - **Dapper Lite 未涵盖的内容**:此列表并未穷尽所有潜在的安全风险。Dapper Lite 的“通过利用进行证明”模型意味着它不会报告其无法主动利用的问题,例如易受攻击的第三方库或不安全的配置。这些类型的深度静态分析发现是 **Dapper Pro** 高级分析引擎的核心关注点。 #### **5. 成本与性能** - **时间**:就当前版本而言,一次完整的测试运行通常需要 **1 到 1.5 小时**才能完成。 - **成本**:使用 Anthropic 的 Claude 4.5 Sonnet 模型运行完整的测试可能会产生约 **50 美元** 的成本。具体成本因模型定价和应用程序复杂性而异。 #### **6. Windows 杀毒软件误报** Windows Defender 可能会将 `xben-benchmark-results/` 或 `deliverables/` 中的文件标记为恶意软件。这些是由于报告中的漏洞利用代码引起的误报。请在 Windows Defender 中为 Dapper 目录添加排除项,或使用 Docker/WSL2。 ## 📜 许可证 Dapper Lite 基于 [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE) 发布。 Dapper 是开源的 (AGPL v3)。此许可证允许你: - 自由将其用于所有内部安全测试。 - 私下修改代码以供内部使用,而无需共享你的更改。 AGPL 的共享要求主要适用于将 Dapper 作为公共或托管服务(例如 SaaS 平台)提供的组织。在这些特定情况下,对核心软件所做的任何修改都必须开源。 ## 👥 社区与支持 ### 社区资源 **贡献**:目前,我们不接受外部的代码贡献(PR)。 欢迎提交 Issue 用于报告 Bug 和功能需求。 ## 💬 联系我们 ### 对 Dapper Pro 感兴趣? Dapper Pro 专为重视应用程序安全的企业而设计。它提供企业级功能、专属支持和无缝的 CI/CD 集成,所有这些都由我们最先进的基于 LLM 的分析引擎提供支持。在复杂的漏洞深入你的代码库并到达生产环境之前,发现并修复它们。

Express Interest

**或者直接联系我们:** 📧 **电子邮件**: [info@votal.ai](mailto:info@votal.ai) 报告命令: node scripts/export-findings-csv.js repos/DVWA/deliverables --model claude-opus-4-6 --max-turns 100
标签:2FA绕过, AI安全, API安全, Chat Copilot, CISA项目, CTI, DevSecOps, GraphQL安全矩阵, JSON输出, Maven, MITM代理, OWASP Top 10, TOTP破解, 上游代理, 代码生成, 动态应用安全测试(DAST), 反取证, 大模型驱动, 安全扫描器, 安全报告生成, 安全评估, 授权绕过, 服务器端请求伪造(SSRF), 渗透测试工具, 漏洞验证, 白盒测试, 结构化查询, 网络安全, 自动化安全, 自动化渗透测试, 请求拦截, 跨站脚本攻击(XSS), 身份验证绕过, 隐私保护