glferreira-devsecops/Cascavel
GitHub: glferreira-devsecops/Cascavel
Cascavel 是一个集成了 84 个插件的进攻性安全框架,通过统一工作流解决多工具割裂与报告合规难题。
Stars: 9 | Forks: 0
🐍 CASCAVEL
框架用于进攻性安全 — 红队情报引擎
84 个安全插件 · 30+ 侦察工具 · OWASP 2025 · CVSS v4.0 · PDF/MD/JSON 报告
一键枚举、扫描、利用、分析并生成符合合规要求的渗透测试报告。
专为红队成员、漏洞赏金猎人及 DevSecOps 工程师打造。
🇺🇸 English ·
🇧🇷 Português (Brasil)
官网 ·
安装 ·
为何选择 Cascavel ·
架构 ·
插件套件 ·
CLI ·
报告 ·
安全加固 ·
贡献
## 🎬 演示
电影级启动序列 · 自动识别 30+ 工具 · 预加载器附带安全情报提示
分屏实时仪表盘 · 实时严重性追踪 · 轮换的安全情报
## 💡 为何 Cascavel 与众不同
大多数渗透测试工作流程依赖 **20+ 个独立工具**,每个工具都有各自的语法、输出格式和报告风格。你需要手动合并结果、格式化报告,并因上下文切换而浪费数小时。
**Cascavel 替代了完整的工作流:**
```
┌─────────────────────────────────────────────────────────┐
│ $ python3 cascavel.py -t target.com --pdf │
│ │
│ ┌──────────┐ ┌────────┐ ┌──────────┐ ┌──────────┐ │
│ │ DISCOVER │→ │ PROBE │→ │ ATTACK │→ │ ANALYZE │ │
│ └──────────┘ └────────┘ └──────────┘ └──────────┘ │
│ Subdomains Ports XSS,SQLi JWT,CORS │
│ DNS,WHOIS Banners SSRF,RCE CSP,CSRF │
│ Cloud enum Headers SSTI,XXE OAuth,IDOR │
│ │
│ ┌──────────┐ ┌──────────────────────────────────────┐ │
│ │ DETECT │→ │ REPORT (PDF/MD/JSON) │ │
│ └──────────┘ └──────────────────────────────────────┘ │
│ Docker,K8s CVSS v4.0 · OWASP · PTES · LGPD │
│ Redis,S3 Legal disclaimers · SHA-256 integrity │
│ CI/CD Compliance mapping · Risk matrix │
└─────────────────────────────────────────────────────────┘
```
| 能力 | Cascavel | 其他工具 |
|:---|:---|:---|
| **统一流水线** | 84 个插件 + 30 个工具,单命令集成 | 分散的脚本 |
| **实时仪表盘** | 分屏展示实时统计与情报 | 无实时反馈 |
| **PDF 报告** | 12 条法律免责声明、CVSS v4.0、PTES | 手动格式化 |
| **终端 UX** | 电影级预加载器、淡入动画 | 纯 stdout |
| **安全加固** | ANSI 净化器、插件沙箱 | 信任所有输出 |
| **零配置** | `install.sh` 全自动安装 | 手动依赖地狱 |
## ⚡ 安装
### 先决条件
| 要求 | 最低版本 | 原因 |
|:---|:---|:---|
| **Python** | 3.12+ | LTS 至 2028 · `importlib.metadata`、类型泛型 |
| **requests** | 2.32.4 | GHSA-9hjg — `.netrc` 凭据泄露 + TLS 验证绕过 |
| **pyOpenSSL** | 25.0.0 | GHSA-5pwr — 缓冲区溢出 + 未处理回调绕过 |
| **dnspython** | 2.7.0 | GHSA-3rq5 — TuDoor DNS 解析中断 |
| **PyJWT** | 2.12.0 | CVE-2022-29217 — 算法混淆攻击 |
| **ReportLab** | 3.6.13 | CVE-2023-33733 — 通过 `rl_safe_eval` 的 RCE |
### 🚀 快速安装
```
curl -fsSL https://raw.githubusercontent.com/glferreira-devsecops/Cascavel/main/install.sh | bash
```
**一条命令。仅此而已。** 适用于 macOS、Linux(Debian/Ubuntu/Kali/Parrot/Fedora/Arch/Alpine/SUSE)、WSL2 和 Docker。安装器自动检测操作系统,安装缺失的 `git` 与 `python3`,克隆仓库,创建虚拟环境,安装全部 84 个插件 + 30 个工具,并注册全局命令 `cascavel`。**零手动步骤。**
📋 备用方法(git 克隆、Docker、手动)
```
# Git clone
git clone https://github.com/glferreira-devsecops/Cascavel.git && cd Cascavel && bash install.sh
# 下载 tarball(无需 git)
curl -fsSL https://github.com/glferreira-devsecops/Cascavel/archive/main.tar.gz | tar xz && cd Cascavel-main && bash install.sh
# Docker(隔离)
docker run -it --rm python:3.12-slim bash -c "apt update && apt install -y git && git clone https://github.com/glferreira-devsecops/Cascavel.git /app && cd /app && bash install.sh"
# 手动
git clone https://github.com/glferreira-devsecops/Cascavel.git && cd Cascavel
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt && python3 cascavel.py -t target.com
```
安装器 v2.3.0 包含 **15 项安全加固**:`trap` 清理、`mktemp -d` TOCTOU 隔离、防符号链接锁定、SHA-256 `requirements.txt` 完整性、CVE 版本强制(6 个包)、`umask 077`、PATH 前缀净化(拒绝 `.` 与相对路径)、容器检测(Docker/Podman/LXC)、WSL2 内核检测、Python `ssl` 模块验证、陈旧 venv 恢复、对敏感路径执行 `chmod 700/600`、GOPATH/GOBIN 导出验证、本地化 UTF-8 强制,以及关键二进制文件的绝对路径。
## 🏗️ 架构
```
cascavel.py (2800+ lines) report_generator.py (1400+ lines)
├── ANSI Escape Sanitizer ├── _NumberedCanvas (two-pass "Page X of Y")
│ └── Blocks CSI/OSC/DCS injection ├── Diagonal "CONFIDENCIAL" watermark
├── Preloader Engine ├── QR Code → rettecnologia.org
│ └── 5-stage cinematic boot ├── Widows/orphans paragraph control
├── Plugin Orchestrator ├── Table splitOn + repeatRows=1
│ └── Dynamic load, SIGALRM timeout ├── Risk Matrix (5×5 heat map)
├── Split-Screen Dashboard ├── 9 compliance frameworks
│ └── Rich Live (scan + intel panel) ├── 20-term security glossary
├── External Tools Pipeline ├── Prioritized remediation summary
│ └── 30+ tools, shlex.quote() └── SHA-256 document integrity
├── Report Engine (PDF/MD/JSON)
└── Signal Handler (async-signal-safe)
```
### 终端 UX 引擎(21 项加固)
| # | 防护 | 实现 |
|:--|:---|:---|
| 1 | 终端高度检测 | `_get_terminal_height()` — POSIX 回退,适用于无头/管道环境 |
| 2 | Logo 淡出终端检测 | 在行数 < 20 的终端跳过光标操作 |
| 3 | 光标安全钳制 | `_clear_block` — 从不将光标移出边界 |
| 4 | 预加载器回退 | `try/except` 包装器,适用于 CI/管道/哑终端 |
| 5 | 类型打字中断 | 确保在 SIGINT 传播前输出换行 |
| 6 | 启动行 stdout | 消除 Rich/stdout 缓冲竞争 |
| 7 | 256 色渐变 | Cobra `green_ramp` 调色板(22→46) |
| 8 | 进度节奏控制 | 可变速度,配合 `TimeElapsedColumn` |
| 9 | 百分比钳制 | `_build_table` 限制上限为 100% |
| 10 | ANSI 净化器 | 从插件输出剥离 CSI/OSC/DCS,保留 SGR 颜色代码 |
| 11 | 统计回退 | 即使 Rich Live 崩溃也能提供准确的仪表盘 |
## 📄 PDF 报告(v2.2.0)
企业级报告由 **[RET Tecnologia](https://rettecnologia.org)** 签名,符合巴西与国际框架规范:
| 章节 | 内容 |
|:---|:---|
| **封面** | Logo、目标、报告 ID(`CSR-YYYYMMDD-HHMMSS`)、QR 码 → [rettecnologia.org](https://rettecnologia.org) |
| **法律免责声明** | 12 个框架:NDA、LGPD、Marco Civil、Art. 154-A、PL 4752/2025、ISO 27001、PCI DSS v4.0、NIST SP 800-115、OWASP Testing Guide v5、CVSS v4.0、SOC 2、HIPAA |
| **执行摘要** | 动态严重性态势徽章(交通灯评分) |
| **风险矩阵** | 5×5 热图,采用 CVSS v4.0 颜色编码 |
| **详细发现** | OWASP 2025 映射、证据、修复步骤 |
| **合规映射** | 9 个国际框架的差距分析 |
| **优先修复** | 按 CVSS 分数排序的发现及工时估算 |
| **术语表** | 20 个安全术语及定义 |
| **PTES 方法论** | 5 个阶段渗透测试文档 |
| **修订历史** | 版本跟踪(含作者与日期) |
| **签名页** | SHA-256 文档完整性哈希 |
**报告特性:** `"Página X de Y"` 双遍页码 · 对角 `CONFIDENCIAL` 水印 · 寡妇/孤儿段落控制 · 智能表格拆分(`repeatRows=1`)· 每页可点击链接至 [rettecnologia.org](https://rettecnologia.org)。
```
cascavel -t target.com --pdf # Generate PDF report
cascavel -t target.com -o json # JSON output for CI/CD pipelines
cascavel -t target.com -o md # Markdown for documentation
```
## 🔌 插件套件(84 个)
零误报容忍。标准化的 `run()` 接口。每个插件返回带严重性分类的结构化结果。
### 💉 注入与代码执行(7)
`xss_scanner` · `sqli_scanner` · `ssti_scanner` · `rce_scanner` · `blind_rce` · `nosql_scanner` · `cve_2021_44228_scanner`
### 🌐 服务端攻击(4)
`ssrf_scanner` · `xxe_scanner` · `lfi_scanner` · `path_traversal`
### 🔐 认证与授权(6)
`jwt_analyzer` · `oauth_scanner` · `csrf_detector` · `idor_scanner` · `session_fixation` · `password_policy`
### 🔄 协议层(4)
`http_smuggling` · `http2_smuggle` · `websocket_scanner` · `grpc_scanner`
### 🛡️ 防御绕过(7)
`cors_checker` · `csp_bypass` · `clickjacking_check` · `host_header_injection` · `web_cache_poison` · `rate_limit_check` · `waf_bypass`
### 🎯 API 安全(4)
`graphql_probe` · `graphql_injection` · `api_enum` · `api_versioning`
### 💣 高级 Web(6)
`mass_assignment` · `race_condition` · `prototype_pollution` · `deserialization_scan` · `open_redirect` · `crlf_scanner`
### ☁️ 基础设施(8)
`docker_exposure` · `k8s_exposure` · `redis_unauth` · `mongodb_unauth` · `elastic_exposure` · `cicd_exposure` · `cloud_metadata` · `cloud_enum`
### 🔍 侦察与 OSINT(11)
`subdomain_hunter` · `subdomain_takeou` · `dns_deep` · `dns_rebinding` · `network_mapper` · `email_harvester` · `email_spoof_check` · `shodan_recon` · `wayback_enum` · `whois_recon` · `traceroute_mapper`
### 🕵️ 信息收集(7)
`tech_fingerprint` · `js_analyzer` · `param_miner` · `info_disclosure` · `secrets_scraper` · `git_dumper` · `admin_finder`
### 🌐 Web 扫描(7)
`dir_bruteforce` · `nikto_scanner` · `katana_crawler` · `http_methods` · `wps_scanmini` · `nuclei_scanner` · `fast_webshell`
### ☁️ 云(2)
`s3_bucket` · `saml_scanner`
### 📊 分析(5)
`ssl_check` · `waf_detec` · `profiler_bundpent` · `nmap_advanc` · `auto_exploit`
### 🔐 暴力破解(6)
`ssh_brute` · `ftp_brute` · `smb_ad` · `smpt_enum` · `heartbleed_scanner` · `domain_transf`
## 💻 CLI 参考
```
python3 cascavel.py -t example.com # Full scan (all plugins + tools)
python3 cascavel.py # Interactive mode
python3 cascavel.py -t example.com --pdf # Generate PDF report
python3 cascavel.py -t example.com -o json # JSON output (CI/CD integration)
python3 cascavel.py -t example.com -q # Quiet mode (no animations)
python3 cascavel.py --plugins-only # Skip external tools
python3 cascavel.py --list-plugins # List all 84 plugins
python3 cascavel.py --check-tools # Check installed tools
```
| 参数 | 描述 |
|:---|:---|
| `-t TARGET` | 目标域名或 IP |
| `-q` | 禁用动画与预加载器 |
| `-o FORMAT` | 输出格式:`md` / `json` / `pdf` |
| `--pdf` | 等价于 `-o pdf` |
| `--timeout N` | 每个工具超时(秒,默认 90) |
| `--plugins-only` | 仅运行内置插件,跳过外部工具 |
| `--check-tools` | 显示 30+ 外部工具状态 |
| `--list-plugins` | 列出所有可用插件 |
| `--no-preloader` | 跳过电影级启动动画 |
| `--no-notify` | 禁用桌面通知 |
| `-v` | 显示版本 |
## 🛠️ 外部工具(30+)
均为可选 — Cascavel 会自动检测并优雅跳过缺失工具。
| 类别 | 工具 |
|:---|:---|
| **侦察** | subfinder · amass · dnsx · fierce · dnsrecon · whois |
| **Web 探测** | httpx · nikto · katana · feroxbuster · ffuf · gobuster |
| **端口扫描** | nmap · naabu |
| **漏洞利用** | nuclei · sqlmap |
| **OSINT** | shodan · gau · waybackurls · asnmap · mapcidr |
| **WAF 检测** | wafw00f |
| **网络** | traceroute · dig · tshark |
| **加密/TLS** | sslscan |
| **CMS** | wpscan · whatweb |
| **暴力破解** | hydra · john |
## 🔒 安全加固
Cascavel 针对针对安全工具本身的现代攻击向量进行了加固:
### 引擎防护
| 向量 | 缓解措施 |
|:---|:---|
| **终端注入**(CSI/OSC/DCS) | `_sanitize_output()` 从所有插件输出剥离危险 ANSI 转义序列,仅保留 SGR 颜色代码 |
| **插件超时** | 基于 `SIGALRM` 的强制执行,防止插件无限挂起 |
| **信号处理死锁** | SIGINT 处理程序使用 `os.write()`(异步信号安全)替代 `print()`/日志 |
| **进程僵尸泄漏** | 超时触发 `os.killpg()` 杀死整个进程组 |
| **输入注入** | 所有外部工具目标均通过 `shlex.quote()` 净化 |
### 安装器防护(v2.3.0 — 15 项加固)
| # | 向量 | 缓解措施 |
|:--|:---|:---|
| 1 | **TOCTOU 竞争** | 为临时目录使用 `mktemp -d` |
| 2 | **并行执行** | 锁文件 + 防符号链接检查,防止并发安装 |
| 3 | **供应链** | 对 `requirements.txt` 进行 SHA-256 哈希校验 |
| 4 | **已知 CVE** | 对 6 个包(PyJWT、ReportLab、requests、pyOpenSSL、dnspython)进行版本强制 |
| 5 | **权限提升** | `umask 077`,对敏感文件和目录执行 `chmod 700/600` |
| 6 | **清理失败** | 在 EXIT/INT/TERM/HUP 上通过 `trap` 清理临时文件 |
| 7 | **PATH 注入** | 启动时剥离 `.` 和相对路径 |
| 8 | **二进制劫持** | 对 `mkdir`、`rm`、`cat`、`date`、`uname` 使用绝对路径 |
| 9 | **容器检测** | 检测 Docker、Podman、LXC 及基于 cgroup 的容器 |
| 10 | **WSL2 检测** | 识别 WSL 内核以调整网络扫描 |
| 11 | ** venv** | 检测损坏或移动的 Python 二进制并重建虚拟环境 |
| 12 | **SSL 模块检查** | 验证 Python `ssl` 模块的可用性以支持 pip HTTPS |
| 13 | **本地化强制** | 强制设置 `LC_ALL=en_US.UTF-8` 防止编码错误 |
| 14 | **GOPATH 验证** | 导出并验证 `GOPATH/GOBIN` 以用于 Go 工具安装 |
| 15 | **磁盘空间检查** | 安装前警告剩余空间不足 500MB |
## 📁 项目结构
```
Cascavel/
├── cascavel.py # Core engine (2800+ lines)
├── report_generator.py # PDF reports (ReportLab Platypus)
├── install.sh # Universal installer (v2.3.0, 15 hardenings)
├── plugins/ # 84 security plugins
│ ├── xss_scanner.py # └── Standardized run() interface
│ ├── jwt_analyzer.py
│ └── ...
├── docs/ # Screenshots and assets
├── reports/ # Generated reports (auto-created)
├── exports/ # Exported data (auto-created)
├── wordlists/ # Fuzzing wordlists
├── nuclei-templates/ # Custom Nuclei templates
├── requirements.txt # Python dependencies
├── PLUGINS.md # Full plugin documentation
├── CONTRIBUTING.md # Contribution guide
├── CHANGELOG.md # Version history
├── SECURITY.md # Vulnerability disclosure policy
└── LICENSE # MIT
```
## 🔄 CI/CD 安全流水线(8 个工作流)
Cascavel 随附 **8 个 GitHub Actions 工作流**,在每个推送和拉取请求中强制执行安全:
| 工作流 | 作业 | 工具 | 输出 |
|:-------|:-----|:------|:-------|
| [**CI**](.github/workflows/ci.yml) | 语法检查 · 编译 · 测试 · 安全 · 版本同步 · 发布草稿 | Ruff 0.15.10 · py_compile · pytest · Bandit 1.8.6 | SARIF 工件 |
| [**安全 CI**](.github/workflows/security.yml) | 语法 · Bandit SAST · Semgrep SAST · CVE 审计 · 密钥检测 | Bandit 1.8.6 · Semgrep · pip-audit · Gitleaks | SARIF → 安全面板 |
| [**CodeQL**](.github/workflows/codeql.yml) | Python 语义分析 | GitHub CodeQL | SARIF → 安全面板 |
| [**模糊测试**](.github/workflows/fuzz.yml) | Atheris 模糊测试(10 万次运行) | Google Atheris(libFuzzer) | 崩溃检测 |
| **[Scorecard](.github/workflows/scorecard.yml)** | 开源供应链审计 | OSSF Scorecard | 徽章 + SARIF |
| [**自动更新**](.github/workflows/update-deps.yml) | 每周依赖审计 + 自动 PR | `update_deps.py` + pip | 自动 PR |
| [**自动合并**](.github/workflows/auto-merge.yml) | Dependabot 补丁自动合并 | GitHub CLI | 免干预修补 |
| [**Dependabot**](.github/dependabot.yml) | 自动化依赖更新 | GitHub Dependabot | pip 与 Actions 的 PR |
## ⚡ 信号处理
Cascavel 为所有环境提供健壮的 Unix 信号处理:
| 信号 | 行为 | 用途 |
|:-----|:-----|:-----|
| `SIGINT`(Ctrl+C) | 通过 `os.write()` 异步信号安全方式退出 → 退出码 130 | 交互式终端 |
| `SIGTERM` | 同一处理程序 → 退出码 143 | Docker/K8s 优雅关闭 |
| `SIGPIPE` | 恢复为 `SIG_DFL` | 管道干净终止(`\| head`) |
| `BrokenPipeError` | 捕获并 `os._exit(141)` | 处理 SIGPIPE 边缘情况 |
## 🤝 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取完整指南。
**插件接口** — 将文件放入 `plugins/` 目录即可自动发现:
```
def run(target: str, ip: str, open_ports: list, banners: dict) -> dict:
"""
Args:
target: Domain or IP being scanned
ip: Resolved IPv4/IPv6 address
open_ports: List of open port numbers (from naabu)
banners: Dict mapping port -> banner string
Returns:
{
"plugin": "my_plugin",
"resultados": [...], # Findings list or summary string
"severidade": "ALTO", # CRITICO | ALTO | MEDIO | BAIXO | INFO
}
"""
return {"plugin": "my_plugin", "resultados": "Limpo", "severidade": "INFO"}
```
## 📋 链接
| 资源 | 描述 |
|:---|:---|
| [CHANGELOG.md](CHANGELOG.md) | 版本历史与发布说明 |
| [SECURITY.md](SECURITY.md) | 漏洞披露策略(包含 GPG 密钥) |
| [PLUGINS.md](PLUGINS.md) | 完整插件文档、技术与绕过研究 |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 贡献指南(含插件接口规范) |
| [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | 贡献者行为准则 v2.1 |
| [LICENSE](LICENSE) | MIT 许可证(SPDX: `MIT`) |
| [OpenSSF Scorecard](https://securityscorecards.dev/viewer/?uri=github.com/glferreira-devsecops/Cascavel) | 供应链安全评分 |
| [OpenSSF Best Practices](https://www.bestpractices.dev/projects/12255) | 金牌合规认证 |
| [RET Tecnologia](https://rettecnologia.org) | 公司官网 |
MÉTODO CASCAVEL™
RET Tecnologia 的产品 — 进攻性软件工程与网络安全工程
Gabriel L. Ferreira · 创始人与 DevSecOps 负责人
🌐 cascavel.pages.dev ·
🏢 rettecnologia.org
让网络更安全,一次一个目标。🐍
---
安全研究由 DarkForge-X 框架驱动。
标签:85+插件, AES-256, Bug赏金, CVSS v4.0, DevSecOps, JSON报告, JSON 请求, Markdown报告, OWASP 2025, PDF报告, RET Tecnologia, TypeScript, 上游代理, 代码生成, 侦察工具, 反取证, 合规报告, 多平台支持, 安全合规, 安全报告, 安全插件, 安全评估, 情报收集, 报告合规性, 渗透测试工具, 渗透测试框架, 漏洞分析, 漏洞研究, 漏洞评估, 红队情报, 网络代理, 自动利用, 自动化渗透测试, 自动扫描, 自动枚举, 路径探测, 逆向工具, 防御