MiguelG17/shadow-scout

GitHub: MiguelG17/shadow-scout

ShadowScout 是一款基于 Python 的 EASM 侦察与风险分析 CLI 工具,通过被动信息收集、CVE 关联和变更检测自动生成安全评估报告。

Stars: 0 | Forks: 0

# ShadowScout - EASM 侦察与风险引擎 **ShadowScout** 是一个用于外部攻击面管理(**EASM - External Attack Surface Management**)的 CLI 引擎。它主要分为两个阶段设计:一是被动发现与基础设施识别,二是风险分析、变更检测、实时查询漏洞(CVEs)以及生成 PDF 报告。 ## 🚀 核心特性 * **被动侦察与映射:** 查询 **VirusTotal** API 以列出子域名并解析其 IP 地址。 * **外部服务扫描:** 通过 **Shodan** API 获取 Banner 和开放端口,无需直接与目标进行交互。 * **智能动态过滤:** 仅隔离并分析与指定目标域名相对应的子域名,避免数据交叉污染。 * **实时漏洞搜索:** 查询 **NIST 的 NVD (National Vulnerability Database) API** v2.0,以获取所检测服务的 CVEs 和 CVSS 评分。 * **持久化与历史记录控制:** 将所有扫描的详细信息存储在本地 **SQLite** 数据库中。 * **变更检测引擎:** 将当前扫描与之前的运行记录进行比较,以识别自上次扫描以来新增的子域名、新开放的端口或已关闭的端口。 * **执行报告生成:** 编译带有专业样式的 **PDF** 技术报告,可直接交付使用。 ## 🛠️ 安装与配置 ### 1. 克隆仓库 ``` git clone https://github.com/MiguelG17/shadow-scout.git cd shadow-scout ``` ### 2. 配置虚拟环境并安装依赖 建议使用 Python 虚拟环境: ``` # Crear entorno virtual python -m venv venv # Activar en Windows (PowerShell) .\venv\Scripts\Activate.ps1 # Activar en Linux/macOS source venv/bin/activate # Instalar dependencias requeridas pip install -r backend/requirements.txt ``` ### 3. 配置环境变量(`.env`) 在 `backend/` 文件夹中创建一个名为 `.env` 的文件,包含你的 VirusTotal 和 Shodan 的 API keys: ``` VT_API_KEY=tu_api_key_de_virustotal SHODAN_API_KEY=tu_api_key_de_shodan ``` ## 📖 工作流程与使用 ShadowScout 以模块化方式运行,分为两个简单的步骤: ### 步骤 1:侦察与扫描(侦察阶段) 此步骤被动收集子域名及其开放端口,并自动将其保存到该域名专属的 JSON 文件中: ``` python backend/main.py -d ``` * **示例:** `python backend/main.py -d google.com` * 这将自动创建文件 `backend/google.com_phase2_result.json`。 ### 步骤 2:风险分析与报告 此步骤读取该域名的 JSON 文件,查询 CVEs,查找与历史记录相比的变更,更新数据库并生成 PDF: ``` python main.py -d --cve --pdf ``` * **示例:** `python main.py -d google.com --cve --pdf` * 将自动查找文件 `backend/google.com_phase2_result.json`。 * 将分析结果保存到数据库 `shadow_scout.db` 中。 * 生成 PDF 格式的报告,命名为 `reporte_seguridad.pdf`。 ## 🎛️ CLI 详细选项 ### 扫描器 (`backend/main.py`) ``` opciones: -h, --help Muestra la ayuda y sale. -d, --domain DOMAIN Dominio objetivo a escanear (Ej: uvigo.gal). -o, --output OUTPUT Ruta del JSON de salida (Por defecto: backend/{dominio}_phase2_result.json). ``` ### 主分析器 (`main.py`) ``` opciones: -h, --help Muestra la ayuda y sale. -d, --domain DOMAIN Dominio objetivo a analizar. -i, --input INPUT JSON de entrada (Por defecto busca: backend/{dominio}_phase2_result.json). --cve Habilita la consulta de CVEs en tiempo real con la NVD. --pdf Genera el reporte ejecutivo en formato PDF. -o, --output-pdf OUT Nombre del PDF generado (Por defecto: reporte_seguridad.pdf). --no-db Deshabilita el guardado en la base de datos SQLite. ``` ## 📂 项目结构 * **[main.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/main.py):** 风险分析与报告阶段的主要 CLI 编排器。 * **[backend/main.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/backend/main.py):** 被动子域名发现与扫描脚本(阶段 2)。 * **[backend/analyzer.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/backend/analyzer.py):** 端口严重性评估逻辑。 * **[backend/cve_lookup.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/backend/cve_lookup.py):** 与 NVD NIST 公共 API 的集成。 * **[backend/database.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/backend/database.py):** SQLite 数据库管理与变更检测。 * **[backend/report_generator.py](file:///c:/Users/Miguel/Documents/GitHub/shadow-scout/backend/report_generator.py):** 基于 ReportLab 的 PDF 模板生成器。
标签:GitHub, Python, 安全报告, 实时处理, 密码管理, 无后门, 逆向工具