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 │ └──────────────────┴──────────┴──────┴──────────────┘ ``` ## 截图

IP Usage COMBO2 COMBO1 SAFE IP malicious + safe ip hash

**Excel 报告:** 包含多个 sheet 且带有颜色标记判定结果(红色 = 恶意,黄色 = 可疑,绿色 = 干净)的工作簿,保存至 `output/ThreatLens_Report_.xlsx` ## 📄 许可证 本项目基于 [PolyForm Noncommercial License 1.0.0](LICENSE) 授权。 您可以出于个人、教育或研究目的自由使用、学习、修改和分享此代码。**未经作者 (Abd.moh9999@yahoo.com) 事先书面许可,严禁用于商业用途**。 ## ⚠️ 法律免责声明 本工具仅供**教育和授权的安全测试目的**使用。 用户需自行负责遵守集成 API 的服务条款及所有适用法律。对于因使用本程序造成的任何滥用、违法行为或损害,作者不承担任何责任。
标签:API集成, IOC分析, Python, 可观测性, 威胁情报, 安全规则引擎, 开发者工具, 无后门, 逆向工具