harsh2003jadhav-art/Automated-Vulnerability-Scanner

GitHub: harsh2003jadhav-art/Automated-Vulnerability-Scanner

一个集成网络扫描、Web应用安全测试和CVE情报的自动化漏洞扫描Web平台,用于安全评估和漏洞管理。

Stars: 0 | Forks: 0

# 自动化漏洞扫描器 一个用于自动化安全漏洞扫描和评估的综合Web平台。该工具结合了网络扫描、Web应用安全测试和CVE情报,提供详细的安全洞察。 ![Platform](https://img.shields.io/badge/Platform-Web-blue) ![Python](https://img.shields.io/badge/Python-3.8+-green) ![React](https://img.shields.io/badge/React-18.2-blue) ![License](https://img.shields.io/badge/License-Educational-orange) ## ⚠️ 重要法律声明 **本工具仅用于授权的安全测试和教育目的。** - 仅扫描您拥有或已获得明确书面授权进行测试的系统 - 未经授权的扫描在您所在司法管辖区可能属于违法行为 - 请负责任且合乎道德地使用 - 作者不对误用或损害承担责任 ## 🚀 功能 ### 🔍 扫描能力 - **网络扫描** - 端口扫描和服务检测 - 操作系统指纹识别 - 横幅抓取以识别版本 - 常见漏洞检测 - **Web应用扫描** - SQL注入检测 - 跨站脚本(XSS)测试 - 安全头部验证 - SSL/TLS配置检查 - Web爬虫以实现全面覆盖 - **漏洞情报** - CVE/NVD数据库集成 - CVSS评分 - 严重程度分类(严重、高、中、低) - 修复建议 ### 🤖 自动化功能 - 计划扫描(每日、每周、每月) - 持续监控 - 实时进度跟踪 - 自动报告生成 ### 📊 报告与分析 - 带统计信息的交互式仪表板 - PDF报告生成 - 用于集成的JSON导出 - 严重程度分布可视化 - 趋势分析 - 漏洞管理 ### 🔐 安全与访问控制 - 用户认证(基于JWT) - 基于角色的访问控制(RBAC) - 审计日志 - 安全的密码哈希 ## 🛠️ 技术栈 ### 后端 - **Python 3.8+** - 核心编程语言 - **Flask** - Web框架 - **SQLAlchemy** - 数据库管理的ORM - **SQLite** - 数据库(可升级到PostgreSQL) - **Flask-JWT-Extended** - 认证 - **python-nmap** - 网络扫描 - **BeautifulSoup4** - Web抓取 - **ReportLab** - PDF生成 ### 前端 - **React 18.2** - UI框架 - **React Router** - 导航 - **Axios** - HTTP客户端 - **Tailwind CSS** - 样式 - **Chart.js** - 数据可视化 ## 📦 安装 ### 前置条件 - Python 3.8或更高版本 - Node.js 14或更高版本 - npm或yarn包管理器 - Git(可选) ### 后端设置 1. **导航到项目目录:** ``` cd "C:\Users\ABC\OneDrive\Documents\Data Analytics-1\CS Project\112" ``` 2. **创建虚拟环境:** ``` python -m venv venv ``` 3. **激活虚拟环境:** Windows: ``` source venv/Scripts/activate ``` Linux/Mac: ``` source venv/bin/activate ``` 4. **安装Python依赖:** ``` pip install -r requirements.txt ``` 5. **启动后端服务器:** ``` cd backend python app.py ``` 后端API将在 `http://localhost:5000` 启动 ### 前端设置 1. **打开新终端并导航到前端目录:** ``` cd frontend ``` 2. **安装Node.js依赖:** ``` npm install ``` 3. **启动开发服务器:** ``` npm start ``` 前端将在 `http://localhost:3000` 启动 ## 🎯 使用方法 ### 首次设置 1. **访问应用**:`http://localhost:3000` 2. **使用默认凭据登录:** - 用户名:`admin` - 密码:`admin123` 3. **更改默认密码**(生产环境建议) ### 启动扫描 1. 点击仪表板或扫描页面上的**"新建扫描"**按钮 2. 输入目标: - 网络扫描输入IP地址(例如 `192.168.1.1`) - Web应用扫描输入URL(例如 `https://example.com`) 3. 选择扫描类型: - **网络扫描** - 端口和服务检测 - **Web应用扫描** - 安全漏洞测试 - **完整扫描** - 综合扫描(网络+Web) 4. 点击**"开始扫描"** ### 监控扫描 - 在扫描详情页面查看实时进度 - 扫描每5-10秒自动刷新 - 扫描完成时接收通知 ### 查看结果 1. 导航到扫描详情页面 2. 按严重程度查看漏洞摘要 3. 查看详细发现,包括: - 严重程度级别 - CVSS评分 - 受影响的组件 - 修复建议 4. 下载PDF报告以供记录 ### 管理漏洞 1. 转到**漏洞**页面 2. 按严重程度或状态筛选 3. 更新状态: - **待处理** - 新发现 - **处理中** - 正在修复 - **已解决** - 已修复 - **误报** - 非真实漏洞 ## 📁 项目结构 ``` 112/ ├── backend/ │ ├── app.py # Main Flask application │ ├── models/ │ │ ├── user.py # User model │ │ └── scan.py # Scan & Vulnerability models │ ├── routes/ │ │ ├── auth.py # Authentication endpoints │ │ ├── scans.py # Scan management │ │ ├── vulnerabilities.py # Vulnerability management │ │ ├── dashboard.py # Dashboard statistics │ │ └── reports.py # Report generation │ ├── scanners/ │ │ ├── network_scanner.py # Network scanning logic │ │ ├── web_scanner.py # Web security testing │ │ └── cve_integration.py # CVE database integration │ └── utils/ # Helper utilities ├── frontend/ │ ├── public/ │ │ └── index.html # HTML template │ └── src/ │ ├── App.js # Main React component │ ├── components/ │ │ ├── Navbar.js # Navigation bar │ │ └── ProtectedRoute.js # Route protection │ ├── pages/ │ │ ├── Login.js # Login page │ │ ├── Dashboard.js # Dashboard │ │ ├── Scans.js # Scans list │ │ ├── ScanDetails.js # Scan details │ │ ├── NewScan.js # Create scan │ │ └── Vulnerabilities.js # Vulnerabilities │ └── services/ │ └── api.js # API client ├── requirements.txt # Python dependencies ├── package.json # Node.js dependencies └── README.md # This file ``` ## 🔑 API端点 ### 认证 - `POST /api/auth/register` - 注册新用户 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/me` - 获取当前用户 ### 扫描 - `POST /api/scans/` - 创建新扫描 - `GET /api/scans/` - 列出所有扫描 - `GET /api/scans/` - 获取扫描详情 - `DELETE /api/scans/` - 删除扫描 ### 漏洞 - `GET /api/vulnerabilities/` - 列出漏洞 - `GET /api/vulnerabilities/` - 获取漏洞详情 - `PATCH /api/vulnerabilities/` - 更新漏洞状态 - `GET /api/vulnerabilities/stats` - 获取统计信息 ### 仪表板 - `GET /api/dashboard/stats` - 获取仪表板统计信息 - `GET /api/dashboard/recent-scans` - 获取最近扫描 - `GET /api/dashboard/recent-vulnerabilities` - 获取最近漏洞 - `GET /api/dashboard/trends` - 获取漏洞趋势 ### 报告 - `GET /api/reports/scan//pdf` - 下载PDF报告 - `GET /api/reports/scan//json` - 获取JSON报告 ## 🔧 配置 ### 环境变量 在后端目录创建 `.env` 文件: ``` SECRET_KEY=your-secret-key-here JWT_SECRET_KEY=your-jwt-secret-key-here SQLALCHEMY_DATABASE_URI=sqlite:///vulnerability_scanner.db ``` ### 前端配置 在前端目录创建 `.env` 文件: ``` REACT_APP_API_URL=http://localhost:5000/api ``` ## 🧪 测试 ### 手动测试 1. 启动后端和前端服务器 2. 使用默认凭据登录 3. 创建针对本地IP或测试网站的测试扫描 4. 监控扫描进度 5. 查看结果并生成报告 ### 安全测试最佳实践 - 使用测试环境或隔离网络 - 未经授权切勿扫描生产系统 - 记录所有扫描活动 - 及时审查并采取行动 ## 🚀 部署 ### 后端部署 1. 设置生产WSGI服务器(推荐使用Gunicorn) 2. 配置反向代理(Nginx/Apache) 3. 使用PostgreSQL而非SQLite 4. 设置强SECRET_KEY和JWT_SECRET_KEY 5. 启用HTTPS ### 前端部署 1. 构建生产包: ``` npm run build ``` 2. 使用Web服务器提供构建文件夹 3. 将API URL更新为生产后端 ## 📝 未来增强 - 容器扫描(Docker、Kubernetes) - 基础设施即代码扫描 - 云配置错误检测 - SIEM工具集成 - 实时警报(Slack、邮件) - 攻击路径映射 - 漏洞利用验证 - API扫描(REST/GraphQL) - 移动应用扫描 - 合规报告(CIS基准) ## 🤝 贡献 这是一个教育项目。欢迎为学习目的做出贡献! 1. Fork仓库 2. 创建功能分支 3. 提交您的更改 4. 推送到分支 5. 创建Pull Request ## 📄 许可证 本项目仅用于教育目的。使用风险自负。 ## 贡献者 作为计算机科学项目开发,用于安全教育和培训。 ## 📞 支持 如有问题、疑问或建议: - 在仓库中创建issue - 联系项目维护者 ## ⚠️ 免责声明 本工具按原样提供,仅用于教育和授权的安全测试目的。不对本软件误用或造成的损害承担任何责任。用户有责任确保在进行任何安全扫描之前已获得适当授权。 **请记住:能力越大,责任越大。请合乎道德且合法地使用本工具!** 🛡️
标签:CodeQL, CVE, CVSS评分, DOE合作, GPT, JWT认证, NVD集成, OS指纹识别, RBAC, React安全, SQL注入检测, SSL/TLS检测, XSS, XSS测试, 云存储安全, 代码生成, 威胁情报, 安全报告生成, 安全评估工具, 实时处理, 密码管理, 开发者工具, 持续监控, 插件系统, 数字签名, 数据统计, 渗透测试工具, 漏洞情报, 漏洞管理, 端口扫描, 网络安全, 网络扫描, 逆向工具, 隐私保护