Nikhil-ode/NetworkSecurityScanner

GitHub: Nikhil-ode/NetworkSecurityScanner

基于 Django 和 React 构建的综合型网页版网络扫描与漏洞检测平台,提供从端口探测到安全报告生成的全流程安全评估能力。

Stars: 0 | Forks: 0

# 🔒 网络安全扫描器 一个基于 **Django**(后端)和 **React**(前端)构建的综合网页版网络安全扫描与漏洞检测系统。它可以执行端口扫描、服务指纹识别、漏洞评估,并生成详细的安全报告。 ## 功能 - **端口扫描** — 通过基于 socket 的 TCP 扫描,识别目标系统上的开放端口和运行中的服务 - **漏洞检测** — 检测高风险端口、数据库暴露、邮件服务泄露以及 Web 服务弱点 - **详细报告** — 生成 PDF、HTML 和 JSON 格式的全面安全报告 - **实时监控** — 实时跟踪扫描进度并查看结果 - **用户身份验证** — 采用 JWT 身份验证的安全登录和注册(支持 Supabase 集成) - **扫描历史** — 查看、筛选和管理过去的扫描结果 - **Docker 支持** — 结合 PostgreSQL、Redis、Celery 和 Celery Beat 的全容器化部署 ## 技术栈 ### 后端 | 技术 | 用途 | | ---------- | ------- | | **Django** | Web 框架 & ORM | | **Django REST Framework** | RESTful API 开发 | | **Celery + Redis** | 异步任务处理 & 消息中介 | | **Simple JWT** | 基于 token 的身份验证 | | **Supabase PostgreSQL** | 云数据库(通过 Supavisor pooler) | | **Daphne** | 用于生产环境的 ASGI 服务器 | ### 前端 | 技术 | 用途 | | ---------- | ------- | | **React** | 用户界面库 | | **React Router** | 客户端路由 | | **Axios** | 用于 API 调用的 HTTP 客户端 | | **Modern CSS** | 渐变主题、动画、响应式设计 | ### 基础设施 | 技术 | 用途 | | ---------- | ------- | | **Docker & Docker Compose** | 容器化部署 | | **PostgreSQL** | 关系型数据库 | | **Redis** | 缓存 & 消息中间件 | ## 项目结构 ``` NetworkSecurity Scanner/ ├── apps/ # Django application modules │ ├── reports/ # Report generation logic │ ├── scans/ # Scan operations & management │ ├── users/ # User authentication & management │ └── vulnerabilities/ # Vulnerability tracking & detection ├── config/ # Django project configuration │ ├── settings.py # Settings (DB, auth, CORS, etc.) │ ├── urls.py # Root URL configuration │ ├── asgi.py / wsgi.py # ASGI & WSGI entry points │ └── celery.py # Celery task queue config ├── services/ # Core scanning & detection services │ ├── scanner.py # Socket-based TCP port scanner │ └── vulnerability_detector.py # Vulnerability identification ├── NetworkSecurityScanner/ # Frontend + alternative backend │ ├── frontend/ # React application (src/, public/) │ ├── backend/ # Standalone Django backend with Dockerfile │ └── docs/ # Extended documentation ├── logs/ # Application log files ├── staticfiles/ # Collected static assets ├── manage.py # Django management script ├── run_https.py # HTTPS development server launcher ├── requirements_backup.txt # Python dependencies ├── start_project.bat # Windows setup script └── .env # Environment variables (credentials) ``` ## 快速开始 ### 前置条件 - Python 3.14+ - Node.js 24+ - npm - Supabase 账号(用于云数据库) - PostgreSQL 客户端 (psql) — 可选,用于迁移 ### Supabase 设置 1. 在 [supabase.com](https://supabase.com) 创建一个 Supabase 项目 2. 进入 **Project Settings** > **Database** 3. 复制您的凭证: - **Project ID**(来自 URL 或数据库设置) - **Database Password** - **Connection Pooler** (Supavisor) 连接字符串 4. 在项目根目录中配置 `.env`: ``` DEBUG=True SECRET_KEY=your-secret-key-here ALLOWED_HOSTS=localhost,127.0.0.1 CORS_ALLOWED_ORIGINS=http://localhost:3000 # 通过 Supavisor Connection Pooler 连接 Supabase PostgreSQL USE_SQLITE=False DB_NAME=postgres DB_USER=postgres. DB_PASSWORD= DB_HOST=aws-1-ap-northeast-1.pooler.supabase.com DB_PORT=5432 CELERY_BROKER_URL=redis://localhost:6379/0 CELERY_RESULT_BACKEND=redis://localhost:6379/0 ``` 5. 运行数据库迁移: ``` # 选项 1:使用 Django management command python manage.py migrate # 选项 2:使用 Supabase SQL Editor # 在 Supabase SQL Editor 中运行来自 apps/*/migrations/ 的 SQL migration 文件 ``` ### 后端设置 ``` # 1. 激活虚拟环境 venv\Scripts\activate # 2. 安装依赖项 pip install -r requirements_backup.txt # 3. 启动 backend server (HTTPS) python run_https.py ``` 后端将在 **`https://localhost:8443`** 提供 ### 前端设置 ``` # 1. 导航到 frontend 目录 cd NetworkSecurityScanner/frontend # 2. 安装依赖项 npm install # 3. 启动 development server (HTTPS) npm start ``` 前端将在 **`https://localhost:3000`** 提供 ## API Endpoint ### 身份验证 | 方法 | Endpoint | 描述 | |---|---|---| | `POST` | `/api/auth/login/` | 用户登录 | | `POST` | `/api/auth/register/` | 用户注册 | | `GET` | `/api/auth/users/me/` | 获取当前用户 | | `POST` | `/api/auth/jwt/create/` | 创建 JWT token | | `POST` | `/api/auth/jwt/refresh/` | 刷新 JWT token | | `POST` | `/api/auth/jwt/verify/` | 验证 JWT token | ### 扫描 | 方法 | Endpoint | 描述 | |---|---|---| | `GET` | `/api/scans/` | 列出所有扫描 | | `POST` | `/api/scans/` | 创建新扫描 | | `GET` | `/api/scans/{id}/` | 获取扫描详情 | | `GET` | `/api/scans/{id}/results/` | 获取扫描结果 | | `GET` | `/api/scans/?status=pending&target=8.8.8.8` | 筛选扫描 | ### 报告 | 方法 | Endpoint | 描述 | |---|---|---| | `GET` | `/api/reports/` | 列出所有报告 | | `GET` | `/api/reports/{id}/` | 获取报告详情 | | `GET` | `/api/reports/{id}/download/?format=pdf` | 下载报告 (pdf/html/json) | | `POST` | `/api/reports/generate/` | 从扫描生成新报告 | ## 扫描服务 ### 端口扫描器 (services/scanner.py) - 基于 socket 的 TCP 端口扫描 — 快速且可靠 - 常见端口检测 — 21, 22, 23, 25, 53, 80, 110, 143, 443, 445, 993, 995, 3306, 3389, 5432, 5900, 8080, 8443 - 通过 TTL 启发式方法进行操作系统检测 - 通过 banner grabbing 进行服务识别 ### 漏洞检测器 (services/vulnerability_detector.py) - 高风险端口检测 - 数据库暴露检查 - 邮件服务检测 - Web 服务漏洞扫描 - 安全弱点识别 ## Docker 部署 使用 Docker Compose 运行整个应用程序技术栈: ``` docker-compose up ``` 这将启动: - 运行在端口 8000 的 Django 后端 - 运行在端口 3000 的 React 前端 - PostgreSQL 数据库 - Redis 缓存 & 消息中间件 - 用于异步任务的 Celery Worker - 用于定时任务的 Celery Beat ## 测试应用程序 ### 测试凭证 | 用户名 | 密码 | |---|---| | nikhilrajput | nikhil123 | | testuser | test123 | 或通过 `POST /api/auth/register/` 注册新用户。 ### 快速 API 测试 (cURL) ``` curl -k -X POST https://localhost:8443/auth/jwt/create/ \ -H "Content-Type: application/json" \ -d '{"username":"nikhilrajput","password":"nikhil123"}' ``` 注意:对于 localhost 自签名证书,需禁用 SSL 验证。 ## 故障排除 ### 数据库连接问题 - 确保 .env 中的 Supabase 凭证正确 - 验证是否设置了 USE_SQLITE=False - 检查 Supabase 项目是否处于活跃状态(未暂停) - 测试连接:`psql -h aws-1-ap-northeast-1.pooler.supabase.com -U postgres. -d postgres -p 5432` ### 身份验证问题 - 验证 .env 中的 SUPABASE_URL 和 API 密钥 - 检查是否启用了 Supabase Auth - 确保配置了行级安全 (RLS) 策略 ### 端口已被占用 ``` taskkill /F /IM python.exe ``` ### 前端未加载 ``` npm cache clean --force rm -rf node_modules npm install ``` ### HTTPS 证书警告(自签名证书) 本项目使用自签名证书进行 HTTPS 开发。浏览器将显示警告: 这对于开发是安全的。要继续: - 在桌面端:点击“高级” -> 继续前往 localhost(不安全) - 在移动端:点击“高级” -> 继续前往网站(不安全) 若要永久避免此问题(可选):使用 mkcert 生成受信任的 CA 证书。 ## 安全声明 此工具仅供授权的安全测试使用。用户有责任确保其已获得扫描目标系统的明确许可。未经授权的扫描可能违反当地法律法规。 ## 许可证 MIT License ## 作者 由 Nikhil Rajput 开发
标签:Django, Docker, PostgreSQL, React, Syscalls, 安全防御评估, 插件系统, 搜索引擎查询, 数据统计, 端口扫描, 网络安全扫描器, 请求拦截, 逆向工具