tushargurav28/Recon_Automation_Dashboard
GitHub: tushargurav28/Recon_Automation_Dashboard
基于 FastAPI 与 React 的实时 Web 安全侦察仪表盘,将多款行业工具的扫描结果聚合到统一界面中。
Stars: 1 | Forks: 0
# Recon Automation Dashboard v0.1
Nuclei 扫描
Nmap 扫描
Wayback URL
主机详情
### 仪表盘概览
```
[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 URL
```
[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` 中的扫描行为:
```
# 并发扫描限制
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
# 更新模板
nuclei -ut
```
#### 问题:"WebSocket connection failed"
```
# 解决方案:检查 backend 是否正在运行
curl http://localhost:8000/api/health
# 重启 backend
cd backend
source venv/bin/activate
python main.py
```
#### 问题:"Scan stuck at 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
```
#### 问题:"Frontend not loading"
```
# 解决方案:清除缓存并重启
cd frontend
rm -rf node_modules
npm install
npm run dev
```
### Debug 模式
在后端启用 debug 日志:
```
# 添加到 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 追踪器
- 提供详细的重现步骤
- 包含错误消息和日志
- 注明您的环境(操作系统、 版本等)
## 📄 许可证
本项目采用 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/tushargurav28/Recon_Automation_Dashboard/issues)
- **讨论**: [GitHub Discussions](https://github.com/tushargurav28/Recon_Automation_Dashboard/discussions)
- **邮箱**: guravtushar231@gmail.com
## 🎯 路线图
### 版本 0.0.5(即将推出)
- [ ] PDF 报告生成
- [ ] 邮件通知
- [ ] 定时扫描
- [ ] 多目标扫描
- [ ] 导出为 CSV/JSON
### 版本 0.1.0(未来)
- [ ] Docker 支持
- [ ] Kubernetes 部署
- [ ] 多用户支持
- [ ] API 认证
- [ ] 云集成





**一个现代化、实时的 Web 应用安全侦察仪表盘**
[功能特性](#-features) • [安装](#-installation) • [使用](#-usage) • [截图](#-screenshots) • [架构](#-architecture)
## 📖 目录
- [什么是 Recon Dashboard?](#-what-is-recon-dashboard)
- [功能特性](#-features)
- [谁应该使用它?](#-who-should-use-this)
- [架构](#-architecture)
- [安装](#-installation)
- [使用说明](#-usage)
- [截图](#-screenshots)
- [API 端点](#-api-endpoints)
- [配置](#-configuration)
- [故障排除](#-troubleshooting)
- [贡献](#-contributing)
- [许可证](#-license)
## 🤔 什么是 Recon Dashboard?
**Recon Dashboard** 是一个功能强大且用户友好的 Web 应用程序,可自动对网站和域名进行安全侦察。可以把它想象成一个 **安全扫描器,用于检查网站的潜在漏洞、暴露的信息和安全配置错误** —— 所有操作都在一个美观且易于使用的界面中完成。
### 🔍 它能做什么?
假设你想检查一个网站是否安全。Recon Dashboard 会自动:
1. **查找所有子域名**(如 `mail.example.com`、`admin.example.com` 等)
2. **检查哪些子域名存活**并正常响应
3. **搜索历史档案馆**查找旧的 URL 和页面
4. **扫描安全漏洞**(使用行业标准工具)
5. **检查服务器上的开放端口**
6. **发现隐藏的端点**和 JavaScript 文件
7. **在漂亮的仪表盘上实时显示**所有信息
### 🎯 适用于:
- ✅ **安全研究人员** —— 自动化您的侦察工作流程
- ✅ **网站所有者** —— 检查您自己网站的安全问题
- ✅ **开发人员** —— 学习安全扫描和侦察知识
- ✅ **学生** —— 理解 Web 应用安全概念
- ✅ **Bug Bounty 猎人** —— 加快初始侦察阶段的速度
- ✅ **IT 专业人士** —— 监控和审计组织的 Web 资产
## ✨ 功能特性
### 🔎 核心扫描功能
| 功能 | 描述 | 所用工具 |
|---------|-------------|------------|
| **子域名枚举** | 查找目标域名的所有子域名 | Subfinder, Assetfinder, Findomain, Chaos |
| **HTTP 探测** | 检查哪些子域名存活并响应 | HTTPX |
| **Wayback URL 收集** | 搜索历史档案馆中的旧 URL | Wayback Machine API |
| **漏洞扫描** | 扫描安全漏洞和配置错误 | Nuclei |
| **端口扫描** | 检查服务器上的开放端口和服务 | Nmap |
| **Web 爬取** | 发现隐藏的端点和页面 | Katana |
| **JavaScript 分析** | 在 JavaScript 文件中查找机密信息和端点 | 自定义扫描器 |
### 🎨 用户界面功能
| 功能 | 描述 |
|---------|-------------|
| **实时更新** | 通过 WebSocket 实时查看结果 |
| **实时终端** | 实时观看扫描进度 |
| **交互式表格** | 对结果进行排序、过滤和搜索 |
| **详情弹窗** | 点击任何结果查看完整详情 |
| **严重级别筛选** | 按严重级别过滤漏洞 |
| **导出结果** | 轻松将结果复制到剪贴板 |
| **深色主题** | 适合长时间扫描,保护眼睛 |
| **响应式设计** | 支持桌面和移动设备 |
### 🚀 技术特性
| 功能 | 描述 |
|---------|-------------|
| **异步处理** | 使用 asyncio 实现快速、非阻塞扫描 |
| **数据库存储** | 所有结果保存到 SQLite 数据库 |
| **WebSocket 支持** | 后端和前端之间的实时通信 |
| **REST API** | 完整的 API 支持程序化访问 |
| **错误处理** | 全面的错误处理和日志记录 |
| **速率限制** | 内置速率限制,避免压垮目标 |
| **模板更新** | 扫描前自动更新 Nuclei 模板 |
## 👥 谁应该使用它?
### ✅ 推荐给:
- **安全专业人士** —— 自动化侦察工作流程
- **网站所有者** —— 审计自己网站的安全问题
- **开发人员** —— 学习安全扫描概念
- **学生** —— 理解 Web 安全的教育工具
- **IT 团队** —— 监控组织的 Web 资产
### ❌ 不推荐给:
- 未经许可扫描网站
- 非法活动或未经授权的访问
- 未经适当测试的生产环境
- 不熟悉安全概念的用户
## 🏗 架构
### 系统流程图
```
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
└──────────────┘
```
## 📦 安装
### 前置条件
在安装 Recon Dashboard 之前,请确保您具备:
- 已安装 **Python 3.13+**
- 已安装 **Node.js 18+** 和 npm
- 用于克隆仓库的 **Git**
- **安全工具**(将自动安装或手动安装)
### 第 1 步:克隆仓库
```
# 克隆仓库
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 模板
nuclei -ut
```
### 第 3 步:安装后端依赖
```
# 导航到 backend 目录
cd backend
# 创建虚拟环境
python3.13 -m venv venv
# 激活虚拟环境
# macOS/Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# 安装 Python 依赖
pip install -r requirements.txt
# 创建环境文件
cp .env.example .env
# 编辑 .env 并添加你的 API 密钥(可选)
nano .env
```
### 第 4 步:安装前端依赖
```
# 导航到 frontend 目录
cd ../frontend
# 安装 npm 依赖
npm install
```
### 第 5 步:配置环境
在 `backend` 目录下创建一个 `.env` 文件:
```
# backend/.env
# Chaos API 密钥(可选 - 用于额外的子域来源)
CHAOS_API_KEY=your_chaos_api_key_here
# 数据库 URL(大多数用户使用默认值即可)
DATABASE_URL=sqlite+aiosqlite:///./recon.db
# WebSocket 心跳间隔(秒)
WS_HEARTBEAT=30
# 最大并发连接数
MAX_CONNECTIONS=100
```
### 第 6 步:验证安装
```
# 检查是否安装了所有工具
which subfinder
which httpx
which nuclei
which nmap
which katana
# 检查 Python 依赖
cd backend
source venv/bin/activate
pip list
# 检查 Node.js 依赖
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. 使用各种面板**探索结果**:
- **实时终端** —— 查看扫描进度
- **子域名** —— 查看所有发现的子域名
- **存活主机** —— 查看哪些子域名有响应
- **Wayback URL** —— 来自档案馆的历史 URL
- **漏洞** —— Nuclei 的安全发现
- **Nmap 结果** —— 开放端口和服务
- **Katana** —— 发现的端点
### 理解结果
#### 严重级别
| 颜色 | 严重性 | 描述 |
|-------|----------|-------------|
| 🔴 | Critical (严重) | 需要立即关注的严重漏洞 |
| 🟠 | High (高危) | 应尽快修复的严重安全问题 |
| 🟡 | Medium (中危) | 值得解决的中等安全问题 |
| 🔵 | Low (低危) | 轻微的安全问题或最佳实践违规 |
| 🟢 | Info (信息) | 信息性发现(技术检测、DNS 记录等) |
#### 发现类型
| 类型 | 描述 | 示例 |
|------|-------------|---------|
| **技术检测** | 网站使用的技术 | Cloudflare, Nginx, WordPress |
| **SSL/TLS** | SSL 证书信息 | TLS 版本、证书颁发者 |
| **DNS 记录** | DNS 配置信息 | MX, NS, TXT, SPF, DMARC 记录 |
| **响应头** | 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
```
## 📸 截图
### 图片
仪表盘
Nuclei 扫描
Nmap 扫描
Wayback URL
主机详情
### 仪表盘概览
```
[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 URL
```
[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` 中的扫描行为:
```
# 并发扫描限制
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
# 更新模板
nuclei -ut
```
#### 问题:"WebSocket connection failed"
```
# 解决方案:检查 backend 是否正在运行
curl http://localhost:8000/api/health
# 重启 backend
cd backend
source venv/bin/activate
python main.py
```
#### 问题:"Scan stuck at 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
```
#### 问题:"Frontend not loading"
```
# 解决方案:清除缓存并重启
cd frontend
rm -rf node_modules
npm install
npm run dev
```
### Debug 模式
在后端启用 debug 日志:
```
# 添加到 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 追踪器
- 提供详细的重现步骤
- 包含错误消息和日志
- 注明您的环境(操作系统、 版本等)
## 📄 许可证
本项目采用 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/tushargurav28/Recon_Automation_Dashboard/issues)
- **讨论**: [GitHub Discussions](https://github.com/tushargurav28/Recon_Automation_Dashboard/discussions)
- **邮箱**: guravtushar231@gmail.com
## 🎯 路线图
### 版本 0.0.5(即将推出)
- [ ] PDF 报告生成
- [ ] 邮件通知
- [ ] 定时扫描
- [ ] 多目标扫描
- [ ] 导出为 CSV/JSON
### 版本 0.1.0(未来)
- [ ] Docker 支持
- [ ] Kubernetes 部署
- [ ] 多用户支持
- [ ] API 认证
- [ ] 云集成
**为安全社区用心 ❤️ 打造**
[⬆ 回到顶部](#-recon-dashboard-v34)
标签:AV绕过, CTI, FastAPI, Google, Nmap, Nuclei, Python, React, SQLite, Syscalls, TGT, Wayback URLs, WebSocket, 依赖分析, 子域名枚举, 安全仪表盘, 安全侦察, 密码管理, 插件系统, 攻防演练, 数据统计, 无后门, 端口扫描, 系统安全, 系统独立性, 网络安全, 虚拟驱动器, 逆向工具, 隐私保护