agunna99/vulnscan_project

GitHub: agunna99/vulnscan_project

一个基于 Python 标准库的轻量级 DevSecOps 漏洞扫描器,覆盖端口、HTTP 头、SSL、DNS 与 CVE 检查。

Stars: 0 | Forks: 0

# VulnScan 🛡️ 使用纯 Python 标准库构建 — 无需 pip 安装。 ## 功能 | 检查 | 标志 | 检测内容 | |---|---|---| | 端口扫描 | `--ports` | 开放的高风险端口(RDP、SSH、MySQL、Redis、MongoDB...) | | HTTP 头 | `--headers` | 缺失的安全头(HSTS、CSP、X-Frame-Options...) | | CVE 检查 | `--vulns` | 存在已知 CVE 的过时 Apache、nginx、PHP 版本 | | TLS/SSL | `--ssl` | 证书过期、仍启用 TLS 1.0/1.1 | | DNS 侦察 | `--dns` | DNS 记录、区域传输、SPF/DMARC 检查 | ## 要求 - Python 3.8+ - `dig` 命令(用于 DNS 检查) - Windows:安装 [BIND 工具](https://www.isc.org/bind/) - Linux/Ubuntu:`sudo apt install dnsutils` - macOS:预装 ## 安装 无需安装。只需下载 `vulnscan.py` 并运行。 ``` # 克隆或下载 git clone https://github.com/yourhandle/vulnscan cd vulnscan ``` ## 用法 ``` # 运行所有检查 python vulnscan.py example.com --all # 运行特定检查 python vulnscan.py example.com --ports python vulnscan.py example.com --headers python vulnscan.py example.com --ssl python vulnscan.py example.com --dns python vulnscan.py example.com --vulns # 组合检查 python vulnscan.py example.com --ports --ssl python vulnscan.py 192.168.1.1 --ports --headers ``` ## 示例输出 ``` PORT SCAN ────────────────────────────────────────── [ LOW ] Port 80/tcp open (HTTP) Plaintext web — should redirect to HTTPS [ INFO ] Port 443/tcp open (HTTPS) TLS web — expected HTTP HEADER ANALYSIS ────────────────────────────────────────── [ HIGH ] Missing: Strict-Transport-Security HSTS missing — forces HTTPS, prevents downgrade attacks Fix: Add 'Strict-Transport-Security' to your web server config [ OK ] Content-Security-Policy: frame-ancestors 'none' [ OK ] X-Frame-Options: SAMEORIGIN SCAN SUMMARY ────────────────────────────────────────── HIGH ███ 1 MEDIUM █ 1 LOW ████ 3 Report saved → vulnscan_example_com_20260331_120000.json ``` ## 严重等级 | 等级 | 含义 | |---|---| | `CRITICAL` | 需要立即采取行动 — 严重暴露 | | `HIGH` | 尽快修复 | | `MEDIUM` | 应处理 — 中等风险 | | `LOW` | 最佳实践改进 | | `INFO` | 提示信息 — 无需操作 | ## 输出 / 报告 每次扫描会自动在同级目录保存一份 JSON 报告: ``` vulnscan_example_com_20260331_120000.json ``` 示例 JSON 结构: ``` { "target": "example.com", "timestamp": "2026-03-31T12:00:00", "duration_seconds": 8, "total_findings": 5, "findings": [ { "category": "Header", "severity": "HIGH", "title": "Missing: Strict-Transport-Security", "detail": "HSTS missing — forces HTTPS, prevents downgrade attacks", "remediation": "Add 'Strict-Transport-Security' to your web server config" } ] } ``` ## AWS EC2 部署 ### 1. 启动 EC2 实例 - AMI:Ubuntu 22.04 LTS(t2.micro 免费层级可用) - 安全组:允许所有出站流量,仅从你的 IP 允许入站 SSH ### 2. 引导(作为用户数据粘贴) ``` #!/bin/bash apt-get update -y apt-get install -y python3 dnsutils git clone https://github.com/yourhandle/vulnscan /opt/vulnscan chmod +x /opt/vulnscan/vulnscan.py ln -s /opt/vulnscan/vulnscan.py /usr/local/bin/vulnscan ``` ### 3. SSH 登录并运行 ``` ssh -i your-key.pem ubuntu@ vulnscan example.com --all ``` ### 4. 将报告保存到 S3(可选) ``` aws s3 cp vulnscan_*.json s3://your-bucket/reports/ ``` ## 已知限制 - **Windows 上的证书误报** — Python 可能无法验证本地有效证书。如果浏览器显示锁图标,则证书正常。可通过 `pip install certifi` 修复。 - **DNS 检查依赖 `dig`** — 若未安装 dig,则静默跳过 DNS 侦察。 - **CVE 检测基于头部** — 版本信息必须在 `Server:` 或 `X-Powered-By:` 头中暴露。使用 nikto 或 nuclei 可进行更深入的 CVE 扫描。 - **不能替代完整扫描器** — 生产环境安全审计应结合 nmap、nikto、OWASP ZAP 或 nuclei 使用。 ## 扩展 VulnScan 可进一步改进的想法: - **Nmap 集成** — 使用 `nmap -sV` 替换端口扫描器以进行服务检测 - **Nuclei 模板** — 将发现结果传入 nuclei 进行 CVE 验证 - **Slack 告警** — 对严重发现项发送 Webhook 通知 - **GitHub Actions** — 在每次部署时运行 `vulnscan $DOMAIN --headers --ssl` - **Flask API** — 封装为 REST API 以提供 Web 仪表板前端 ## 免责声明 ## 本项目演示内容 - 使用原始套接字进行网络编程 - HTTP 协议内部机制(头部、TLS、重定向) - 使用 `ThreadPoolExecutor` 的并发执行 - 安全领域知识(CVE、OWASP、DNS 卫生) - 使用 argparse 和结构化 JSON 报告的 CLI 工具 - AWS EC2 部署 由 [Your Name] 构建 · [github.com/yourhandle](https://github.com/yourhandle)
标签:CSP, CVE检查, DevSecOps, DMARC, DNS侦察, DNS区域传送, HSTS, HTTP头检测, meg, SPF, SSL审计, TLS检测, X-Frame-Options, 上游代理, 二进制发布, 信息安全, 安全头, 安全扫描, 安全标准, 开源工具, 数据统计, 无依赖, 时序注入, 标准库, 端口扫描, 纯Python, 证书过期, 逆向工具