Sai786512/vulnerability-scanner
GitHub: Sai786512/vulnerability-scanner
一款基于Python的简单网页与网络安全分析工具,用于快速扫描和报告常见安全漏洞。
Stars: 0 | Forks: 0
╔══════════════════════════════════════════════════════════════╗
║ VulnScan — 漏洞扫描器 ║
║ 简单的网页与网络安全分析工具 ║
╚══════════════════════════════════════════════════════════════╝
⚠ 法律声明
仅扫描您拥有或明确获得授权进行测试的系统。
未经授权的扫描是非法且不道德的。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
功能概览
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
模块 1 — 端口扫描器
• 扫描 30+ 常用端口(FTP, SSH, Telnet, HTTP, RDP 等)
• 多线程运行(速度快,100 个线程)
• 抓取服务横幅信息以进行版本检测
• 对每个开放端口进行风险评级(严重 / 高危 / 中危 / 低危)
模块 2 — HTTP 头部分析器
• 检查缺失的安全头信息:
- Strict-Transport-Security (HSTS)
- Content-Security-Policy
- X-Frame-Options (防点击劫持)
- X-Content-Type-Options
- X-XSS-Protection
• 检测信息泄露(Server, X-Powered-By 头信息)
• 检查 Cookie 安全标志(HttpOnly, Secure, SameSite)
模块 3 — SSL/TLS 检查器
• 检测过时的 TLS 版本(SSLv2/3, TLS 1.0/1.1)
• 检查证书过期时间(小于 30 天则警告)
• 检测 CN/主机名不匹配
模块 4 — 敏感路径发现
• 检查 25+ 个已知危险路径:
/.env, /.git/config, /wp-config.php, /phpmyadmin,
/actuator/env, /backup.zip, /backup.sql, /swagger-ui ...
• 报告每个路径的 HTTP 状态码
模块 5 — 本地软件版本检查器
• 检测 Python, pip, OpenSSL, SSH, curl, Git, Node.js, npm 版本
• 与已知漏洞版本进行交叉比对(Apache, nginx, OpenSSH, PHP, OpenSSL)并映射 CVE
模块 6 — DNS 与网络信息
• 主机名解析为 IP
• 反向 DNS 查询
报告生成器
• 保存人类可读的 .txt 报告
• 保存机器可读的 .json 报告
• 按严重程度排序(严重 → 信息性)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
系统要求
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Python 3.8 或更高版本
• 无需安装任何第三方包 — 仅使用标准库
• 可在 Windows, macOS, Linux 上运行
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在 Visual Studio Code 中设置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
步骤 1 — 安装 Python(如果尚未安装)
从 https://www.python.org/downloads/ 下载
✔ 安装过程中勾选 "Add Python to PATH"
步骤 2 — 在 VS Code 中打开项目
• 打开 VS Code
• 文件 → 打开文件夹 → 选择包含 scanner.py 的文件夹
步骤 3 — 打开集成终端
• 按下 Ctrl + ` (反引号) 或
• 菜单:终端 → 新建终端
步骤 4 — 运行扫描器
python scanner.py
在 macOS/Linux 上如果需要使用 python3:
python3 scanner.py
步骤 5 — 按照提示操作
工具将询问您:
(1) 扫描哪个目标:
1 → localhost(您自己的机器)
2 → 自定义主机/IP
3 → scanme.nmap.org(Nmap 的合法测试服务器)
(2) 运行哪些模块:
直接按 Enter 运行所有模块,或输入例如 1,2,3
(3) 测试哪个 HTTP 端口(默认为 80)
步骤 6 — 查看报告
扫描完成后,将在同一文件夹下生成两个文件:
vuln_report_YYYYMMDD_HHMMSS.txt ← 人类可读格式
vuln_report_YYYYMMDD_HHMMSS.json ← 机器可读格式
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
示例使用场景
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
扫描您的 localhost(最安全的测试选项):
→ 选择目标:1
→ 选择模块:all
→ 端口:80
扫描 Nmap 的合法测试服务器(需要互联网):
→ 选择目标:3
→ 选择模块:1,6
→ (跳过 HTTP 模块 — 它不是 Web 服务器)
扫描您正在开发的本地 Web 应用(例如 Flask 运行在端口 5000):
→ 选择目标:2 → 输入 127.0.0.1
→ 选择模块:2,4
→ 端口:5000
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文件结构
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vuln_scanner/
├── scanner.py ← 主脚本(运行此文件)
├── requirements.txt ← 说明(无需安装)
└── README.txt ← 本文件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
故障排除
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
错误:'python' 不被识别
→ 改用 'python3 scanner.py'
→ 或重新安装 Python 并勾选 "Add to PATH"
端口扫描显示 localhost 上没有开放端口
→ 如果本地没有运行服务器,这是正常的
→ 启动一个 Web 服务器(例如 python -m http.server 8080)
然后重新运行以查看端口 8080 出现
SSL 检查失败
→ 对于仅 HTTP 的目标是正常的
→ 测试一个 HTTPS 站点(端口 443)
Windows 上的权限错误
→ 以管理员身份运行 VS Code / 终端
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标签:HTTP安全头, SSL/TLS检查, Web安全, 主机安全, 云存储安全, 信息泄露检测, 反取证, 多线程扫描, 安全评估, 常见漏洞, 插件系统, 敏感路径发现, 数据统计, 版本检测, 端口扫描, 网络安全, 网络扫描, 蓝队分析, 证书验证, 逆向工具, 隐私保护