muffinbread/Web-Scanner-Sentinel

GitHub: muffinbread/Web-Scanner-Sentinel

一个模块化的网站安全审计工具,可检测常见漏洞和错误配置并生成带有安全等级的HTML报告。

Stars: 0 | Forks: 0

# WebSentinel 一个用 Python 构建的模块化网站安全审计工具包。WebSentinel 扫描网站的常见漏洞和错误配置,然后生成专业的 HTML 报告,包含发现的问题、证据和修复建议。 ## 功能 | 扫描器 | 描述 | |--------|-------------| | **头部扫描器** | 检查缺失或配置错误的 HTTP 安全头部(CSP、HSTS、X-Frame-Options 等) | | **SSL/TLS 分析器** | 验证证书过期时间、协议版本、主机名匹配和自签名证书 | | **Cookie 分析器** | 检查 Cookie 的 Secure、HttpOnly 和 SameSite 标志 | | **端口扫描器** | 发现开放端口并识别 22 个常见端口上运行的服务 | | **目录枚举器** | 暴力破解常见路径以查找隐藏页面、管理面板和暴露的配置文件 | | **XSS 检测器** | 测试表单输入和 URL 参数是否存在反射型跨站脚本攻击 | | **SQL 注入检测器** | 使用基于错误和基于时间的盲注 SQL 注入有效载荷测试输入 | | **子域名枚举器** | 通过 DNS 暴力破解解析发现子域名 | 附加功能: - **Web GUI 仪表板** — 基于浏览器的界面,提供实时扫描进度、交互式结果、扫描历史和报告下载 - **HTML 报告生成** — 生成独立的深色主题 HTML 报告,包含安全等级(A+ 到 F)、严重程度分类和修复建议 - **选择性扫描** — 运行所有扫描器或使用 `--scanners` 选择特定的扫描器 - **彩色 CLI 输出** — 丰富的终端输出,包含严重程度编码的表格和摘要仪表板 - **模块化架构** — 每个扫描器都是一个独立的模块,继承自公共基类,便于添加新的扫描器 ## 安装 ``` git clone https://github.com/yourusername/websentinel.git cd websentinel pip install -r requirements.txt ``` **要求:** Python 3.12+ ## 使用方法 ### 对目标运行所有扫描器 ``` python -m websentinel scan example.com ``` ### 运行特定的扫描器 ``` python -m websentinel scan example.com --scanners headers,ssl,cookies ``` ### 生成 HTML 报告 ``` python -m websentinel scan example.com -o report.html ``` ### 列出可用的扫描器 ``` python -m websentinel list-scanners ``` ### 启动 Web GUI ``` python -m websentinel gui ``` 然后在浏览器中打开 `http://127.0.0.1:5000`。GUI 提供: - 目标输入和扫描器选择复选框 - 带进度条的实时扫描进度 - 可折叠扫描器部分的交互式结果 - 安全等级徽章和严重程度分类 - 扫描历史侧边栏(在会话期间持续存在) - 一键下载 HTML 报告 ### 查看帮助 ``` python -m websentinel scan --help ``` ## 扫描器密钥 将这些密钥与 `--scanners` / `-s` 标志一起使用: | 密钥 | 扫描器 | |-----|---------| | `headers` | 头部扫描器 | | `ssl` | SSL/TLS 分析器 | | `cookies` | Cookie 分析器 | | `ports` | 端口扫描器 | | `dirs` | 目录枚举器 | | `xss` | XSS 检测器 | | `sqli` | SQL 注入检测器 | | `subdomains` | 子域名枚举器 | ## 项目结构 ``` websentinel/ ├── README.md ├── requirements.txt ├── .gitignore ├── websentinel/ │ ├── __init__.py # Package init and version │ ├── __main__.py # Entry point (python -m websentinel) │ ├── cli.py # Command-line interface (Click + Rich) │ ├── web.py # Flask web GUI backend │ ├── models.py # Data models (Finding, ScanResult, Severity) │ ├── scanner.py # Base scanner abstract class │ ├── report.py # HTML report generator │ ├── templates/ │ │ └── index.html # Web GUI dashboard (HTML + CSS + JS) │ └── scanners/ │ ├── headers.py # HTTP security header checks │ ├── ssl_tls.py # SSL/TLS certificate analysis │ ├── cookies.py # Cookie security flag checks │ ├── ports.py # TCP port scanning │ ├── directories.py # Hidden path discovery │ ├── xss.py # Reflected XSS testing │ ├── sqli.py # SQL injection testing │ └── subdomains.py # DNS subdomain enumeration ├── wordlists/ │ ├── common_dirs.txt # 104 common directory/file paths │ └── common_subdomains.txt # 113 common subdomain prefixes └── tests/ └── __init__.py ``` ## 架构 WebSentinel 采用模块化插件架构: - **`BaseScanner`** — 所有扫描器继承的抽象基类。提供自动计时、错误处理和一致的接口(`name`、`description`、`run_scan`)。 - **`Finding`** — 表示一个安全问题的数据类:标题、描述、严重程度、证据和修复方法。 - **`ScanResult`** — 将单次扫描运行的所有发现分组,包含持续时间和错误状态等元数据。 - **`Severity`** — 包含五个级别的枚举:INFO、LOW、MEDIUM、HIGH、CRITICAL。 添加新的扫描器非常简单,只需在 `scanners/` 中创建新文件,继承 `BaseScanner`,然后在 `cli.py` 中注册即可。 ## 免责声明 此工具仅用于**教育目的**和**授权的安全测试**。在扫描非您所有的系统之前,请务必获得适当的书面授权。未经授权的扫描可能违反法律法规。 ## 许可证 MIT
标签:CISA项目, Cookie安全, DOE合作, HTTP头检测, HTTP工具, Python, SSL/TLS分析, Web GUI, Web安全, Web应用防火墙检测, Web扫描器, XSS, 多模态安全, 子域名枚举, 安全头分析, 安全报告生成, 安全评级, 密码管理, 插件系统, 数据可视化, 数据统计, 无后门, 无线安全, 漏洞情报, 目录暴力破解, 目录枚举, 移动安全, 端口扫描, 系统安全, 网络安全, 网络安全审计, 自动化安全检测, 蓝队分析, 逆向工具, 隐私保护