faris7assan/Auto-Vulnerability-Scanner-

GitHub: faris7assan/Auto-Vulnerability-Scanner-

一款将主机发现、端口扫描、CVE 匹配与风险评分整合为自动化 pipeline 的 Python 网络漏洞扫描器,可输出多种格式报告并提供 Web 界面浏览历史结果。

Stars: 1 | Forks: 0

# 🛡️ AVS — AutoVuln Scanner **自动化漏洞评估工具** 毕业设计 · 网络安全工程 · 埃及未来大学 ## 概述 AVS 是一个基于 Python 的模块化漏洞扫描器,可自动化整个评估 pipeline: ``` Target → Host Discovery → Port Scan → Service Detection → CVE Matching → Risk Scoring → Report ``` ## 功能 | 功能 | 详情 | |----------------------|----------------------------------------------| | 主机发现 | 跨子网的 Ping 扫描(支持 CIDR) | | 端口扫描 | 通过 nmap 进行 TCP SYN + 版本检测 | | 操作系统指纹识别 | 通过 nmap `-O` 进行操作系统最佳猜测 | | 服务检测 | Apache、SSH、FTP、MySQL 等 | | 版本检测 | 例如 Apache 2.4.49、OpenSSH 7.4 | | CVE 匹配 | 实时查询 NVD API | | CVSS 评分 | v3.1 → v3.0 → v2 降级回退 | | 风险标签 | CRITICAL / HIGH / MEDIUM / LOW / NONE | | 建议 | 按严重程度划分的可操作建议 | | HTML 报告 | 专业的颜色编码报告 | | JSON 报告 | 机器可读的完整数据导出 | | CSV 报告 | 适配电子表格的发现结果 | | Flask Dashboard | 用于浏览历史报告的 Web UI | | 多线程 | 并行扫描以提升速度 | ## 安装 ``` # 1. 安装系统依赖 sudo apt install nmap # 2. Clone / 放置此项目 cd avs/ # 3. 安装 Python 依赖 pip install -r requirements.txt ``` ## 使用说明 ### 基础扫描 ``` python scanner.py --target 192.168.1.0/24 ``` ### 完整选项 ``` python scanner.py \ --target 192.168.1.0/24 \ --ports standard \ # fast | standard | full | top --threads 10 \ # parallel scan threads --udp \ # include UDP (requires root) --format all \ # html | json | csv | all --output /tmp/reports/ # report output directory ``` ### 跳过 CVE 查找(离线 / 快速模式) ``` python scanner.py --target 10.0.0.1 --no-cve ``` ### 扫描单个主机(跳过发现) ``` python scanner.py --target 192.168.1.5 --no-discovery --ports full ``` ### 启动 Dashboard ``` python dashboard.py # 打开 http://localhost:5000 ``` ## 项目结构 ``` avs/ ├── scanner.py ← CLI entry point ├── dashboard.py ← Flask web dashboard (optional) ├── requirements.txt ├── README.md │ ├── core/ │ ├── network_discovery.py ← Ping scan / host discovery │ ├── port_scanner.py ← TCP/UDP port scan + service detection │ ├── cve_matcher.py ← NVD API CVE lookup │ ├── risk_scorer.py ← CVSS scoring + severity labels │ └── report_generator.py ← HTML / JSON / CSV report output │ ├── utils/ │ └── logger.py ← Colored console logger │ └── reports/ └── YYYYMMDD_HHMMSS/ ├── avs_report.html ├── avs_report.json └── avs_report.csv ``` ## 架构 ``` User (CLI args) │ ▼ scanner.py ──────────────────────────────────────────────┐ │ │ ├─ network_discovery.py (nmap -sn ping scan) │ │ │ │ │ ▼ live hosts list │ ├─ port_scanner.py (nmap -sV -O TCP/UDP) │ │ │ │ │ ▼ open ports + service/version │ ├─ cve_matcher.py (NVD REST API) │ │ │ │ │ ▼ CVE list per service │ ├─ risk_scorer.py (CVSS → severity labels) │ │ │ │ │ ▼ enriched data + global summary │ └─ report_generator.py → HTML / JSON / CSV │ │ dashboard.py (Flask) ────────────────────────────────────┘ Serves reports via web UI at http://localhost:5000 ``` ## CVE 数据源 CVE 实时获取自: **[NVD — 国家漏洞数据库](https://nvd.nist.gov/)** Endpoint:`https://services.nvd.nist.gov/rest/json/cves/2.0` ## 示例输出 ``` [09:14:22] [*] Target : 192.168.1.0/24 [09:14:22] [*] Port Profile : fast [09:14:22] [~] Running host discovery on: 192.168.1.0/24 [09:14:28] [+] Host UP → 192.168.1.1 (router.local) | MAC: AA:BB:CC:DD:EE:FF [09:14:28] [+] Host UP → 192.168.1.10 (N/A) | MAC: N/A [09:14:30] [~] Scanning 192.168.1.10 | Ports: 1-1024 [09:14:35] [+] 192.168.1.10:80/tcp → http Apache 2.4.49 [09:14:35] [+] 192.168.1.10:22/tcp → ssh OpenSSH 7.4 [09:14:36] [CVE] Found 3 CVE(s) for Apache 2.4.49 [09:14:36] [CVE] → CVE-2021-41773 | CVSS: 9.8 [09:14:36] [CVE] → CVE-2021-42013 | CVSS: 9.8 [09:14:40] [+] HTML report saved: reports/20240915_091440/avs_report.html ``` ## 注意事项 - 运行 SYN 扫描 (`-sS`) 和操作系统检测 (`-O`) 需要 **root** (`sudo`) 权限 - 如果没有 root 权限,nmap 将回退到 connect 扫描(速度稍慢,也更容易被检测到) - UDP 扫描速度较慢 —— 请有选择地使用 `--udp` *AVS — 使用 Python + Nmap + NVD API 构建*
标签:CTI, Flask, Groq, Nmap, Python, 插件系统, 无后门, 自动化评估, 虚拟驱动器, 逆向工具