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, 安全防御评估, 插件系统, 搜索引擎查询, 数据统计, 端口扫描, 网络安全扫描器, 请求拦截, 逆向工具