hraven-1/ThreatCheck

GitHub: hraven-1/ThreatCheck

一款聚合五大威胁情报数据源的 IP 信誉分析 CLI 工具,支持从新闻、PDF 和 TAXII 源提取 IOC 并生成多格式报告。

Stars: 0 | Forks: 0

# ThreatCheck 一款多源 IP 信誉与威胁情报 CLI 工具。通过五个富化来源检查公共 IP,并生成裁定结果、HTML 报告、CSV 导出以及防泄露(Defanged)IOC 列表。支持从新闻源、PDF 和 TAXII 威胁情报集合中提取 IOC。 ## 来源 | 来源 | 数据 | 是否需要密钥 | |---|---|---| | AbuseIPDB | 滥用报告、置信度评分、ISP、国家 | 是 | | VirusTotal | AV 引擎检测结果、AS 所有者、信誉 | 是 | | GreyNoise | 互联网噪音分类、RIOT、最后出现时间 | 是(提供免费额度) | | Shodan (InternetDB) | 开放端口、CVE、标签、CPE、主机名 | 否 | | IPInfo | 地理位置、ASN、组织、主机名、时区 | 否(令牌可选) | ## 要求 - Python 3.7+ - 无需强制依赖项 —— 核心功能仅使用标准库 扩展功能的可选依赖项: ``` pip install pdfplumber # PDF IOC extraction (--pdf) pip install taxii2-client # TAXII feed integration (--taxii) ``` ## 设置 1. 将 `config.json.example` 复制为 `config.json` 2. 将您的 API 密钥添加到 `config.json` 中 3. 运行程序 如果 `config.json` 不存在,首次运行时会自动保存 API 密钥。 ## 用法 ``` # 单一 IP python threatcheck.py 8.8.8.8 # CIDR 范围 (自动扩展,上限为 256 台主机) python threatcheck.py 192.168.1.0/24 # 批量文件 (每行一个 IP 或 CIDR) python threatcheck.py --batch ips.txt # 包含完整输出的批量模式 python threatcheck.py --batch ips.txt --report report.html --export results.csv --ioc iocs.txt # 兼容管道的 JSON 输出 python threatcheck.py 8.8.8.8 --quiet --json # Defanged 输出 python threatcheck.py 8.8.8.8 --defang # Threat intel 新闻源 python threatcheck.py --news python threatcheck.py --news --ioc-extract python threatcheck.py --news --news-filter "ransomware,CVE" --news-since 48 # 新闻源到批处理再到 Enrichment pipeline python threatcheck.py --news --ioc-extract --to-batch leads.txt python threatcheck.py --news --ioc-extract --to-batch leads.txt --enrich python threatcheck.py --news --ioc-extract --to-batch leads.txt --enrich --export results.csv # PDF IOC 提取 python threatcheck.py --pdf advisory.pdf python threatcheck.py --pdf advisory.pdf --to-batch leads.txt python threatcheck.py --pdf advisory.pdf --to-batch leads.txt --enrich --export results.csv # TAXII feed 集成 python threatcheck.py --taxii python threatcheck.py --taxii --to-batch taxii_leads.txt python threatcheck.py --taxii --to-batch taxii_leads.txt --enrich python threatcheck.py --taxii --taxii-since 2026-04-29T00:00:00.000Z --to-batch leads.txt --enrich # Cache 管理 python threatcheck.py --cache-stats python threatcheck.py --cache-purge ``` ## IOC 提取 ThreatCheck 可从新闻文章标题、PDF 文档和 TAXII 集合中提取失陷指标。提取出的 IOC 分为两类: - **威胁 IOC** —— 可能属于恶意基础设施的 IP、CVE、哈希值和未知域名 - **参考提及** —— 白名单域名(供应商、政府机构、引用来源),它们出现在报告中但不属于 IOC 自动处理防泄露指标(`1.2.3[.]4` 和 `hXXps://`)。 ## 输出模式 | 标志 | 描述 | |---|---| | `--report FILE` | 包含裁定摘要的 HTML 报告 | | `--export FILE` | 包含每个 IP 所有富化字段的 CSV 文件 | | `--ioc FILE` | 仅包含恶意 IP 的防泄露 IOC 列表 | | `--json` | 输出整洁的 JSON 到标准输出以便管道传输 | | `--defang` | 以 `1.2.3[.]4` 格式打印 IP | | `--to-batch FILE` | 将从新闻/PDF/TAXII 提取的 IP 写入批处理文件 | | `--enrich` | 立即对写入 `--to-batch` 的 IP 进行富化 | ## 选项 ``` --batch FILE File with one IP/CIDR per line --pdf FILE Extract IOCs from a PDF file --taxii Pull IP indicators from configured TAXII collections --taxii-since TIME Only fetch indicators added after this ISO timestamp --days N AbuseIPDB lookback window in days (default: 90) --no-cache Bypass cache, force fresh API calls --cache-ttl N Cache TTL in seconds (default: 21600 = 6h) --quiet Suppress terminal output (use with --json) --ioc-extract Extract and display IOCs from news article titles --to-batch FILE Write extracted IPs to batch file --enrich Immediately enrich IPs from --to-batch --abuse-key KEY AbuseIPDB key override (not saved) --vt-key KEY VirusTotal key override (not saved) --gn-key KEY GreyNoise key override (not saved) --shodan-key KEY Shodan key override (not saved) --ipinfo-token TOK IPInfo token override (not saved) ``` ## 配置 密钥和 TAXII 服务器配置存储在 `config.json` 中。有关包含 `taxii_servers` 块的完整结构,请参阅 `config.json.example`。 ## 日志 结果会自动保存到 `logs/threat_log.json`。 ## 许可证 MIT
标签:AbuseIPDB, API安全, Ask搜索, CLI安全工具, CSR威胁检测, CVE漏洞检测, Defang处置, DNS枚举, GitHub, GreyNoise, HTTP/HTTPS抓包, IOC提取, IPInfo, IP信誉查询, IP 地址批量处理, JSON输出, Python安全工具, TAXII客户端, VirusTotal, 多源情报关联, 威胁情报, 开发者工具, 开放端口扫描, 态势感知, 情报报告生成, 数据泄露, 文档结构分析, 网络安全工具