dorakula/dorakula

GitHub: dorakula/dorakula

一个集成了 192 个 MCP 工具和 AI 驱动分析的全频谱攻击安全平台,通过 REST 与 MCP 双接口提供从侦察到利用的完整渗透测试能力。

Stars: 0 | Forks: 0

``` ██████ ██████ ███████ ███ ██ █████ ██████ ██████ ██████ ██████ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ █████ ██ ██ ██ ███████ ██████ ██████ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██████ ██████ ███████ ██ ███ ██ ██ ██ ██ ██ ██████ ██████ ``` # 🧛 DORAKULA v3.1.0 ### 网络空间的暗夜行者 **攻击安全 MCP 平台** · **219 条 REST 路由** · **192 个 MCP 工具** · **Ollama 云端 AI** · **WAF 绕过引擎** · **7 个高级模块** ![Version](https://img.shields.io/badge/Version-3.1.0-crimson?style=for-the-badge&logo=python&logoColor=white) ![Tools](https://img.shields.io/badge/Security_Tools-192+-8B0000?style=for-the-badge&logo=shield&logoColor=white) ![AI](https://img.shields.io/badge/AI-Ollama_Cloud-4B0082?style=for-the-badge&logo=openai&logoColor=white) ![MCP](https://img.shields.io/badge/MCP-Compatible-2F0743?style=for-the-badge&logo=data:image/svg+xml;base64,&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-1a1a1a?style=for-the-badge&logo=github&logoColor=white) ![Platform](https://img.shields.io/badge/Platform-Kali_Linux-2F0743?style=for-the-badge&logo=kalilinux&logoColor=white) ![Python](https://img.shields.io/badge/Python-3.13+-3776AB?style=flat-square&logo=python&logoColor=white) ![Flask](https://img.shields.io/badge/Flask-3.1-000000?style=flat-square&logo=flask&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=flat-square&logo=docker&logoColor=white) ![Tests](https://img.shields.io/badge/Tests-88_PASS-brightgreen?style=flat-square&logo=pytest&logoColor=white) ![Coverage](https://img.shields.io/badge/Coverage-70%25+-yellow?style=flat-square&logo=codecov&logoColor=white) ![CI](https://img.shields.io/badge/CI-GitHub_Actions-2088FF?style=flat-square&logo=githubactions&logoColor=white)
## 🦇 什么是 DORAKULA? DORAKULA 不仅仅是另一个安全扫描器。它是一个**全频谱攻击安全平台**,像暗夜中的掠食者一样猎捕漏洞。拥有 **219 个 REST endpoint**、**192 个 MCP 工具**,以及通过 Ollama Cloud 提供的 **AI 驱动分析**,它涵盖了从侦测到利用再到报告的所有环节——所有这些都通过单个 Python 进程完成。 ### 为什么选择 DORAKULA? | 功能 | 描述 | |---------|-------------| | 🧛 **双接口** | REST API (Flask) + MCP SSE (Starlette) —— 相同的工具,两种访问方式 | | 🤖 **AI 驱动** | 5 密钥 Ollama 轮换池,具备自动故障转移功能,3 级模型系统(快速/中等/重型) | | 🛡️ **WAF 绕过引擎** | AI 生成的 payload 混淆,9 种编码技术,WAF 指纹识别 | | 🔒 **安全加固** | 速率限制、审计日志、HMAC 签名、按 endpoint 限制、默认拒绝(fail-closed)认证 | | 📊 **全面可观测性** | Prometheus 指标、审计日志查询 + 统计、OpenAPI 规范、Swagger UI | | 🐳 **Docker 就绪** | Dockerfile + docker-compose.yml、健康检查、持久化存储卷 | | 🧪 **测试套件** | 88 个 pytest 测试、GitHub Actions CI、pre-commit 钩子、覆盖率报告 | | 📦 **7 个高级模块** | WAF 绕过 AI、LLM 安全、云审计器、GraphQL、供应链、WebSocket Fuzzer、自动报告器 | ## 🩸 快速开始 ``` # Clone the repository git clone https://github.com/dorakula/dorakula.git cd dorakula # 创建虚拟环境 python3 -m venv dorakula-env source dorakula-env/bin/activate # 安装依赖项 pip install -r requirements.txt -r requirements.dev.txt # 启动服务器(如果未设置,则自动生成 API key) python dorakula_server.py # 或者启用 AI(需要 .env 中的 Ollama Cloud API keys) python dorakula_server.py --port 9092 ``` ### 服务端点 | 服务 | URL | 认证 | |---------|-----|------| | REST API | `http://127.0.0.1:9093` | `X-API-Key` header | | MCP SSE | `http://127.0.0.1:9092/sse` | 基于会话 | | Swagger UI | `http://127.0.0.1:9093/api/docs` | 无 | | OpenAPI Spec | `http://127.0.0.1:9093/api/openapi.json` | 无 | | Prometheus 指标 | `http://127.0.0.1:9093/metrics` | 无 | | 健康检查 | `http://127.0.0.1:9093/api/health` | 无 | ### 快速测试 ``` # 从服务器启动日志中获取 API key API_KEY="your-api-key-here" # 列出可用工具 curl -H "X-API-Key: $API_KEY" http://127.0.0.1:9093/api/agent/tools # 分析 JWT token curl -X POST -H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \ -d '{"token":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"}' \ http://127.0.0.1:9093/api/web/jwt_analyze # 获取 AI 驱动的工具推荐 curl -X POST -H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \ -d '{"target":"https://example.com","context":"web"}' \ http://127.0.0.1:9093/api/ai/recommend ``` ## 🔧 工具分类(219 条路由 · 192 个 MCP 工具) ### 🎯 侦察与扫描(25 条路由) `nmap_scan` · `masscan` · `rustscan` · `subfinder_enum` · `amass_enum` · `httpx_probe` · `whatweb_scan` · `dnsrecon` · `dnsenum` · `fierce_scan` · `gobuster_dns` · `enum4linux_scan` · `sslscan_tool` · `sslyze_scan` · `testssl_scan` · `theharvester` · `arjun_params` · `paramspider_crawl` · `ping_sweep` · `netbios_scan` · `smb_enum` · `nmap_stealth` · `nmap_udp` · `autorecon` · `traceroute_tool` ### 🌐 Web 应用安全(40 条路由) `nuclei_scan` · `nikto_scan` · `sqlmap_scan` · `dalfox_xss` · `xss_scan` · `xss_payloads` · `cors_check` · `header_check` · `jwt_analyze` · `jwt_none_bypass` · `jwt_crack` · `lfi_test` · `lfi_wrapper_test` · `ssrf_test` · `ssrf_cloud_metadata` · `cmd_injection_test` · `cmd_blind_test` · `commix_test` · `nosqlmap_test` · `tplmap_test` · `open_redirect_test` · `cookie_security_check` · `content_type_fuzz` · `wafw00f_detect` · `gobuster_dir` · `feroxbuster_dir` · `ffuf_dir` · `dirsearch_scan` · `dirb_scan` · `katana_crawl` · `hakrawler_crawl` · `gau_urls` · `waybackurls` · `wpscan_enum` · `graphql_introspect` · `api_fuzz_rest` · `api_fuzz_graphql` · `api_test_bola` · `rest_api_fuzz` · `wfuzz_fuzz` ### 🧪 WAF 绕过引擎 v2.5(9 条路由) `waf_detect` · `403_bypass_urls` · `ssrf_test_v3` · `lfi_test_v3` · `xss_test_v3` · `cmdi_test_v3` · `waf_bypass_report` · `smart_scan_status` · `deadlock_stats` ### ⚡ 现代攻击向量(15 条路由) `race_condition_test` · `http_smuggle_clte` · `http_smuggle_tecl` · `request_smuggling` · `subdomain_takeover_scan` · `subdomain_takeover_check` · `supply_chain_audit_js` · `supply_chain_check_sri` · `prototype_pollution_test` · `websocket_test_unauth` · `idor_test` · `mass_assignment_test` · `cache_poisoning_test` · `csp_bypass_test` · `host_header_injection` ### 🤖 AI 与 LLM 安全(2 条路由)— *v3.1.0 新增* `llm_security/scan` · `llm_security/prompt_injection` — 测试 prompt 注入、越狱、数据泄露、模型 DoS ### ☁️ 云安全(20 条路由) `aws_prowler` · `aws_pacu` · `aws_s3_enum` · `aws_bucket_check` · `azure_scanner` · `gcp_scanner` · `cloud_metadata_ssrf` · `kube_hunter` · `kube_bench` · `k8s_api_check` · `trivy_scan` · `checkov_scan` · `terrascan_scan` · `scout_suite` · `cloudmapper` · `docker_bench` · `serverless_scan` · `iam_enum` · `cloud_frontier` · `s3_bucket_misconfig` ### 🔍 OSINT(15 条路由) `shodan_search` · `censys_search` · `haveibeenpwned_check` · `hibp_breach_search` · `sherlock_hunt` · `spiderfoot_scan` · `social_analyzer` · `certificate_transparency` · `wayback_machine` · `git_dork` · `github_secret_scan` · `trufflehog_scan` · `subjack_check` · `aquatone_screenshot` · `reconng_module` ### 🔐 密码破解(12 条路由) `hydra_brute` · `john_crack` · `hashcat_crack` · `medusa_brute` · `patator_brute` · `evil_winrm` · `netexec_smb` · `netexec_ssh` · `hash_identify` · `hash_crack_autodetect` · `password_strength_check` · `brute_force_custom` ### 🧬 二进制分析(15 条路由) `ghidra_analyze` · `radare2_analyze` · `angr_analyze` · `gdb_debug` · `pwntools_exploit` · `msfvenom_generate` · `binwalk_extract` · `strings_extract` · `checksec_tool` · `ropgadget_find` · `ropper_find` · `objdump_analyze` · `readelf_analyze` · `upx_unpack` · `volatility_analyze` ### 🖥️ 浏览器自动化(10 条路由) `browser_crawl` · `browser_screenshot` · `browser_dom_analyze` · `browser_form_detect` · `browser_js_execute` · `browser_network_monitor` · `browser_security_headers` · `browser_cookie_analyze` · `browser_performance` · `browser_proxy_check` ### 🏁 CTF 工具包(15 条路由) `base64_tool` · `binwalk_firmware` · `cipher_identify` · `cyberchef_decode` · `exiftool_read` · `foremost_recover` · `frequency_analysis` · `hash_crack_ctf` · `memory_strings` · `pcaps_analyze` · `photorec_recover` · `registry_parse` · `steghide_extract` · `volatility3_mem` · `zsteg_detect` ### 🧠 AI 端点(3 条路由) `ai/analyze` · `ai/recommend` · `ai/execute` — Ollama Cloud 集成,采用 3 级模型系统 ### 📊 可观测性与运维(12 条路由) `health` · `status` · `metrics` · `openapi.json` · `docs` · `auth/audit_log` · `auth/audit_log/stats` · `cache/stats` · `cache/clear` · `db/stats` · `reports/auto/generate` · `reports/auto/validate` ### 🆕 高级模块(15 条路由)— *ROADMAP 实现* `waf_bypass_ai/obfuscate` · `waf_bypass_ai/fingerprint` · `cloud_auditor/scan` · `cloud_auditor/s3_check` · `graphql/scan` · `graphql/introspect` · `supply_chain/analyze` · `supply_chain/typosquat` · `ws_fuzzer/scan` · `ws_fuzzer/injection` · `llm_security/scan` · `llm_security/prompt_injection` · `reports/auto/generate` · `reports/auto/validate` ## 🧠 Ollama 云端 AI DORAKULA 集成了 Ollama Cloud,通过节省 token 的 3 级模型系统提供 AI 驱动的漏洞分析: | 级别 | 默认模型 | 最大 Token | 用例 | |------|---------------|------------|----------| | **快速** | `ministral-3:8b` | 150 | 工具推荐、快速分类 | | **中等** | `gemma3:27b` | 300 | 漏洞分析、优先级排序 | | **重型** | `gemma4:31b` | 500 | 利用链生成、深度分析 | ### 密钥轮池 DORAKULA 支持最多 10 个 Ollama API 密钥,在遇到配额/认证错误时自动轮换: ``` # .env 文件 OLLAMA_API_KEY_1=your-first-key OLLAMA_API_KEY_2=your-second-key OLLAMA_API_KEY_3=your-third-key # ... 最多 10 个 keys ``` 当某个密钥返回 401/429/配额错误时,DORAKULA 会自动轮换到下一个密钥并重试。 ## 🔒 安全功能 | 层级 | 实现 | 状态 | |-------|---------------|--------| | **API 密钥认证** | `secrets.compare_digest`(常量时间) | ✅ 激活 | | **默认拒绝** | 无密钥 = 401,未配置则生成随机密钥 | ✅ 激活 | | **速率限制** | 每个客户端 IP 100 次请求/60秒(全局) | ✅ 激活 | | **按 Endpoint 限制** | `_rate_limit(per_minute=N)` 装饰器 | ✅ 可用 | | **审计日志** | SQLite `audit.db`,记录所有认证事件 | ✅ 激活 | | **审计日志查询** | `/api/auth/audit_log`(分页 + 过滤) | ✅ 激活 | | **审计日志统计** | `/api/auth/audit_log/stats`(聚合) | ✅ 激活 | | **HMAC 签名** | 可选的 `X-Dorakula-Signature` 验证 | ✅ 激活 | | **速率限制 Header** | `Retry-After`、`X-RateLimit-Remaining` | ✅ 激活 | | **Ollama 密钥轮换** | 5 密钥池,具备自动故障转移 | ✅ 激活 | ## 📊 可观测性 ### Prometheus 指标 (`/metrics`) ``` dorakula_requests_total # counter dorakula_auth_failures_total # counter dorakula_auth_success_total # counter dorakula_rate_limit_hits_total # counter dorakula_ai_calls_total # counter dorakula_tool_runs_total # counter dorakula_errors_500_total # counter dorakula_uptime_seconds # gauge dorakula_tools_registered # gauge (192) dorakula_cache_size # gauge dorakula_ai_available # gauge (0 or 1) ``` ### API 文档 - **Swagger UI**: `http://localhost:9093/api/docs` - **OpenAPI Spec**: `http://localhost:9093/api/openapi.json`(自动生成 219 个路径) ## 🐳 Docker 部署 ``` # 使用 docker-compose 快速开始 docker-compose up -d # 或者手动构建 docker build -t dorakula . docker run -p 9092:9092 -p 9093:9093 \ -e DORAKULA_API_KEY=your-strong-key \ -e OLLAMA_API_KEY_1=your-ollama-key \ dorakula ``` ## 🧪 测试 ``` # 安装 dev dependencies pip install -r requirements.txt -r requirements.dev.txt # 启动服务器(测试所需) python dorakula_server.py --no-ai & # 运行所有测试(88 个测试,约 16 秒) pytest tests/ -v -k "not rate_limit" # 运行 coverage pytest tests/ -v --cov --cov-report=html # 运行特定测试 pytest tests/test_smoke.py::test_jwt_analyze -v ``` ## 📁 项目结构 ``` dorakula/ ├── dorakula_server.py # Main server (10K+ lines, all-in-one) ├── core/ # Core infrastructure │ ├── auth.py # AuthManager (aspirational reference) │ ├── audit_log.py # AuditLogger (SQLite) │ ├── config.py # Configuration helpers │ └── sandbox.py # SecureSandboxExecutor (aspirational) ├── agents/ # AI agent modules │ ├── ai_router.py # Ollama Cloud router (5-key rotation) │ ├── xss_scanner.py # XSS scanning │ ├── jwt_analyzer.py # JWT security analysis │ ├── graphql_specialist.py # GraphQL security (NEW) │ ├── auto_reporter.py # Auto-reporting (NEW) │ └── ... ├── advanced/ # Advanced attack modules │ ├── waf_bypass_ai.py # AI-powered WAF bypass (NEW) │ ├── llm_security.py # LLM security testing (NEW) │ ├── cloud_auditor.py # Cloud audit (NEW) │ ├── supply_chain_analyzer.py # Supply chain analysis (NEW) │ ├── websocket_fuzzer.py # WebSocket fuzzing (NEW) │ └── ... ├── tests/ # Pytest suite (88 tests) │ ├── conftest.py # Fixtures │ ├── test_routes.py # Parametrized auth tests │ └── test_smoke.py # Functional smoke tests ├── .github/ # GitHub config │ ├── workflows/ci.yml # CI pipeline │ └── ISSUE_TEMPLATE/ # Bug + feature templates ├── .githooks/ # Pre-commit hook ├── Dockerfile # Docker image ├── docker-compose.yml # Docker Compose ├── requirements.txt # Production deps (14 packages) ├── requirements.dev.txt # Dev deps (pytest, pytest-cov) ├── pytest.ini # Pytest config ├── .coveragerc # Coverage config ├── ARCHITECTURE.md # Full architecture docs ├── CONTRIBUTING.md # Contribution guide ├── ROADMAP_MODUL_ADVANCED.md # Advanced module roadmap └── README.md # This file ``` ## 🗺️ 路线图 来自 `ROADMAP_MODUL_ADVANCED.md` 的全部 7 个模块均已实现: - [x] **WAF 绕过 AI** — AI payload 混淆 + WAF 指纹识别 - [x] **LLM 安全** — Prompt 注入、越狱、数据泄露测试 - [x] **云审计器** — AWS/GCP/Azure 元数据、S3、K8s 检查 - [x] **GraphQL 专家** — Introspection、深度限制、批量攻击 - [x] **供应链分析器** — Typosquatting、CI/CD 注入、依赖混淆 - [x] **WebSocket Fuzzer** — 握手模糊测试、消息注入、连接洪泛 - [x] **自动报告器** — Markdown/JSON 报告、严重性校准、PoC 验证 ## ⚖️ 法律与道德
**⚠️ DORAKULA 仅用于授权的安全测试。⚠️**
**授权使用:** - ✅ 具有明确授权的漏洞赏金计划 - ✅ 签署了范围协议的渗透测试 - ✅ 对您拥有的系统进行安全研究 - ✅ CTF 比赛和教育目的 **严禁:** - ❌ 未经明确许可测试系统 - ❌ 为个人利益利用漏洞 - ❌ 使用此工具进行非法活动 ## 📜 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE) 文件。
**🧛 DORAKULA v3.1.0 — 网络空间的暗夜行者** *用鲜血、汗水和 Python 3.13 打造* [报告 Bug](https://github.com/dorakula/dorakula/issues) · [请求功能](https://github.com/dorakula/dorakula/issues) · [架构](ARCHITECTURE.md) · [贡献](CONTRIBUTING.md)
标签:AI风险缓解, CISA项目, Docker, Flask, RESTful API, 大模型集成, 安全监控, 安全规则引擎, 安全防御评估, 密码管理, 提示词优化, 系统运维工具, 网络安全, 网络测绘, 自定义请求头, 请求拦截, 逆向工具, 隐私保护