sergioacosta-dev/vuln-scanner

GitHub: sergioacosta-dev/vuln-scanner

基于Flask的Nmap漏洞扫描器,用于发现网络漏洞。

Stars: 0 | Forks: 0

# 漏洞扫描器 一个独立的 Flask 网络应用,使用 Nmap NSE 漏洞脚本扫描配置的网络目标,将结果存储在 SQLite 中,并在发现新漏洞时发送电子邮件和桌面通知。 ## 功能说明 - 通过网页仪表板添加目标主机和端口 - 使用 Nmap `--script vuln` 扫描以检测已知漏洞 - 将所有发现存储在 SQLite 中,并在扫描之间去重 - 在发现新漏洞时发送 Gmail 邮件和 Windows 桌面通知 - 定时扫描每 6 小时在后台自动运行 ## 架构 ``` User → Flask Dashboard ↓ [Targets DB] → Scanner (Nmap NSE) → [Findings DB] ↓ Notifier (Email + Desktop) ↑ APScheduler (every 6h) ``` ## 技术栈 - Python 3 / Flask - python-nmap (Nmap 包装器) - APScheduler (后台扫描任务) - SQLite (内置,无需服务器) - plyer (Windows 桌面通知) - smtplib (Gmail SMTP,stdlib) - python-dotenv ## 安装 ### 环境要求 - Python 3.10+ - 已安装 Nmap:https://nmap.org/download.html - 启用两步验证的 Gmail 账户 ### 安装步骤 ``` python -m venv venv source venv/Scripts/activate # Windows Git Bash # 或使用 PowerShell: venv\Scripts\Activate.ps1 pip install -r requirements.txt ``` ### 配置 将 `.env.example` 复制到 `.env` 并填写您的凭证: ``` GMAIL_USER=your@gmail.com GMAIL_APP_PASSWORD=xxxx xxxx xxxx xxxx NOTIFY_EMAIL=your@gmail.com SCAN_INTERVAL_HOURS=6 ``` 要生成 Gmail 应用密码:谷歌账户 → 安全 → 两步验证 → 应用密码。 ### 运行 ``` python app.py ``` 仪表板在 http://127.0.0.1:5000 ## 我学到的 - **安全:** Nmap NSE 脚本如何检测已知漏洞,基于 CVE 的严重性推断 - **Flask:** 多路由应用,Jinja2 模板,闪存消息,测试客户端 - **调度:** 在 Flask 应用内部运行的 APScheduler 后台任务 - **通知:** 使用应用密码的 Gmail SMTP,通过 plyer 的 Windows 桌面提示 - **SQLite:** 关系型模式设计,去重逻辑,跨表连接 ## 截图 image
标签:2-Step Verification, APScheduler, CTI, CVE, Flask, Gmail, Gmail API, GPT, Nmap, Nmap脚本, NSE, Python, SQLite, Web界面, 数字签名, 无后门, 桌面通知, 漏洞管理, 环境变量配置, 用户认证, 电子邮件通知, 网络安全, 自动化任务调度, 虚拟驱动器, 逆向工具, 隐私保护