NikoloziKhachiashvili/TIP
GitHub: NikoloziKhachiashvili/TIP
轻量级Python CLI威胁情报平台,聚合多源IOC并通过VirusTotal和Shodan增强查询,支持关联分析和终端可视化。
Stars: 0 | Forks: 0
# TIP — 威胁情报平台
```
████████╗██╗██████╗
██╔══╝██║██╔══██╗
██║ ██║██████╔╝
██║ ██║██╔═══╝
██║ ██║██║
╚═╝ ╚═╝╚═╝
Threat Intelligence Platform • v1.0
```
## 功能特性
- **多源获取** — AlienVault OTX, URLhaus, MalwareBazaar, 以及本地自定义 CSV
- **IOC 类型** — IPv4, domain, URL, MD5, SHA1, SHA256
- **情报增强** — VirusTotal, Shodan, WHOIS, DNS 解析
- **SQLite 存储** — 包含完整 IOC 元数据的持久化数据库
- **关联分析引擎** — 自动关联 IP ↔ 域名 ↔ URL ↔ 哈希攻击活动
- **丰富终端界面** — 颜色编码的威胁等级、进度条、多面板报告
- **导出** — JSON 或 Markdown
## 安装说明
### 前置条件
- Python 3.10+
- pip / pipx
### 从源码安装
```
git clone https://github.com/NikoloziKhachiashvili/TIP
cd tip
pip install -e ".[dev]"
```
### 使用 pipx 安装(推荐用于隔离环境)
```
pipx install .
```
## API 密钥配置
TIP 使用免费层 API。将您的密钥设置为环境变量或作为 CLI 标志传递。
| 变量 | 服务 | 获取方式 |
|---|---|---|
| `OTX_API_KEY` | AlienVault OTX | [otx.alienvault.com](https://otx.alienvault.com) → Account → API Integration |
| `VT_API_KEY` | VirusTotal | [virustotal.com](https://www.virustotal.com) → API → Get API key |
| `SHODAN_API_KEY` | Shodan | [shodan.io](https://account.shodan.io) → Account → API Key |
### 设置密钥
```
# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
export OTX_API_KEY="your-otx-key"
export VT_API_KEY="your-vt-key"
export SHODAN_API_KEY="your-shodan-key"
# 或者为单个命令内联传递
VT_API_KEY=xxx python -m tip investigate 1.2.3.4
```
## 命令
### `python -m tip fetch`
从所有配置的源拉取最新的 IOC 数据,持久化到 SQLite,并运行关联分析引擎。
```
python -m tip fetch
# 使用自定义本地 CSV feed
python -m tip fetch --local-csv ./feeds/custom.csv
# 跳过关联(对于大批量导入更快)
python -m tip fetch --no-correlate
```
**输出:** 显示 IOC 计数和上次同步时间的源状态表。
### `python -m tip investigate `
对任何 IOC 执行完整的情报增强报告(自动检测类型)。
```
python -m tip investigate 1.2.3.4
python -m tip investigate evil-domain.com
python -m tip investigate "https://malware.example.com/drop.exe"
python -m tip investigate d41d8cd98f00b204e9800998ecf8427e
```
**输出:** 多面板报告包括:
- 威胁评分仪表(0–100 及颜色)
- VirusTotal 检测统计
- Shodan 开放端口、组织、CVEs
- WHOIS 注册信息
- DNS 记录
- 相关 IOC 关联
- 标签
### `python -m tip search `
按值、类型、标签或评分阈值搜索本地数据库。
```
# 值的子串匹配
python -m tip search "evil.com"
# 通配符(所有 IOC)
python -m tip search "*"
# 按类型过滤
python -m tip search "*" --type domain
# 按标签过滤
python -m tip search "*" --tag ransomware
# 按最低威胁分数过滤
python -m tip search "*" --min-score 80
# 组合过滤器
python -m tip search "185." --type ipv4 --min-score 50 --limit 50
```
### `python -m tip stats`
显示数据库统计信息和源健康状况。
```
python -m tip stats
```
**输出:**
- IOC 总数,严重数量
- 按 IOC 类型和来源源的细分
- 源状态面板(上次同步、IOC 计数、错误)
### `python -m tip export`
以您选择的格式导出所有 IOC。
```
# JSON 输出到 stdout
python -m tip export --format json
# Markdown 输出到文件
python -m tip export --format markdown -o report.md
# 带限制的 JSON 输出到文件
python -m tip export --format json -o iocs.json --limit 500
```
## 全局选项
这些选项适用于所有命令:
```
python -m tip [OPTIONS] COMMAND [ARGS]
Options:
--db PATH SQLite database path [default: ~/.tip/tip.db]
--vt-key TEXT VirusTotal API key
--shodan-key TEXT Shodan API key
--otx-key TEXT AlienVault OTX API key
--help Show help and exit
```
## 本地自定义源格式
在 `./feeds/custom.csv` 创建 CSV 文件(或使用 `--local-csv` 传递):
```
value,type,source,tags,threat_score
185.220.101.1,ipv4,internal,tor-exit,45
evil-domain.example.com,domain,internal,phishing,65
http://drop.example.org/payload.exe,url,internal,malware-dropper,80
```
**列:**
| 列名 | 必填 | 描述 |
|---|---|---|
| `value` | 是 | IOC 值 |
| `type` | 否 | `ipv4`, `domain`, `url`, `md5`, `sha1`, `sha256`(如省略则自动检测) |
| `source` | 否 | 源标签(默认为 `local`) |
| `tags` | 否 | 逗号分隔的标签 |
| `threat_score` | 否 | 浮点数 0–100 |
## 配色方案
| 等级 | 评分 | 颜色 |
|---|---|---|
| CRITICAL | 80–100 | 红色 |
| HIGH | 60–79 | 橙色 |
| MEDIUM | 40–59 | 黄色 |
| LOW | 20–39 | 青色 |
| CLEAN | 0–19 | 绿色 |
| UNKNOWN | — | 暗白色 |
## 项目结构
```
tip/
├── src/tip/
│ ├── __init__.py # Package metadata
│ ├── __main__.py # python -m tip entry point
│ ├── cli.py # Click CLI commands
│ ├── models.py # Data models (IOC, FeedStatus, EnrichmentResult)
│ ├── database.py # SQLite persistence layer
│ ├── feeds.py # Feed pullers (OTX, URLhaus, MalwareBazaar, CSV)
│ ├── enrichment.py # Enrichment engines (VT, Shodan, WHOIS, DNS)
│ ├── correlation.py # Correlation engine
│ ├── investigator.py # Investigation orchestrator
│ ├── dashboard.py # Rich terminal UI components
│ └── reporter.py # JSON / Markdown export
├── tests/ # pytest test suite (85%+ coverage)
├── feeds/
│ └── custom.csv # Example local feed
├── pyproject.toml
├── README.md
└── LICENSE
```
## 开发
```
# 安装 dev dependencies
pip install -e ".[dev]"
# 运行测试
pytest
# 运行覆盖率报告
pytest --cov=tip --cov-report=html
```
## 许可证
MIT — Copyright (c) 2026 Nikolozi Khachiashvili
标签:Ask搜索, CLI, DAST, ESC4, HTTP/HTTPS抓包, HTTP工具, IOC 聚合, IP 地址查询, MalwareBazaar, masscan, nuclei, OSINT, Python, Rich 库, SQLite, TIP, URLhaus, VirusTotal, WiFi技术, 哈希校验, 域名信誉, 威胁情报平台, 安全仪表盘, 态势感知, 恶意软件分析, 数据关联, 数据泄露, 无后门, 终端 UI, 网络安全, 网络安全审计, 自动化响应, 逆向工具, 隐私保护, 黄金证书