AbdaullahAG/Threat_Intel_Project
GitHub: AbdaullahAG/Threat_Intel_Project
一款聚合六大免费威胁情报 API 的 Python 命令行 IOC 分析工具,支持从日志中自动提取指标并生成多格式研判报告。
Stars: 2 | Forks: 0
# 🔍 ThreatLens v2.0
## ✨ 功能
| 功能 | 详情 |
|---|---|
| **IOC 类型** | IP, Domain, URL, File Hash (MD5/SHA1/SHA256), CVE |
| **API** | AbuseIPDB, VirusTotal, AlienVault OTX, Shodan, URLScan.io, NVD |
| **日志解析** | 从任何日志/文本文件中自动提取所有 IOC 类型 |
| **报告** | Excel(带有颜色标记)、JSON、CSV |
| **CLI** | 进度条、彩色表格、判定结果摘要 |
| **架构** | 模块化 enricher、类型化模型、清晰的关注点分离 |
| **测试** | 使用 pytest 进行单元测试 |
## 📁 项目结构
```
threat_intel_tool/
├── main.py # CLI entry point
├── requirements.txt
├── config/
│ └── keys.env # API keys (copy and fill in)
├── output/ # Reports saved here
├── src/
│ ├── engine.py # Main orchestrator
│ ├── models.py # IOC & EnrichmentResult dataclasses
│ ├── parsers/
│ │ └── ioc_parser.py # Regex-based IOC extractor
│ ├── enrichers/
│ │ ├── base.py # Abstract base class
│ │ ├── registry.py # Enricher dispatcher
│ │ ├── abuseipdb.py # AbuseIPDB (IP)
│ │ ├── virustotal.py # VirusTotal (IP/Domain/URL/Hash)
│ │ ├── otx.py # AlienVault OTX (IP/Domain/URL/Hash)
│ │ ├── shodan.py # Shodan (IP)
│ │ ├── urlscan.py # URLScan.io (URL/Domain)
│ │ └── nvd.py # NVD/NIST (CVE) — free, no key needed
│ ├── reporters/
│ │ ├── excel_reporter.py # Professional color-coded Excel
│ │ ├── other_reporters.py # JSON & CSV
│ │ └── terminal_display.py# Rich terminal tables
│ └── utils/
│ ├── config.py # API key loader
│ ├── logger.py # Rich logging
│ └── banner.py # ASCII banner
└── tests/
└── test_core.py # Unit tests
```
## 🚀 快速开始
### 1. 安装依赖
```
pip install -r requirements.txt
```
### 2. 配置 API 密钥
```
cp config/keys.env config/keys.env # already there
# 编辑 config/keys.env 并填入你的 API keys
```
### 3. 运行
```
# 调查单个 IP
python main.py -i 45.33.32.156
# 一次性调查多种 IOC 类型
python main.py -i 45.33.32.156 -d malware.example.com -s d41d8cd98f00b204e9800998ecf8427e -c CVE-2021-44228
# 解析日志文件 — 自动提取所有 IOC
python main.py --file /var/log/apache2/access.log
# 输出 JSON 而非 Excel
python main.py -i 8.8.8.8 --format json
# 仅使用特定的 API
python main.py -i 8.8.8.8 --apis abuseipdb virustotal
# 一次性输出所有格式
python main.py --file access.log --format all
# Verbose/debug 模式
python main.py -i 8.8.8.8 -v
```
## 🧪 运行测试
```
pytest tests/ -v
# With coverage
pytest tests/ -v --cov=src --cov-report=term-missing
```
## 🏗️ 架构说明
- **Enricher** 完全独立 —— 添加新的 API 只需要在 `src/enrichers/` 目录下添加一个继承自 `BaseEnricher` 的新文件。
- **IOC 类型** 是类型化枚举,而不是字符串 —— 能够防止 bug。
- **Config** 从 `config/keys.env` 读取,并以系统环境变量作为后备 —— 适配 CI/CD。
- **Rate limiting** 由各个 enricher 通过可配置的延迟(`--delay`)独立处理。
- **所有错误** 都会被捕获、记录并存储在 `result.errors` 中 —— 单个 API 故障永远不会影响其他 API 的运行。
## 🔑 API 密钥 —— 获取途径
| API | 注册 | 免费额度 |
|---|---|---|
| [AbuseIPDB](https://www.abuseipdb.com/register) | 免费 | 1,000 次检查/天 |
| [VirusTotal](https://www.virustotal.com/gui/join-us) | 免费 | 4 次请求/分钟,500 次/天 |
| [AlienVault OTX](https://otx.alienvault.com) | 免费 | 无限制公开访问 |
| [Shodan](https://account.shodan.io/register) | 免费 | 有限的查询次数 |
| [URLScan.io](https://urlscan.io/user/signup) | 免费 | 5,000 次/天(搜索免费) |
| [NVD/NIST](https://nvd.nist.gov/developers/request-an-api-key) | 免费 | 无需密钥 |
## 📊 输出示例
**终端:**
```
╭──────────────────────────── IOC Collection ─────────────────────────────╮
│ Found 4 IOCs to investigate │
│ CVE: 1 Domain: 1 Hash: 1 IP: 1 │
╰──────────────────────────────────────────────────────────────────────────╯
✓ Active APIs: abuseipdb, virustotal, otx, shodan, urlscan, nvd
🌐 IP Address Results
┌─────────────────┬──────────────┬──────────┬─────────┬────────────────────┐
│ IP Address │ Verdict │ Abuse % │ Country │ ISP / Org │
├─────────────────┼──────────────┼──────────┼─────────┼────────────────────┤
│ 45.33.32.156 │ Suspicious │ 42 │ US │ Linode │
└─────────────────┴──────────────┴──────────┴─────────┴────────────────────┘
⚠️ CVE Results
┌──────────────────┬──────────┬──────┬──────────────┐
│ CVE ID │ Severity │ CVSS │ Published │
├──────────────────┼──────────┼──────┼──────────────┤
│ CVE-2021-44228 │ Critical │ 10.0 │ 2021-12-10 │
└──────────────────┴──────────┴──────┴──────────────┘
```
## 截图
.xlsx`
## 📄 许可证
本项目基于 [PolyForm Noncommercial License 1.0.0](LICENSE) 授权。
您可以出于个人、教育或研究目的自由使用、学习、修改和分享此代码。**未经作者 (Abd.moh9999@yahoo.com) 事先书面许可,严禁用于商业用途**。
## ⚠️ 法律免责声明
本工具仅供**教育和授权的安全测试目的**使用。
用户需自行负责遵守集成 API 的服务条款及所有适用法律。对于因使用本程序造成的任何滥用、违法行为或损害,作者不承担任何责任。
标签:API集成, IOC分析, Python, 可观测性, 威胁情报, 安全规则引擎, 开发者工具, 无后门, 逆向工具