shree-aru/sentinelscan

GitHub: shree-aru/sentinelscan

一个轻量级命令行 Web 安全扫描器,快速发现常见错误配置并提供 CVSS 评分。

Stars: 0 | Forks: 0

# SentinelScan 一个命令行 Web 安全扫描器,用于在其他人发现之前检查常见的错误配置。 我构建这个工具是因为大多数免费的安全扫描器要么臃肿、过时,要么需要完整的 Kali Linux 环境才能运行。SentinelScan 是一个单一 Python 项目,克隆后不到两分钟即可运行。 它不是 Burp Suite 或完整渗透测试的替代品。它是一个快速首轮扫描器——用于在你自己的服务器上运行以发现明显的错误。 ## 检查内容 **安全头部** — 检查是否存在缺失或配置不当的 HTTP 响应头部,这些头部用于防范 XSS、点击劫持、协议降级攻击和信息泄露。每个缺失的头部都会附带解释,说明其重要性以及需要在服务器配置中添加的确切代码行。 **SSL/TLS 证书** — 检查证书的有效性和过期时间,标记已弃用的 TLS 版本(1.0 和 1.1),并检测自签名证书。仅使用 Python 内置的 `ssl` 模块,无需外部工具。 **敏感文件与目录** — 探测 47 个绝不应公开访问的常见路径:`.git`、`.env`、备份归档文件、SQL 转储、管理面板、phpMyAdmin、AWS 凭证、私钥等。使用多线程机制,即使路径列表较大也能快速完成检查。 所有发现均使用 CVSS(通用漏洞评分系统)进行评分,这是 Microsoft、Google 及大多数主要安全团队用于评估漏洞严重性的标准。 ## 安装 你需要 Python 3.10 或更高版本。 ``` git clone https://github.com/yourusername/sentinelscan.git cd sentinelscan python -m venv venv venv\Scripts\activate # Windows source venv/bin/activate # Linux / Mac pip install -r requirements.txt ``` ## 用法 基础扫描: ``` python main.py https://example.com ``` 将报告保存到指定文件: ``` python main.py https://example.com --output reports/example.json ``` 调整超时时间(默认为 10 秒): ``` python main.py https://example.com --timeout 15 ``` 仅显示发现结果,跳过通过的检查: ``` python main.py https://example.com --quiet ``` 跳过横幅显示: ``` python main.py https://example.com --no-banner ``` 该工具会在开始前要求你确认是否拥有目标系统或拥有书面授权。未经许可扫描系统是非法的。仅应在你自己的基础设施上使用。 ## 输出 终端输出会为每个模块的结果显示严重级别(CRITICAL、HIGH、MEDIUM、LOW)、CVSS 分数、风险描述、观察到的证据以及修复建议。 最后,它会打印一个汇总表格,显示整体风险评级以及按严重级别的分布情况。 JSON 报告也会自动保存。JSON 格式易于机器读取,因此输出可用于仪表板、CI/CD 流水线或其他工具。 示例 JSON 结构: ``` { "sentinelscan_version": "1.0", "target": "https://example.com", "scan_time": "2026-04-14T14:49:56Z", "summary": { "overall_risk": "HIGH", "total_findings": 5, "critical": 0, "high": 2, "medium": 2, "low": 1 }, "modules": [...] } ``` ## 项目结构 ``` sentinelscan/ main.py entry point, CLI and terminal output requirements.txt scanner/ models.py data classes: Finding, ModuleResult, ScanReport, Severity header_checker.py HTTP security headers analysis ssl_checker.py SSL/TLS certificate analysis dir_scanner.py sensitive file and directory probing core.py orchestrates modules, handles JSON export ``` ## 为何采用特定设计决策 **字典驱动的配置** — 添加新的头部检查或敏感路径只需一行配置,而非新增 if/else 块,便于扩展。 **目录扫描的多线程** — 目录模块使用 `concurrent.futures.ThreadPoolExecutor` 并行探测所有路径。顺序扫描 47 个路径在慢速连接下可能需要数分钟,而多线程版本可在数秒内完成。 **退出码** — 发现 CRITICAL 或 HIGH 级别问题时,扫描器以退出码 1 结束;否则为 0。这使其可在 CI/CD 流水线中用作构建门禁。若引入安全回归,构建将失败。 **无外部二进制依赖** — 全部使用纯 Python 实现。不依赖 nmap、curl 包装器或 pip 包之外的系统依赖。 ## 限制 这是一个被动/非破坏性扫描器。它检查 HTTP 响应并探测已知路径,但不会进行输入模糊测试、身份验证绕过尝试或主动漏洞利用。 目录扫描器仅检查固定的 47 个路径,并非完整的目录爆破工具。如需更全面的枚举,应使用 `ffuf` 或 `gobuster` 并搭配更大的字典列表,但这属于不同的使用场景。 SSL 检查通过使用 Python 的 `ssl` 模块发起真实的 TLS 握手实现。如果服务器位于处理 TLS 终止的负载均衡器之后,某些检查结果可能与预期不同。 ## 后续计划 - SQL 注入检测(GET 与 POST 参数测试) - 反射型 XSS 扫描 - CORS 错误配置检查 - 使用 FastAPI 封装 REST API,以便以编程方式运行扫描 - 生成 HTML 与 PDF 报告 ## 法律声明 仅应对你拥有或已获得明确书面授权的系统使用该工具。未经授权的扫描在大多数国家属于违法行为,包括印度《信息技术法》(第 66 条)、美国《计算机欺诈和滥用法》以及英国《计算机滥用法》。 本工具仅用于学习、研究及授权安全审计。
标签:AWS凭证检测, CVSS评分, .env文件检测, Git泄露检测, GraphQL安全矩阵, HTTP头部检查, LNA, PB级数据处理, phpMyAdmin探测, Python安全工具, SQL转储检测, SSL/TLS检查, TLS版本检测, Web安全, XSS防护, 信息泄露防护, 协议降级防护, 备份文件检测, 多线程扫描, 安全头防护, 安全扫描器, 安全运维, 安全配置审计, 快速安全评估, 敏感文件探测, 服务器安全检查, 渗透测试辅助, 点击劫持防护, 私钥检测, 自签名证书检测, 蓝队分析, 证书检查, 逆向工具