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, 插件系统, 无后门, 自动化评估, 虚拟驱动器, 逆向工具