Alisha-chaudhary/ThreatLens

GitHub: Alisha-chaudhary/ThreatLens

ThreatLens 是一款并行化的安全侦察工具,整合了 OSINT、端口扫描、SSL 分析、DNS 检查、指纹识别与 CVE 查询,并自动生成带风险评分的结构化报告。

Stars: 0 | Forks: 0

# ThreatLens 🔍 ### 威胁情报与漏洞扫描器 ![Python](https://img.shields.io/badge/Python-3.10+-blue) ![Platform](https://img.shields.io/badge/Platform-Linux-lightgrey) ![License](https://img.shields.io/badge/License-MIT-green) ![Status](https://img.shields.io/badge/Status-Active-success) ![ThreatLens 终端界面](https://raw.githubusercontent.com/Alisha-chaudhary/ThreatLens/main/assets/Demo.gif)
它的诞生是为了回答一个简单的问题: 该项目将 OSINT 收集、服务枚举、SSL/TLS 分析、DNS 检查、技术指纹识别、CVE 富化和威胁关联整合到一个单一的自动化工作流程中。 ThreatLens 无需手动运行多个工具并手工拼接结果,而是并行编排所有任务,并生成包含风险评分和上下文发现的结构化报告。 ## 🛠️ 适用场景: - 网络安全学习 - 授权的安全评估 - 防御性研究 - 作品集与工程实践 ## 🚀 功能简介 ThreatLens 接收域名或 IP 地址,并自动运行全面的安全评估: 1. **验证并清理**输入以防范 shell 注入 2. **并行运行 6 项扫描** - nmap、theHarvester、testssl、header 检查器、DNS/WHOIS 和指纹识别 3. **运行 CVE 查找**,使用发现的版本信息查询 NVD 数据库 4. **关联发现**,使用 11 种跨工具威胁模式对所有工具的检测结果进行关联 5. **计算风险评分**,满分 100 分并提供严重程度明细 6. **生成报告** - 支持 Rich 终端 UI、PDF、HTML 和原始 JSON ## ⚡ 快速开始 ``` git clone https://github.com/Alisha-chaudhary/ThreatLens.git cd ThreatLens python3 -m venv venv source venv/bin/activate pip install -r requirements.txt python main.py ``` ## ⚡ 特性 - 并行多工具扫描流水线 - OSINT 情报收集 - 端口和服务枚举 - SSL/TLS 证书与协议分析 - HTTP 安全标头检查 - DNS、SPF、DKIM 和 DMARC 验证 - 技术指纹识别与 CMS 检测 - 使用 NVD API 进行 CVE 富化 - 跨工具威胁关联引擎 - 加权风险评分系统 - 支持 PDF、HTML、JSON 和 Rich 终端报告 ## 🧩 项目结构 ``` ThreatLens/ ├── main.py # Entry point — orchestrates the pipeline ├── modules/ │ ├── scanner.py # nmap port scanner │ ├── osint.py # theHarvester OSINT │ ├── misconfig.py # testssl SSL/TLS check │ ├── headers.py # HTTP security header checker │ ├── dns_whois.py # SPF, DMARC, DKIM, WHOIS │ ├── fingerprint.py # CMS and tech fingerprinting │ ├── cve_lookup.py # NVD CVE lookup │ ├── correlation.py # Cross-tool threat correlation │ ├── scoring.py # Risk scoring engine │ └── parallel_runner.py # ThreadPoolExecutor parallel runner ├── reports/ │ ├── report_generator.py # HTML report │ ├── pdf_generator.py # PDF report (ReportLab) │ └── terminal_output.py # Rich terminal UI ├── utils/ │ └── validation.py # Input validation and sanitisation ├── output/ # Generated reports saved here │ ├── report.html │ ├── report.pdf │ └── raw_results.json └── tests/ └── test_validation.py ``` ## 🏗️ 架构 ``` flowchart TD A[User Input] --> B[Validation & Sanitisation] B --> C[Parallel Execution] C --> D[nmap] C --> E[theHarvester] C --> F[testssl.sh] C --> G[DNS/WHOIS] C --> H[Header Analysis] C --> I[Technology Fingerprinting] D --> J[CVE Lookup] I --> J J --> K[Correlation Engine] K --> L[Risk Scoring] L --> M[HTML Report] L --> N[PDF Report] L --> O[JSON Output] ``` ThreatLens 使用 ThreadPoolExecutor 并发运行大部分扫描任务,在保持模块独立性和可扩展性的同时,减少了整体执行时间。 CVE 查找阶段在扫描完成后运行,因为它依赖于扫描期间发现的服务和版本信息。 ## ⚙️ 安装说明 ### 前置条件 - Python 3.10+ - Kali Linux 或任何 Linux 发行版 - nmap - theHarvester - testssl.sh ### 配置 ``` # Clone the repository git clone https://github.com/Alisha-chaudhary/ThreatLens.git cd ThreatLens # Create and activate virtual environment python3 -m venv venv source venv/bin/activate # Install dependencies pip install -r requirements.txt # Verify external tools are installed nmap --version theHarvester --version testssl.sh --version ``` ## 用法 ``` # Activate venv first (every new terminal session) source venv/bin/activate # Run the scanner python main.py # Enter target when prompted Enter target (domain/IP): scanme.nmap.org ``` ### 合法测试目标 | 目标 | 用途 | |---|---| | `scanme.nmap.org` | 由 nmap 团队维护 — 明确允许扫描 | | `testphp.vulnweb.com` | Acunetix 测试网站 — 故意留有漏洞 | | `http.badssl.com` | SSL/标头测试 — 公开可用 | ## 核心模块 | 模块 | 检查内容 | |--------------------------|-------------------------------------------------------------------| | **OSINT** | 通过 theHarvester 获取子域名、电子邮件、IP 地址 | | **端口扫描器** | 通过 nmap 扫描开放端口、服务、版本 | | **SSL/TLS** | 通过 testssl 检测弱协议、POODLE、HEARTBLEED、证书过期 | | **Header 检查器** | CSP、HSTS、X-Frame-Options、泄露的服务器标头 | | **DNS / WHOIS** | SPF、DMARC、DKIM、域名年龄、注册商信息 | | **技术指纹识别** | CMS(WordPress、Joomla、Drupal)、框架、服务器软件 | | **CVE 查找** | 查询 NVD API 以匹配发现版本的 CVE | | **关联引擎** | 11 种跨工具模式(例如:弱 SSL + 开放的 HTTPS = 活跃风险) | | **风险评分** | 加权严重性评分,上限为 100 | | **报告生成器** | PDF(ReportLab)、HTML、JSON、Rich 终端摘要 | ## 📁 输出 每次扫描后,以下文件将保存到 `output/` 目录: | 文件 | 格式 | 用途 | |--------------------|--------|---------------------------------------| | `report.pdf` | PDF | 专业的可直接交付客户的报告 | | `report.html` | HTML | 在浏览器中打开以查看完整的样式视图 | | `raw_results.json` | JSON | 用于集成的机器可读数据 | ## 关联模式 关联引擎能够检测到单一工具无法捕获的组合威胁: | 模式 | 组合工具 | 严重程度 | |--------------------------------------|-------------------------|----------| | 暴露的管理端口 | nmap | High | | 弱 SSL + 开放的 HTTPS | nmap + testssl | High | | 暴露的电子邮件 + 子域名 | theHarvester | Medium | | 未加密服务 + 敏感端口 | nmap | High | | 证书信任问题 + 存活的 HTTPS | testssl + nmap | Medium | | 薄弱的 header + 开放的 HTTP | headers + nmap | High | | 新域名 + 电子邮件暴露 | whois + osint | Critical | | 无 SPF + 无 DMARC | dns | Critical | | 检测到 CMS + 大量开放端口 | fingerprint + nmap | High | | 暴露的服务器版本 + 弱 SSL | fingerprint + testssl | High | | 严重 CVE + 暴露的服务 | nvd + nmap | Critical | ## 📊 风险评分 | 分数 | 严重程度 | |-----------|-----------| | 75 – 100 | Critical | | 50 – 74 | High | | 25 – 49 | Medium | | 0 – 24 | Low | 严重性权重:Critical = 40分,High = 25分,Medium = 15分,Low = 5分 最终评分上限为 100。 ## 构建技术 - Python 3.13 - [Rich](https://github.com/Textualize/rich) — 终端 UI - [ReportLab](https://www.reportlab.com/) — PDF 生成 - [dnspython](https://www.dnspython.org/) — DNS 查询 - [requests](https://requests.readthedocs.io/) — HTTP 客户端 - [nmap](https://nmap.org/) — 端口扫描 - [theHarvester](https://github.com/laramies/theHarvester) — OSINT - [testssl.sh](https://testssl.sh/) — SSL/TLS 分析 - [NVD API](https://nvd.nist.gov/developers/vulnerabilities) — CVE 数据 ## 🧠 应用的工程概念 本项目是作为一个实践性的网络安全学习练习而构建的。每个模块都是以理解为重心逐步编写的。学习并应用的关键概念包括: - 子进程管理和输出解析 - XML 解析(nmap -oX 输出) - 使用 ThreadPoolExecutor 进行并行执行 - DNS 记录类型(TXT、MX、SPF、DMARC、DKIM) - HTTP 安全标头及其攻击向量 - CVSS 评分系统 - 通过输入清理防范 shell 注入 - Kali Linux 上的虚拟环境隔离 - 专业报告生成(PDF + HTML) ## 📄 许可证 ## 本项目基于 MIT 许可证授权。 ## 🧭 路线图 - [ ] Docker 支持 - [ ] CLI 参数 - [ ] 异步扫描引擎 - [ ] 多目标扫描 - [ ] Shodan 集成 - [ ] Web 仪表盘 - [ ] SIEM 导出支持 ## ⚖️ 免责声明 ThreatLens 仅用于**授权的安全测试**。 作者不对本工具的任何滥用行为负责。 在扫描任何目标之前,请务必获得书面许可。 *由 Alisha-chaudhary 构建*
标签:ESC4, GitHub, OSINT, Python, 加密, 威胁情报, 安全侦察, 实时处理, 开发者工具, 插件系统, 无后门, 漏洞扫描器, 逆向工具