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 个高级模块**












## 🦇 什么是 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, 大模型集成, 安全监控, 安全规则引擎, 安全防御评估, 密码管理, 提示词优化, 系统运维工具, 网络安全, 网络测绘, 自定义请求头, 请求拦截, 逆向工具, 隐私保护