Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ThreatLens — 用于快速IOC分析(IP、域名、CVE)的Python CLI工具,使用6个免费威胁情报API。输出:彩色编码的Excel、JSON、CSV。使用:VT、Shodan、AbuseIPDB。 | Kitploit
工具/GitHubGitHub/abdaullahag/threatlens
防御工具危害指标 (IOC) 管理OSINT (开源情报)威胁源与聚合器漏洞分析脚本与自动化信息收集威胁情报事件响应日志分析
GitHubabdaullahag/threatlens

ThreatLens

8121天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

用于快速IOC分析(IP、域名、CVE)的Python CLI工具,使用6个免费威胁情报API。输出:彩色编码的Excel、JSON、CSV。使用:VT、Shodan、AbuseIPDB。

查看仓库
ThreatLens — 多源威胁情报 CLI

Awesome Python License: PolyForm Noncommercial Tests CI PRs Welcome Maintained


在 6 个免费威胁情报 API 中调查 IP、域名、哈希和 CVE —— 无需在浏览器标签页之间来回切换。

快速开始 · 使用方法 · 架构 · API 密钥 · 截图 · 贡献


🚀 荣登官方 Awesome OSINT 仓库推荐列表。


📖 概述

ThreatLens 是一款单一命令行工具,统一了最受信赖的免费 OSINT 来源中的威胁情报查询。无需将 IP 粘贴到五个不同的网站,ThreatLens 会并行查询所有来源,规范化结果,并给出清晰的判定结论 —— 无论是在终端中,还是在精美的、带颜色编码的 Excel/JSON/CSV 报告中。

专为 SOC 分析师、事件响应人员、威胁猎手,以及任何希望在不离开 shell 的情况下快速、可靠地丰富 IOC 的人而构建。


✨ 功能特性


🚀 快速开始

root@kitploit:~
# 1. Clone & install
git clone https://github.com/AbdaullahAG/threatlens.git
cd threatlens
pip install -r requirements.txt

# 2. Configure your API keys
cp config/keys.env.example config/keys.env
# → edit config/keys.env and fill in your keys

# 3. Run your first scan
python main.py -i 45.33.32.156

💡 NVD(CVE 查询)开箱即用,无需 API 密钥。 其他所有 API 都提供免费层级,注册时间不到 2 分钟 —— 请参阅下方的 API 密钥。

可复现安装(使用锁定依赖)

root@kitploit:~
pip install --require-hashes -r requirements.lock

🧰 使用方法

查看所有 CLI 标志

🏗️ 架构

root@kitploit:~
threat_intel_tool/
├── main.py                      # CLI entry point & argument parser
├── requirements.txt             # Runtime dependencies
├── requirements-dev.txt         # Dev/CI tooling (ruff, bandit, pip-audit, pip-tools)
├── requirements.lock            # Pinned lockfile with SHA-256 hashes
├── pytest.ini                   # pytest configuration (marks, etc.)
├── config/
│   └── keys.env                 # API keys (copy from keys.env.example)
├── output/                      # Generated reports land here
├── src/
│   ├── engine.py                # Main orchestrator (collect → enrich → report)
│   ├── models.py                # IOC & EnrichmentResult dataclasses
│   ├── storage.py               # SQLite cache & investigation history
│   ├── parsers/
│   │   └── ioc_parser.py        # Regex-based IOC extractor with validation
│   ├── enrichers/
│   │   ├── base.py              # Abstract base — safe HTTP client (redirect-block, budget, retry)
│   │   ├── 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 — no key required)
│   ├── reporters/
│   │   ├── excel_reporter.py    # Color-coded Excel reports
│   │   ├── other_reporters.py   # JSON & CSV output
│   │   └── terminal_display.py  # Rich terminal tables
│   └── utils/
│       ├── config.py            # API key loader & runtime config
│       ├── logger.py            # Rich logging setup
│       ├── banner.py            # ASCII banner
│       ├── quota.py             # Per-run request budget (thread-safe)
│       └── security.py         # IOC validation, formula neutralisation, secret redaction
└── tests/
    ├── conftest.py              # pytest fixtures & --run-e2e flag
    ├── test_core.py             # IOC parser, verdict logic, cache round-trip (34 tests)
    ├── test_enrichers.py        # BaseEnricher HTTP edge-cases — mock only (9 tests)
    ├── test_reporters.py        # Excel/CSV formula protection + SQLite integration (17 tests)
    └── test_cli_e2e.py          # Full CLI run against real NVD API (opt-in, --run-e2e)

设计原则

  • 可插拔丰富器 —— 添加新的情报来源只需在 src/enrichers/ 中新增一个继承 BaseEnricher 的文件。无需在其他地方做任何修改。
  • 类型化 IOC —— IOC 类型是枚举,而非原始字符串,在开发时而非运行时捕获错误。
  • 安全 HTTP 客户端 —— BaseEnricher.get() 在一处强制执行仅 HTTPS、主机白名单、重定向阻止、429/Retry-After 处理以及请求预算上限。
  • CI/CD 友好配置 —— 密钥从 config/keys.env 读取,并回退到系统环境变量。
  • 按丰富器限流 —— 可配置延迟(--delay)让你保持在每个 API 的免费层级限制内。
  • 故障隔离 —— 每个丰富器错误都会被捕获、记录并存储在 result.errors 中;单个 API 失败绝不会拖垮整个扫描。
  • 电子表格安全 —— 写入 Excel 和 CSV 的所有值都针对公式注入(=、+、-、@ 前缀)进行了中和。

🔑 API 密钥


🧪 测试

root@kitploit:~
# Run all unit and integration tests (no network required)
pytest tests/ -v --ignore=tests/test_cli_e2e.py

# With coverage report
pytest tests/ -v --ignore=tests/test_cli_e2e.py --cov=src --cov-report=term-missing

# Run the end-to-end CLI test (makes a real NVD request)
pytest tests/test_cli_e2e.py --run-e2e -v

测试内容


🔐 安全


📊 示例输出

终端:

root@kitploit:~
╭──────────────────────────── 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   │
└──────────────────┴──────────┴──────┴──────────────┘

Excel 报告: 多工作表工作簿,带颜色编码的判定(🔴 恶意 · 🟡 可疑 · 🟢 干净),保存至 output/ThreatLens_Report_<timestamp>.xlsx


🖼️ 截图

IP Usage Combo lookup #2 Combo lookup #1 Clean IP verdict Malicious and safe IP comparison Hash lookup


🗺️ 路线图

  • 带 TTL 的本地 SQLite 缓存
  • 每次运行的请求预算
  • IOC 验证与私有 IP 防护
  • 电子表格公式注入防护
  • 日志中 API 密钥脱敏
  • 带 SHA-256 哈希的固定锁定文件
  • CI 管道(GitHub Actions)
  • 异步/并行丰富,加速多 IOC 扫描
  • 可选的 Docker 镜像
  • STIX/TAXII 导出格式
  • 用于浏览报告的 Web 仪表板(只读)
  • 更多丰富器(GreyNoise、IPQualityScore)

有想法?提交 issue —— 欢迎贡献和建议。


🤝 贡献

欢迎并感谢贡献!

  1. Fork 仓库
  2. 创建功能分支:git checkout -b feature/my-feature
  3. 为任何新行为添加测试
  4. 确保 pytest tests/ -v --ignore=tests/test_cli_e2e.py 通过且 ruff check . 无问题
  5. 提交 pull request,并附上清晰的变更描述

新的丰富器、错误修复、文档改进和测试覆盖都是很好的首次贡献 —— 请参阅 架构 了解丰富器的结构。


📄 许可证

本项目采用 PolyForm Noncommercial License 1.0.0 许可。

你可以自由地出于个人、教育或研究目的使用、研究、修改和分享此代码。未经作者事先书面许可,不得用于商业用途([email protected])。


⚠️ 法律免责声明

本工具仅供教育和授权安全测试目的使用。用户需自行负责遵守所集成 API 的服务条款以及所有适用法律。作者不承担任何责任,也不对本程序造成的任何误用、非法活动或损害负责。


如果 ThreatLens 为你节省了时间,不妨给它一个 ⭐ —— 这能帮助其他人发现这个项目。

下载工具

为什么选择 ThreatLens

  • 一条命令替代五个浏览器标签页
  • 直接从原始日志中自动提取 IOC
  • 单个 API 失败或限流绝不会阻塞其余查询
  • 完全基于免费 API 层级运行
  • 本地 SQLite 缓存 —— 重复查询瞬间完成
  • 请求预算上限防止 API 费用失控

不适用于

  • 实时/流式检测管道
  • 付费/仅企业级情报源
  • 替代完整的 SIEM 或 SOAR 平台
功能详情
🎯 IOC 类型IP、域名、URL、文件哈希(MD5 / SHA1 / SHA256)、CVE
🔌 集成的 APIAbuseIPDB、VirusTotal、AlienVault OTX、Shodan、URLScan.io、NVD
📄 日志解析自动从任意日志或文本文件中提取所有 IOC 类型
📊 报告Excel(带颜色编码)、JSON、CSV
💾 本地缓存带可配置 TTL 的 SQLite 缓存 —— 跳过对已知 IOC 的重复查询
🛡️ 安全重定向阻止、主机白名单、日志中 API 密钥脱敏、电子表格公式中和
🔒 锁定文件requirements.lock 带 SHA-256 哈希,确保可复现安装
💻 CLI 体验Rich 进度条、彩色表格和清晰的判定摘要
🧩 架构模块化丰富器、类型化模型、严格的关注点分离
✅ 已测试使用 pytest 的 60 个单元与集成测试;通过 GitHub Actions 进行 CI
⚡ 弹性单个 API 失败绝不会阻塞其他 API —— 错误被隔离并记录
root@kitploit:~
# Investigate a single IP
python main.py -i 45.33.32.156
基本的单 IOC 查询
root@kitploit:~
# Investigate multiple IOC types at once
python main.py -i 45.33.32.156 -d malware.example.com \
  -s d41d8cd98f00b204e9800998ecf8427e -c CVE-2021-44228
在一次运行中混合搭配多种 IOC 类型
root@kitploit:~
# Parse a log file — all IOCs auto-extracted
python main.py --file /var/log/apache2/access.log
直接从原始日志批量调查
root@kitploit:~
# Output JSON instead of Excel
python main.py -i 8.8.8.8 --format json
用于管道的机器可读输出
root@kitploit:~
# Use only specific APIs
python main.py -i 8.8.8.8 --apis abuseipdb virustotal
将丰富限制为选定的来源
root@kitploit:~
# Generate every report format at once
python main.py --file access.log --format all
一次运行生成 Excel + JSON + CSV
root@kitploit:~
# Lookup a CVE — no API key needed
python main.py -c CVE-2021-44228 --apis nvd --format json
通过 NIST NVD 进行 CVE 丰富(免费,无需密钥)
root@kitploit:~
# Verbose / debug mode
python main.py -i 8.8.8.8 -v
用于故障排除的完整请求/响应日志
标志描述
-i, --ip要调查的 IP 地址
-d, --domain要调查的域名
-s, --hash文件哈希 —— MD5 / SHA1 / SHA256
-c, --cveCVE ID,例如 CVE-2021-44228
--file用于自动提取 IOC 的日志/文本文件路径
--apis将丰富限制为特定的 API 集合
--format输出格式:excel(默认)| json | csv | all
--output保存报告的目录(默认:./output)
--no-report仅将结果打印到终端,不保存文件
--cache-path本地缓存的 SQLite 路径(默认:.threatlens/investigations.db)
--cache-ttl缓存生存时间(秒)(默认:3600)
--no-cache完全绕过本地缓存
--max-requests每次运行的外部 API 调用上限(默认:250)
--max-iocs每次运行的最大唯一 IOC 数(默认:1000)
--allow-private-iocs允许私有/回环 IP(默认禁用)
--delayAPI 调用之间的延迟,用于限流调优
-v, --verbose启用调试日志
提供商注册免费层级
AbuseIPDB免费1,000 次查询/天
VirusTotal免费4 请求/分钟 · 500 请求/天
AlienVault OTX免费无限制(公开情报源)
Shodan免费有限查询
URLScan.io免费5,000 请求/天(搜索免费)
NVD / NIST可选无需密钥
测试文件覆盖范围
test_core.pyIOC 解析器(所有类型 + 边界情况)、判定逻辑、SQLite 缓存往返
test_enrichers.pyBaseEnricher.get() —— 重定向阻止、预算耗尽、429+Retry-After、日志中 API 密钥脱敏、非 JSON 响应、无效 JSON、主机白名单、HTTP 方案阻止
test_reporters.pyExcel 与 CSV 公式注入中和(7 种前缀变体)、数值透传、SQLite TTL 过期、upsert、调查记录
test_cli_e2e.py完整子进程运行:python main.py -c CVE-2021-44228 --apis nvd --format json → 退出码 0、有效 JSON、正确判定
控制项实现
仅 HTTPSBaseEnricher.get() 在发起请求前拒绝任何非 https:// URL
主机白名单每个丰富器声明 allowed_hosts;对未知主机的请求会被静默丢弃
重定向阻止所有请求使用 allow_redirects=False
429 / Retry-After单次自动重试,遵循 Retry-After 头(上限 15 秒)
请求预算--max-requests 硬性限制每次运行的 API 调用总数
API 密钥脱敏异常和日志行中的原始密钥值被替换为 [REDACTED]
公式注入所有 Excel 和 CSV 单元格值都通过 spreadsheet_value() 进行净化
IOC 验证每个 CLI 提供的 IOC 在丰富前都经过验证和规范化
私有 IP 防护默认拒绝私有/回环地址(使用 --allow-private-iocs 覆盖)
依赖审计CI 中运行 pip-audit;requirements.lock 固定所有哈希以确保可复现安装