tushargurav28/Kryphos

GitHub: tushargurav28/Kryphos

基于FastAPI和React的实时Web安全侦察平台,整合多种开源工具实现自动化资产发现与漏洞扫描。

Stars: 0 | Forks: 0

# 🐛 Kryphos v3.4
![Kryphos](https://img.shields.io/badge/Recon-Dashboard-blue) ![Version](https://img.shields.io/badge/version-3.4.0-green) ![Python](https://img.shields.io/badge/python-3.13+-blue) ![React](https://img.shields.io/badge/react-18.2.0-blue) ![License](https://img.shields.io/badge/license-MIT-blue) **现代化的实时 Web 应用安全侦察仪表盘** [功能特性](#-features) • [安装](#-installation) • [使用](#-usage) • [截图](#-screenshots) • [架构](#-architecture)
## 📖 目录 - [Kryphos 是什么?](#-what-is-recon-dashboard) - [功能特性](#-features) - [适用人群](#-who-should-use-this) - [架构](#-architecture) - [安装](#-installation) - [使用](#-usage) - [截图](#-screenshots) - [API 端点](#-api-endpoints) - [配置](#-configuration) - [故障排除](#-troubleshooting) - [贡献](#-contributing) - [许可证](#-license) ## 🤔 Kryphos 是什么? **Kryphos** 是一个功能强大且用户友好的 Web 应用程序,用于自动化网站和域名的安全侦察。可以把它看作一个**安全扫描器,用于检查网站的潜在漏洞、暴露的信息和安全配置错误**——所有操作都在一个美观且易于使用的界面中完成。 ### 🔍 它能做什么? 假设您想检查一个网站是否安全。Kryphos 会自动: 1. **查找所有子域名**(例如 `mail.example.com`、`admin.example.com` 等) 2. **检查哪些子域名存活**并响应 3. **搜索历史存档**以查找旧 URL 和页面 4. **扫描安全漏洞**,使用行业标准工具 5. **检查服务器上的开放端口** 6. **发现隐藏的端点**和 JavaScript 文件 7. **实时显示所有内容**在一个精美的仪表盘上 ### 🎯 适用于: - ✅ **安全研究人员** - 自动化您的侦察工作流程 - ✅ **网站所有者** - 检查您自己网站的安全问题 - ✅ **开发人员** - 学习安全扫描和侦察知识 - ✅ **学生** - 理解 Web 应用安全概念 - ✅ **Bug Bounty 猎人** - 加速您的初始侦察阶段 - ✅ **IT 专业人士** - 监控和审计组织的网络资产 ## ✨ 功能特性 ### 🔎 核心扫描功能 | 功能 | 描述 | 使用的工具 | |---------|-------------|------------| | **子域名枚举** | 查找目标域名的所有子域名 | Subfinder, Assetfinder, Findomain, Chaos | | **HTTP 探测** | 检查哪些子域名存活并响应 | HTTPX | | **Wayback URL 收集** | 搜索历史存档中的旧 URL | Wayback Machine API | | **漏洞扫描** | 扫描安全漏洞和配置错误 | Nuclei | | **端口扫描** | 检查服务器上的开放端口和服务 | Nmap | | **Web 爬取** | 发现隐藏的端点和页面 | Katana | | **JavaScript 分析** | 在 JavaScript 文件中查找秘密和端点 | Custom Scanner | ### 🎨 用户界面功能 | 功能 | 描述 | |---------|-------------| | **实时更新** | 通过 WebSocket 即时查看结果 | | **实时终端** | 实时观察扫描进度 | | **交互式表格** | 对结果进行排序、过滤和搜索 | | **详情模态框** | 点击任何结果查看完整详情 | | **严重程度过滤** | 按严重程度级别过滤漏洞 | | **导出结果** | 轻松将结果复制到剪贴板 | | **深色主题** | 适合长时间扫描,保护眼睛 | | **响应式设计** | 支持桌面和移动设备 | ### 🚀 技术特性 | 功能 | 描述 | |---------|-------------| | **异步处理** | 使用 asyncio 实现快速、非阻塞扫描 | | **数据库存储** | 所有结果保存到 SQLite 数据库 | | **WebSocket 支持** | 后端和前端之间的实时通信 | | **REST API** | 用于编程访问的完整 API | | **错误处理** | 全面的错误处理和日志记录 | | **速率限制** | 内置速率限制,避免压垮目标 | | **模板更新** | 扫描前自动更新 Nuclei 模板 | ## 👥 适用人群? ### ✅ 推荐: - **安全专业人士** - 自动化侦察工作流程 - **网站所有者** - 审计自己网站的安全问题 - **开发人员** - 学习安全扫描概念 - **学生** - 用于理解 Web 安全的教育工具 - **IT 团队** - 监控组织的网络资产 ### ❌ 不推荐: - 未经许可扫描网站 - 非法活动或未经授权的访问 - 未经适当测试的生产环境 - 不熟悉安全概念的用户 ## 🏗 架构 ### 系统流程图 ``` graph TD A[User Opens Dashboard] --> B[Enter Target Domain] B --> C[Click Start Full Recon] C --> D[Backend Creates Scan] D --> E[Phase 1: Subdomain Enumeration] E --> E1[Subfinder] E --> E2[Assetfinder] E --> E3[Findomain] E --> E4[Chaos API] E1 & E2 & E3 & E4 --> E5[Collect Unique Subdomains] E5 --> F[Phase 2: HTTP Probing] F --> F1[HTTPX Scan] F1 --> F2[Check Live Hosts] F2 --> F3[Extract IPs & URLs] F3 --> G[Phase 3: Wayback Collection] G --> G1[Query Archive.org] G1 --> G2[Collect Historical URLs] F3 --> H[Phase 4: Nuclei Scan] H --> H1[Update Templates] H1 --> H2[Scan All URLs] H2 --> H3[Collect Vulnerabilities] F3 --> I[Phase 5: Nmap Scan] I --> I1[Scan Discovered IPs] I1 --> I2[Collect Open Ports] F3 --> J[Phase 6: Katana Crawl] J --> J1[Crawl Websites] J1 --> J2[Discover Endpoints] E5 & F3 & G2 & H3 & I2 & J2 --> K[Save to Database] K --> L[WebSocket Broadcast] L --> M[Real-Time UI Updates] M --> N[Display Results] N --> O[User Can Filter/Export] O --> P[Scan Complete] ``` ### 技术栈 ``` ┌─────────────────────────────────────────────────────────┐ │ Frontend (React) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Dashboard│ │ Stats │ │ Terminal │ │ Tables │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ WebSocket Client │ └─────────────────────────────────────────────────────────┘ ↕ WebSocket ┌─────────────────────────────────────────────────────────┐ │ Backend (FastAPI + Python) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Recon │ │ Scanner │ │ DB │ │ API │ │ │ │ Engine │ │ Modules │ │ Manager │ │Endpoints │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │ AsyncIO Core │ └─────────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────────┐ │ Security Tools (External) │ │ ┌────────┐ ┌────────┐ ┌───────┐ ┌──────┐ ┌────────┐ │ │ │Subfinder│ │ HTTPX │ │Nuclei │ │ Nmap │ │ Katana │ │ │ └────────┘ └────────┘ └───────┘ └──────┘ └────────┘ │ │ ┌────────┐ ┌────────┐ ┌────────────────────────────┐ │ │ │Wayback │ │ FFUF │ │ Assetfinder/Findomain │ │ │ └────────┘ └────────┘ └────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────────┐ │ Database (SQLite) │ │ ┌──────────────────┐ ┌──────────────────────────────┐ │ │ │ Scans │ │ Results │ │ │ │ - scan_id │ │ - id, scan_id, phase │ │ │ │ - target │ │ - data (JSON), timestamp │ │ │ │ - status │ │ │ │ │ │ - progress │ │ │ │ │ └──────────────────┘ └──────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` ### 扫描工作流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ SCAN WORKFLOW │ └─────────────────────────────────────────────────────────────┘ ┌──────────────┐ │ START │ │ Target: │ │ example.com │ └──────┬───────┘ │ ▼ ┌──────────────┐ │ PHASE 1 │ ⏱ ~1-2 minutes │ Subdomains │ 📊 Finds: 100-500 subdomains └──────┬───────┘ │ ▼ ┌──────────────┐ │ PHASE 2 │ ⏱ ~2-5 minutes │ HTTPX │ 📊 Finds: 50-200 live hosts └──────┬───────┘ │ ├──────────────────┬──────────────────┬──────────────┐ │ │ │ │ ▼ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ PHASE 3 │ │ PHASE 4 │ │ PHASE 5 │ │ PHASE 6 │ │ Wayback │ │ Nuclei │ │ Nmap │ │ Katana │ │ URLs │ │ Vulns │ │ Ports │ │ Crawl │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ │ └──────────────────┴──────────────────┴──────────────┘ │ ▼ ┌──────────────┐ │ COMPLETE │ ⏱ Total: 5-15 minutes │ Save to DB │ 📊 All results stored └──────────────┘ ``` ## 📦 安装 ### 前置条件 在安装 Kryphos 之前,请确保您已具备: - 已安装 **Python 3.13+** - 已安装 **Node.js 18+** 和 npm - 用于克隆仓库的 **Git** - **安全工具**(将自动或手动安装) ### 步骤 1:克隆仓库 ``` # 克隆 repository git clone https://github.com/YOUR_USERNAME/recon-dashboard.git # 导航到项目目录 cd recon-dashboard ``` ### 步骤 2:安装安全工具 #### 选项 A:自动安装(推荐) ``` # 运行安装脚本 chmod +x install-tools.sh ./install-tools.sh ``` #### 选项 B:手动安装 ``` # 安装 Subfinder go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest # 安装 HTTPX go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest # 安装 Nuclei go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # 安装 Katana go install -v github.com/projectdiscovery/katana/cmd/katana@latest # 安装 Assetfinder go install github.com/tomnomnom/assetfinder@latest # 安装 Findomain # macOS brew install findomain # Linux wget https://github.com/findomain/findomain/releases/latest/download/findomain-linux.zip unzip findomain-linux.zip chmod +x findomain sudo mv findomain /usr/bin/ # 安装 Nmap # macOS brew install nmap # Ubuntu/Debian sudo apt-get install nmap # Fedora sudo dnf install nmap # 更新 Nuclei templates nuclei -ut ``` ### 步骤 3:安装后端依赖 ``` # 导航到 backend 目录 cd backend # 创建 virtual environment python3.13 -m venv venv # 激活 virtual environment # macOS/Linux source venv/bin/activate # Windows venv\Scripts\activate # 安装 Python dependencies pip install -r requirements.txt # 创建 environment file cp .env.example .env # 编辑 .env 并添加您的 API keys (可选) nano .env ``` ### 步骤 4:安装前端依赖 ``` # 导航到 frontend 目录 cd ../frontend # 安装 npm dependencies npm install ``` ### 步骤 5:配置环境 在 `backend` 目录下创建一个 `.env` 文件: ``` # backend/.env # Chaos API Key (可选 - 用于额外的 subdomain 来源) CHAOS_API_KEY=your_chaos_api_key_here # Database URL (对于大多数用户,默认即可) DATABASE_URL=sqlite+aiosqlite:///./recon.db # WebSocket heartbeat interval (秒) WS_HEARTBEAT=30 # Maximum concurrent connections MAX_CONNECTIONS=100 ``` ### 步骤 6:验证安装 ``` # 检查是否安装了所有工具 which subfinder which httpx which nuclei which nmap which katana # 检查 Python dependencies cd backend source venv/bin/activate pip list # 检查 Node.js dependencies cd ../frontend npm list ``` ## 🚀 使用 ### 启动应用程序 #### 终端 1:启动后端 ``` cd backend source venv/bin/activate # Activate virtual environment python main.py ``` 后端将在 `http://localhost:8000` 启动 #### 终端 2:启动前端 ``` cd frontend npm run dev ``` 前端将在 `http://localhost:5173` 启动 ### 运行您的第一次扫描 1. **打开浏览器**并访问 `http://localhost:5173` 2. 在输入框中**输入目标域名**(例如 `example.com`) 3. **点击 "Start Full Recon"** 开始扫描 4. **观察实时结果**显示在仪表盘中 5. 使用各种面板**探索结果**: - **Live Terminal** - 查看扫描进度 - **Subdomains** - 查看所有发现的子域名 - **Live Hosts** - 查看哪些子域名正在响应 - **Wayback URLs** - 来自存档的历史 URL - **Vulnerabilities** - Nuclei 的安全发现 - **Nmap Results** - 开放端口和服务 - **Katana** - 发现的端点 ### 理解结果 #### 严重程度级别 | 颜色 | 严重程度 | 描述 | |-------|----------|-------------| | 🔴 | Critical (严重) | 需要立即关注的严重漏洞 | | 🟠 | High (高危) | 应尽快修复的严重安全问题 | | 🟡 | Medium (中危) | 值得解决的中等安全问题 | | 🔵 | Low (低危) | 轻微的安全问题或最佳实践违规 | | 🟢 | Info (信息) | 信息性发现(技术检测、DNS 记录等) | #### 发现类型 | 类型 | 描述 | 示例 | |------|-------------|---------| | **技术检测** | 网站使用的技术 | Cloudflare, Nginx, WordPress | | **SSL/TLS** | SSL 证书信息 | TLS 版本、证书颁发者 | | **DNS 记录** | DNS 配置信息 | MX, NS, TXT, SPF, DMARC 记录 | | **Headers** | HTTP 安全标头 | 缺少的安全标头 | | **漏洞** | 实际的安全漏洞 | XSS, SQLi, SSRF 等 | ### 高级用法 #### 使用自定义字典 1. 通过 UI 上传您的字典 2. 从下拉菜单中选择它 3. 开始您的扫描 #### API 用法 ``` # 开始新扫描 curl -X POST http://localhost:8000/api/scan \ -H "Content-Type: application/json" \ -d '{"target": "example.com", "enable_nuclei": true}' # 获取扫描状态 curl http://localhost:8000/api/scan/{SCAN_ID} # 获取结果 curl http://localhost:8000/api/scan/{SCAN_ID}/results/vulnerability ``` ## 📸 截图 ### 仪表盘概览 ``` [INSERT SCREENSHOT OF MAIN DASHBOARD] Caption: Main dashboard showing all scan results in real-time ``` ### 实时终端 ``` [INSERT SCREENSHOT OF LIVE TERMINAL] Caption: Real-time terminal output showing scan progress ``` ### 漏洞结果 ``` [INSERT SCREENSHOT OF VULNERABILITIES PANEL] Caption: Vulnerability findings with severity filtering ``` ### Nmap 结果 ``` [INSERT SCREENSHOT OF NMAP PANEL] Caption: Port scan results with expandable details ``` ### Wayback URLs ``` [INSERT SCREENSHOT OF WAYBACK PANEL] Caption: Historical URLs from Wayback Machine archive ``` ## 🔌 API 端点 ### 扫描管理 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/scan` | 启动新的侦察扫描 | | `GET` | `/api/scan/{scan_id}` | 获取扫描状态和进度 | | `GET` | `/api/scan/latest` | 获取最近的扫描 | | `GET` | `/api/scans` | 获取所有扫描(最近 50 次) | ### 结果 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/scan/{scan_id}/results/{phase}` | 获取特定阶段的结果 | | `GET` | `/api/scan/{scan_id}/results/batch` | 获取带分页的批量结果 | ### 实用工具 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/upload/wordlist` | 上传自定义字典 | | `GET` | `/api/wordlists` | 列出可用的字典 | | `GET` | `/api/health` | 健康检查端点 | ### WebSocket ``` WS /ws/{scan_id} ``` 连接到 WebSocket 以在扫描期间获取实时更新。 ## ⚙️ 配置 ### 后端配置 编辑 `backend/config.py`: ``` class Config: CHAOS_API_KEY = "your_api_key" # Chaos API for subdomain enumeration DATABASE_URL = "sqlite+aiosqlite:///./recon.db" WS_HEARTBEAT = 30 # WebSocket heartbeat interval MAX_CONNECTIONS = 100 # Maximum concurrent connections MAX_RESULTS_PER_PHASE = 100000 # Maximum results per phase BATCH_LIMIT = 50000 # Batch limit for API responses ``` ### 扫描配置 在 `backend/recon_engine.py` 中修改扫描行为: ``` # Concurrent scan limits self.max_concurrent_nmap = 3 self.max_concurrent_nuclei = 5 self.max_concurrent_wayback = 10 ``` ### 前端配置 编辑 `frontend/vite.config.js` 进行代理设置: ``` server: { port: 5173, proxy: { '/api': 'http://localhost:8000', '/ws': { target: 'ws://localhost:8000', ws: true } } } ``` ## 🐛 故障排除 ### 常见问题 #### 问题:"Nuclei command not found" ``` # 解决方案:安装 Nuclei go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest # 验证安装 which nuclei # 更新 templates nuclei -ut ``` #### 问题:"WebSocket connection failed" ``` # 解决方案:检查 backend 是否正在运行 curl http://localhost:8000/api/health # 重启 backend cd backend source venv/bin/activate python main.py ``` #### 问题:"扫描后没有显示结果" ``` # 解决方案:检查 database cd backend sqlite3 recon.db "SELECT COUNT(*) FROM results WHERE phase='vulnerability';" # 检查 backend logs 是否有错误 # 在终端中查找错误信息 ``` #### 问题:"扫描卡在 0%" ``` # 解决方案:检查是否安装了安全工具 which subfinder which httpx which nuclei # 如果缺失则重新安装工具 go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest ``` #### 问题:"前端未加载" ``` # 解决方案:清除 cache 并重启 cd frontend rm -rf node_modules npm install npm run dev ``` ### 调试模式 在后端启用调试日志记录: ``` # 添加到 recon_engine.py import logging logging.basicConfig(level=logging.DEBUG) ``` ## 🤝 贡献 我们欢迎各种贡献!以下是您可以提供帮助的方式: ### 如何贡献 1. **Fork 本仓库** 2. **创建功能分支** (`git checkout -b feature/amazing-feature`) 3. **提交您的更改** (`git commit -m 'Add amazing feature'`) 4. **推送到分支** (`git push origin feature/amazing-feature`) 5. **打开一个 Pull Request** ### 代码风格 - Python 代码遵循 PEP 8 规范 - JavaScript/React 代码使用 ESLint - 编写有意义的提交信息 - 为复杂的逻辑添加注释 ### 报告问题 - 使用 GitHub issue 跟踪器 - 提供详细的复现步骤 - 包含错误消息和日志 - 说明您的环境(操作系统、Python 版本等) ## 📄 许可证 本项目根据 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。 ### 这意味着 - ✅ 您可以将此项目用于个人和商业目的 - ✅ 您可以修改和分发代码 - ✅ 您必须包含原始许可证 - ❌ 不提供任何保证 - ❌ 作者不对损害承担责任 ## 🙏 致谢 本项目使用了以下出色的开源工具: - **[Subfinder](https://github.com/projectdiscovery/subfinder)** - 子域名枚举 - **[HTTPX](https://github.com/projectdiscovery/httpx)** - HTTP 探测 - **[Nuclei](https://github.com/projectdiscovery/nuclei)** - 漏洞扫描 - **[Nmap](https://nmap.org/)** - 端口扫描 - **[Katana](https://github.com/projectdiscovery/katana)** - Web 爬取 - **[Wayback Machine](https://archive.org/web/)** - 历史 URL 存档 - **[FastAPI](https://fastapi.tiangolo.com/)** - 后端框架 - **[React](https://react.dev/)** - 前端框架 ## 📞 支持 - **问题反馈**: [GitHub Issues](https://github.com/YOUR_USERNAME/recon-dashboard/issues) - **讨论**: [GitHub](https://github.com/YOUR_USERNAME/recon-dashboard/discussions) - **电子邮件**: your.email@example.com ## 🎯 路线图 ### 版本 3.5(即将推出) - [ ] PDF 报告生成 - [ ] 电子邮件通知 - [ ] 计划扫描 - [ ] 多目标扫描 - [ ] 导出为 CSV/JSON ### 版本 4.0(未来) - [ ] Docker 支持 - [ ] Kubernetes 部署 - [ ] 多用户支持 - [ ] API 认证 - [ ] 云集成
**用 ❤️ 为安全社区打造** [⬆ 回到顶部](#-recon-dashboard-v34)
标签:AV绕过, CTI, FastAPI, GitHub, Google, HTTP探测, Nmap, Nuclei, Python, React, SQLite, Syscalls, Wayback机器, WebSocket, Web安全, 依赖分析, 侦查仪表盘, 子域名枚举, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 系统安全, 系统独立性, 网络安全, 蓝队分析, 虚拟驱动器, 计算机取证, 逆向工具, 隐私保护