Alisha-chaudhary/ThreatLens
GitHub: Alisha-chaudhary/ThreatLens
ThreatLens 是一款并行化的安全侦察工具,整合了 OSINT、端口扫描、SSL 分析、DNS 检查、指纹识别与 CVE 查询,并自动生成带风险评分的结构化报告。
Stars: 0 | Forks: 0
# ThreatLens 🔍
### 威胁情报与漏洞扫描器





它的诞生是为了回答一个简单的问题:
该项目将 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, 加密, 威胁情报, 安全侦察, 实时处理, 开发者工具, 插件系统, 无后门, 漏洞扫描器, 逆向工具