abdulhalimaltuntas/capsaicin

GitHub: abdulhalimaltuntas/capsaicin

一个用Go编写的智能Web Fuzzer和目录扫描器,专注于WAF绕过、密钥发现和资产探测,以提升安全测试效率和隐蔽性。

Stars: 24 | Forks: 7

Capsaicin Logo # 🌶️ Capsaicin v2 **下一代网络目录与资产发现引擎** *专为红队成员、漏洞赏金猎人及 DevSecOps 人员打造* [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?logo=go&logoColor=white)](https://go.dev) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![CI](https://img.shields.io/badge/CI-passing-brightgreen)](/.github/workflows/ci.yml) [![Maintainer](https://img.shields.io/badge/Maintainer-abdulhalimaltuntas-blue.svg)](https://github.com/abdulhalimaltuntas) [功能特性](#-key-features) • [为何选择 Capsaicin?](#-why-capsaicin-differentiators) • [安装说明](#-installation) • [使用指南](#-usage-examples) • [CI/CD](#-cicd-integration) ## 📖 概述 **Capsaicin** 并非又一个目录爆破工具。它是一个高度并发、具备上下文感知能力的网络发现框架,旨在绕过现代 Web 应用防火墙(WAF)、规避速率限制,并动态过滤误报。 由 [@abdulhalimaltuntas](https://github.com/abdulhalimaltuntas) 开发,Capsaicin V2 整合了先进的规避技术,如 **JA3/JA4 TLS 指纹欺骗**、**随机抖动引擎** 和 **香农熵分析**,能够以精准的手术刀式操作,揭露隐藏路径、泄露的密钥和错误配置。 ## 🔥 为何选择 Capsaicin?(差异化优势) - **WAF 规避(TLS 欺骗):** 使用 `utls` 库欺骗 TLS 指纹(JA3/JA4)。对于网络设备(IDS/IPS),Capsaicin 看起来完全像标准的 Google Chrome 或 Apple Safari 浏览器,覆盖了默认的 Go HTTP 客户端签名。 - **拟人化延迟(抖动引擎):** 采用高斯分布和帕累托分布数学模型模拟真实人类浏览行为。`paranoid` 模式引入随机停顿,可轻松绕过基于 AI/ML 的基础速率限制器。 - **智能自动校准:** 在扫描前,使用万能(通配符)目录动态分析目标。它测量页面大小、行数和字数以创建基线,有效消除与自定义 404 页面相关的误报。 - **基于信息理论的密钥发现:** 不仅使用正则表达式寻找密钥。它运用**香农熵**分析来验证发现的文本是否是真正的密码学随机值(如真实的 API 密钥),还是仅仅是虚惊一场。 - **有状态方法模糊测试:** 当遇到 `405 Method Not Allowed` 时,Capsaicin 会自动轮换 HTTP 方法(`POST`、`PUT`、`DELETE`、`PATCH`),以主动探测配置错误的 API 端点。 - **通过头部注入绕过 403 限制:** 当遇到 `403 Forbidden` 错误时,自动尝试使用智能头部操作(`X-Forwarded-For`、`X-Original-URL` 等)来绕过访问控制。 ## ✨ 核心功能 | 功能 | 描述 | |---------|-------------| | 🎯 **智能校准** | 自动创建 404 基线,动态消除误报。 | | 🛡️ **TLS 与 WAF 绕过** | JA3/JA4 指纹欺骗 + 头部注入(`X-Forwarded-For` 等)用于绕过 403/401。 | | 🔑 **密钥猎手** | 内置 15 种模式(AWS、Stripe、GitHub 等),并使用**香农熵**评分。 | | 🤖 **WAF 识别** | 通过头部和签名检测超过 16 种 WAF(Cloudflare、Akamai、AWS Shield、Imperva)。 | | 🌊 **随机抖动** | 使用高斯分布和帕累托分布延迟以避免 SYN 洪泛警报。 | | 🚦 **断路器** | 自动对失败目标退避,防止基础设施过载。 | | 🌳 **递归扫描** | 可配置深度限制的目录遍历。 | | 📊 **双格式报告** | 以 JSON(版本 3.1)和交互式 HTML 格式导出结果。 | | 🔁 **去重处理** | 自动对 URL + Method 进行去重,保留严重级别最高的结果。 | | 🚀 **原生 CI/CD 支持** | `--fail-on` 标志可在发现高危/严重问题时自动失败管道。 | ## ⚙️ 安装说明 ### 方式 1:使用 Go 安装(推荐) 确保已安装 Go 1.21+ 版本。 ``` go install github.com/abdulhalimaltuntas/capsaicin/cmd/capsaicin@latest ``` ### 方式 2:从源码构建 ``` git clone https://github.com/abdulhalimaltuntas/capsaicin.git cd capsaicin go build -o capsaicin ./cmd/capsaicin sudo mv capsaicin /usr/local/bin/ ``` ## ⚙️ 配置选项(CLI 标志) Capsaicin 提供了丰富的命令行参数配置,以便您根据需求精确调整发现和测试过程。 ### 🎯 核心与目标选项 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-u, --url` | - | 要扫描的目标 URL(支持 `FUZZ` 关键词以动态注入字典)。 | | `-w, --wordlist` | - | 字典文件路径(例如 `path/to/wordlist:FUZZ`)。 | | `-X, --method` | `GET` | 用于请求的 HTTP 方法。 | | `-d, --data` | - | 请求的 POST 数据体。 | ### 🚀 性能与网络 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-t, --threads` | `40` | 并发请求 worker 数量。 | | `--rate-limit` | `0` | 每个主机每秒最大请求数(`0` = 无限制)。 | | `--timeout` | `10` | 请求超时时长(秒)。 | | `--retries` | `2` | 网络请求失败的重试次数。 | | `--h2` | `true` | 强制使用 HTTP/2 多路复用以提高性能和隐蔽性。 | | `--h3` | `false` | 启用实验性的 HTTP/3 (QUIC) 传输。 | ### 🧠 规避与 WAF 绕过 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `--tls-impersonate`| `random` | JA3/JA4 欺骗配置文件(`chrome`、`firefox`、`safari`、`edge`、`random`、`none`)。 | | `--jitter` | `moderate` | 用于规避速率限制的随机延迟配置(`aggressive`、`moderate`、`stealth`、`paranoid`)。 | | `--header-rotation`| `false` | 自动连贯地轮换 `User-Agent` 和 `Sec-CH-UA` 头部。 | | `-H, --header` | - | 随每个请求发送的自定义头部(`名称: 值`,可重复)。 | | `--safe-mode` | `false` | 禁用所有绕过尝试、方法模糊测试和侵入性检查。 | ### 🎛️ 模糊测试与发现 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `--mode` | `sniper` | 多载荷的模糊测试模式(`sniper`、`clusterbomb`、`pitchfork`、`dynamic`)。 | | `--extensions` | - | 要探测的文件扩展名(逗号分隔,例如 `php,html,txt`)。 | | `--depth` | `0` | 递归扫描深度(`0` = 禁用)。 | | `--extract-paths` | `false` | 即时抓取 JavaScript 和 HTML 以发现新端点。 | | `--extract-depth` | `2` | 动态提取路径的最大递归深度。 | | `--auto-calibrate` | `false` | 启用智能异常检测(DOM 哈希 + 长度聚类)以识别误报。 | | `--recal-interval` | `500` | 扫描期间滚动重新校准探测之间的请求数。 | ### 🕵️‍♂️ 过滤与匹配 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `--match-code` | `200...405` | 要匹配的 HTTP 状态码(逗号分隔)。 | | `--filter-code` | - | 要过滤(排除)的 HTTP 状态码。 | | `--match-size` | - | 匹配精确的响应大小。 | | `--filter-size` | - | 根据精确大小过滤(排除)响应。 | | `--filter-words` | - | 根据精确的单词计数过滤(排除)响应。 | | `--match-regex` | - | 匹配响应主体中的特定正则表达式。 | | `--max-response-mb`| `10` | 要处理的最大响应主体大小(MB)。 | | `--allow` / `--deny`| - | 允许 / 拒绝递归范围控制的域名模式(可重复)。 | ### 📊 报告与状态管理 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-o, --output` | - | 保存输出文件的路径。 | | `--output-format`| `jsonl` | 输出数据格式(`jsonl`、`json`、`html`、`csv`)。 | | `--html` | - | 旧版 HTML 报告输出文件(v1 兼容)。 | | `--fail-on` | - | 如果达到严重性阈值则以退出码 2 退出(`critical`、`high`、`medium`、`low`、`info`)。 | | `--trigger-config` | - | 指向漏洞利用触发器和 Webhook 操作的 YAML 文件。 | | `--resume` | - | 提供会话状态文件路径以恢复先前停止的扫描。 | ### 🛡️ 代理管理 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-x, --proxy` | - | 代理 URL(支持 HTTP/SOCKS5)。 | | `--proxy-file` | - | 包含代理列表的文件(每行一个)。 | | `--proxy-strategy` | `random` | 代理轮换策略(`round_robin`、`random`、`failover`)。 | ### ⚙️ 实用工具 | 标志 | 默认值 | 描述 | |------|---------|-------------| | `-v, --verbose` | `false` | 启用详细输出。 | | `--debug` | `false` | 启用内部调试日志用于开发者故障排除。 | | `--log-level` | `info` | 调整日志详细程度(`debug`、`info`、`warn`、`error`)。 | | `--dry-run` | `false` | 检查扫描执行计划而不实际发送请求。 | ## 🚀 使用示例 ### 1. 基础扫描 使用特定字典对目标运行标准扫描: ``` capsaicin -u https://target.com -w wordlist.txt ``` ### 2. 隐蔽与规避模式(Paranoid) 启用抖动延迟、随机 User-Agent 和绕过机制,以规避严格的 WAF 而不触发警报: ``` capsaicin -u https://target.com -w wordlist.txt \ --rate-limit 15 \ -t 10 ``` ### 3. 深度 API 发现 搜寻特定文件扩展名、启用递归扫描,并在收到 `405` 响应时进行 HTTP 方法模糊测试: ``` capsaicin -u https://api.target.com -w wordlist.txt \ -x php,json,yaml,env \ --depth 3 \ --retries 3 \ -v ``` ### 4. 认证扫描与自定义头部 传递自定义头部和 Cookie 进行登录后的发现: ``` capsaicin -u https://admin.target.com -w wordlist.txt \ -H "Authorization: Bearer eyJhbGci..." \ -H "Cookie: session=abc123_secure" ``` ### 5. 管道模式(标准输入) 直接从其他工具(例如 `subfinder`、`httpx`)馈送多个目标: ``` cat targets.txt | capsaicin -w wordlist.txt -t 100 -o results.json ``` ### 6. 安全模式(无侵入性检查) 禁用绕过头部注入和方法模糊测试,用于标准的、非侵入性的合规性扫描: ``` capsaicin -u https://target.com -w wordlist.txt --safe-mode ``` ## 🚦 CI/CD 集成 Capsaicin 专为 DevSecOps 构建。您可以根据发现资产的严重性来限制管道部署。 **退出码:** - `0` : 清洁(未发现任何结果达到阈值) - `1` : 错误(配置无效、网络中断) - `2` : 警报(发现结果达到或超过 `--fail-on` 阈值) **GitHub Actions / GitLab Pipeline 示例:** ``` # 仅在发现严重漏洞(例如暴露的 AWS 密钥)时才使流水线失败 capsaicin -u https://staging.com -w words.txt --fail-on critical -o output.json ``` ## 🗂️ 风险评分与严重等级 Capsaicin 为每个发现丰富上下文元数据,防止警报疲劳: | 严重等级 | 示例触发条件 | 置信度 | |----------|-----------------|------------| | 🔴 **严重** | AWS/Stripe 密钥、私钥、数据库连接字符串 | 已确认 | | 🟠 **高危** | JWT 令牌、Slack/Google API、403 绕过成功 | 已确认/坚定 | | 🟡 **中危** | 通用 API 密钥(经熵验证)、方法模糊测试成功 | 坚定 | | 🟢 **低危** | 目录列表、401/403 访问拒绝 | 存疑 | | ⚪ **信息** | 标准的 200 OK 响应 | 存疑 | ## 🛠️ 架构概述 Capsaicin 运行在一个高度优化的并发核心上。以下是高级请求流程: ``` CLI Input → Config Validation → Engine.RunContext(ctx) ↓ Calibration (Auto Base-Lining per target) → Worker Pool ↓ Worker: makeRequest → Calibration Filter → Detection Pipeline ↓ ↓ 405? → Method Fuzzing Secret Detection (Shannon Entropy) 403? → Bypass Injector WAF Detection (Header + Body Hash) ↓ Results Channel → Deduplication Engine → Reporter (JSON 3.1 / HTML) ``` ## ⚠️ 免责声明 **Capsaicin 严格为授权的安全测试和教育研究目的而开发。** - 在进行扫描前,请始终确保您已获得系统所有者的明确书面许可。 - 请勿使用此工具针对您不拥有或未获得授权测试的基础设施。 - 开发者(`@abdulhalimaltuntas`)不承担任何责任,亦不对因使用此工具造成的任何滥用、损害或法律后果负责。
“不要只是扫描,要穿透噪音。”
Abdulhalim Altuntaş 开发
基于 MIT 许可证授权。
标签:403绕过, AppImage, Bug Bounty工具, EVTX分析, Go语言, SOC工具, TLS指纹欺骗, WAF绕过, Web安全, Web应用防火墙, 上下文感知, 云存储安全, 代码生成, 假阳性过滤, 大数据, 安全扫描, 密码管理, 并发编程, 底层编程, 插件系统, 日志审计, 时序注入, 智能扫描, 渗透测试工具, 漏洞发现, 目录扫描, 秘密扫描, 程序破解, 网络安全, 网络扫描, 自动校准, 蓝队分析, 隐私保护, 高并发