漏洞扫描工具(vulnscanner)
用途
将一套面向内网资产的自检式漏洞扫描 Web 工具部署到当前电脑并投入使用。工具由 Flask 前端加多个检测模块组成,输入 IP/域名即可完成多维度安全检测,并生成带风险分级与修复建议的 PDF 报告,支持批量资产导入(CSV/XLSX)与扫描历史存档。
何时使用
- 用户要在本机或某台电脑上安装或部署一个漏洞扫描工具。
- 用户说“漏洞扫描”“安全扫描”“资产扫描”“生成漏洞扫描报告”“把漏扫工具装到这台电脑”等。
- 用户已有该工具、需要在新环境重新拉起并运行。
合规红线(每次使用前必须向用户重申)
- 本工具仅限已获书面授权的自有或单位资产。对外部系统发起扫描可能违反《网络安全法》及单位规定。
- 弱口令核查与 SQL 注入检测属主动探测,务必在授权范围内、尽量在维护窗口期执行,避免触发账户锁定。
- 未获授权不得对任何非自有资产运行。
部署流程(首次安装到一台新电脑)
- 确定部署目标目录(如 C:\tools\vulnscanner 或当前工作目录下的 vulnscanner)。
- 运行部署脚本,自动复制源码、创建虚拟环境、安装依赖:
bash python "SKILL_DIR/scripts/setup.py" 目标目录
其中 SKILL_DIR 为本技能所在目录(即 ~/.workbuddy/skills/vulnscanner)。不传目标目录时默认在当前工作目录创建 ./vulnscanner。 - 启动应用:
- Windows:目标目录\venv\Scripts\python.exe 目标目录\app.py
- Linux/macOS:目标目录/venv/bin/python 目标目录/app.py - 浏览器访问 http://127.0.0.1:5000 (仅监听本机)。
使用方式
工具为网页交互式。核心操作(单次扫描、批量导入、扫描历史、报告下载)详见 references/usage.md ——在用户需要具体操作步骤、CSV 格式、扩展漏洞库或排查局限时,用 Read 加载该文件。
要点:
- 提交任何扫描前必须勾选“已获授权”,否则后台拦截。
- 批量导入:每行一个 IP/域名,支持 # 注释与带表头(含 target/sqli_url 列)的 CSV/XLSX,单批上限 200 目标。
- 报告页与历史页均可一键下载 PDF。
内置代码说明(assets/vulnscanner-template/)
部署脚本复制的源码结构(无需改动即可运行):
- app.py:Flask 路由与页面(单次/批量/历史/下载)。
- generate_pdf.py:PDF 报告生成(reportlab,内置中文字体)。
- history_store.py:扫描历史落盘到 history/。
- scanner/:检测模块(端口、Web、CVE、弱口令、SQLi、批量解析、编排)。
- data/:cve_db.json 漏洞库、weakpwd_list.json 弱口令字典,均可按需扩充。
扩展与对接
- 扩充漏洞库或弱口令字典:编辑 data/ 下对应 JSON(格式见 references/usage.md 第五节)。
- 对接资产或工单系统:history/task_id.json 为结构化存档,可直接读取推送。
- 生产化:建议加用户认证、审计日志,并将内存任务表换为 Redis/数据库。
已知局限
端口扫描为 TCP 全连接(速度低于 SYN 半开);版本识别依赖 banner;漏洞库为精选集,不能替代 Nessus/OpenVAS;任务状态存内存,重启丢失进行中任务(已完成历史已落盘)。详见 references/usage.md。