nuclide-research/tome
GitHub: nuclide-research/tome
tome 是一个 AI/ML 基础设施平台的 OSINT 挖掘引擎,通过内置规范化语料库提供平台档案查询、Shodan dork 生成和被动指纹识别能力。
Stars: 0 | Forks: 0
tome
技术型 OSINT 挖掘引擎。规范的 AI/ML 平台语料库。
功能 •
安装说明 •
命令 •
平台 •
Schema •
范围
tome 是一个 Go 二进制程序,内置了 AI 和 ML 基础设施平台的语料库。每个平台文件记录了默认端口、API 路径、默认认证方式、默认凭据、配置错误模式、三个具体级别的 Shodan dorks、与 aimap 兼容的探针配置、跳板路径、已知漏洞以及来源参考。给定一个平台名称,tome 会输出配置文件、dork 字符串或探针配置。给定一个 IP,它会使用 Shodan 的 host API 根据每个被动特征对主机进行评分,并返回带有置信度评分的发现结果。可选的 `--active` 会为每个匹配的平台发送一个 HTTP 探针。
tome 是 NuClide 评估链背后的规范注册表。Stage -1 将研究过的平台写入其中。Stage 0 从中读取 dorks。Stage 0d 根据它来构建 aimap 指纹。一个语料库,而不是三个会偏离的语料库。
# 功能
- 内置语料库中包含 50 个 AI/ML 平台,且仍在不断增加
- 每个平台有三个 dork 级别:`basic`、`strict`、`version`。可以粘贴到 Shodan 或通过管道传递给 JAXEN
- 兼容 aimap 的探针配置 JSON,可直接用于 `aimap probe --stdin`
- 基于Shodan主机数据的带置信度评分的被动指纹识别
- 可选的针对每个匹配平台的单次主动验证探针
- 语料库中每一项声明都有针对各平台的来源参考(O'Reilly 章节、供应商文档)
- 三种输出格式:`table`(tty 默认)、`json`(管道默认)、`csv`
- 单一静态 Go 二进制文件,无外部运行时依赖
# 安装说明
```
go install -v github.com/nuclide-research/tome@latest
```
或从源码构建:
```
git clone https://github.com/nuclide-research/tome
cd tome
go build -o tome .
```
需要 Go 1.22 或更高版本。运行时依赖在构建时解析:`cobra`、`pflag`。
# 命令
### `tome list`
列出语料库中的所有平台。
```
tome list
tome list -f json
```
### `tome profile
`
完整的 OSINT 配置文件:端口、API 路径、默认认证、Shodan dorks、默认凭据、配置错误模式、跳板路径、已知漏洞、来源。
```
tome profile ollama
tome profile weaviate -f json
tome profile n8n -f csv
```
### `tome dorks `
所选级别的 Shodan dork,已格式化以便于粘贴或导入 JAXEN。
```
tome dorks ollama # strict tier (default)
tome dorks chromadb --dork-tier basic
tome dorks vllm --dork-tier version
```
### `tome probe `
兼容 aimap 的探针配置 JSON。可直接通过管道输入到 aimap。
```
tome probe weaviate
tome probe ollama | aimap probe --stdin
```
### `tome scan `
通过 Shodan host API 进行被动指纹识别。将缓存的 banner 与每个平台的被动特征进行匹配,将置信度计算为 `matched_filters / total_filters`,并返回高于阈值的发现结果。`--active` 会为每个匹配的平台发送一个 HTTP 探针。
```
export SHODAN_API_KEY=your_key
tome scan 192.0.2.10
tome scan 192.0.2.10 --confidence 0.5
tome scan 192.0.2.10 --active
tome scan 192.0.2.10 -f json
```
`--active` 会发送流量,需要交互式确认。仅在获得书面授权后使用。
# 全局参数
| 参数 | 默认值 | 作用 |
|------|---------|--------|
| `-f, --format` | `table` (tty), `json` (pipe) | 输出格式:`table`、`json`、`csv` |
| `--confidence` | `0.0` | 过滤低于阈值的 `scan` 发现结果 (0.0 到 1.0) |
| `--dork-tier` | `strict` | dork 具体级别:`basic`、`strict`、`version` |
# 平台
最初发布包含 19 个平台,涵盖了推理服务、向量数据库、编排和可观测性。目前语料库已涵盖相同类别以及嵌入式服务、代理平台和 MCP 在内的 50 个平台。`tome list` 是权威列表;下方的快照只是一个示例。
| 平台 | 类别 | 默认认证 |
|----------|----------|--------------|
| Ollama | inference_serving | none |
| vLLM | inference_serving | none |
| SGLang | inference_serving | none |
| llama.cpp | inference_serving | none |
| TGI | inference_serving | none |
| KServe | inference_serving | none |
| NVIDIA NIM | inference_serving | none |
| Ray Serve | inference_serving | none |
| Custom Embedding API (FastAPI/uvicorn) | embedding_serving | none |
| OpenVINO Model Server | embedding_serving | none |
| Weaviate | vector_db | none |
| ChromaDB | vector_db | none |
| Qdrant | vector_db | none |
| Milvus | vector_db | none |
| n8n | orchestration | none |
| LangServe | orchestration | none |
| MLflow | observability | none |
| LangFuse | observability | api_key |
| LangSmith | observability | api_key |
# 平台 Schema
```
platform, display_name, category
default_ports[]
api_paths[]
auth_default, auth_config_env[]
default_creds[]: {user, pass, context}
install_tell
misconfig_patterns[]
fingerprint:
passive[]: Shodan filter strings (AND within compound filters)
active_probe: {path, method, response_markers[], false_positive_check}
shodan_dorks: {basic, strict, version}
deployment_tells[]
pivot_paths[]
vulnerabilities[]
sources[]
```
# 扫描发现结果结构 (JSON)
```
{
"platform": "ollama",
"ip": "192.0.2.10",
"port": 11434,
"discovery_method": "shodan_passive",
"auth_required": false,
"version": "",
"verified": false,
"confidence": 0.67,
"active_probe_used": false,
"pivot_paths": [
"GET /api/tags -> model inventory -> infer org focus from model names",
"GET /api/show -> system prompt leakage (reveals deployment context)",
"GET /api/version -> exact version -> CVE matching"
]
}
```
# 示例
```
$ tome profile ollama
Platform: Ollama
Category: inference_serving
Default ports: 11434
Auth default: NONE
Shodan (strict): product:Ollama port:11434
Key misconfig: OLLAMA_HOST=0.0.0.0 exposes to all interfaces (+2 more)
Pivot: GET /api/tags -> model inventory -> infer org focus from model names
Sources: Generative AI on Kubernetes (9781098171919) ch01;
Hands-On LLM Serving and Optimization (9798341621480) ch08
```
```
$ tome dorks ollama
product:Ollama port:11434
$ tome dorks ollama --dork-tier basic
"ollama" port:11434
```
# 融入评估链
```
tome dorks | jaxen import -
tome probe | aimap probe --stdin
tome scan # passive Shodan fingerprint per host
```
tome 运行在 JAXEN 之前以生成针对性的 dorks,在 aimap 之前运行以提供探针配置,也可以独立运行以根据完整语料库被动评估任何主机。
# 范围
tome 是一个语料库查询和被动指纹识别工具。`scan` 命令读取 Shodan 的缓存数据;它不会对目标进行扫描。`--active` 会针对每个匹配的平台发送一个 HTTP 请求。它不会暴力破解凭据、利用漏洞或在目标上持久化状态。tome 不知道任何没有被指示扫描的主机。仅将其指向您拥有或获得明确书面授权进行评估的主机。
# 我们的其他项目
- [aimap](https://github.com/nuclide-research/aimap) — AI/ML 基础设施指纹扫描器
- [scanner](https://github.com/nuclide-research/scanner) — 处于被动发现和深度枚举之间的主动 banner 阶段
- [VisorLog](https://github.com/nuclide-research/visorlog) — 发现分类账和摄取管道
- [VisorGraph](https://github.com/nuclide-research/visorgraph) — 证书跳板到操作者归因
- [BARE](https://github.com/nuclide-research/BARE) — 基于扫描结果的语义化漏洞利用模块排序
# 许可证
MIT。NuClide 工具链的一部分。联系方式:[nuclide-research.com](https://nuclide-research.com)标签:AI/ML平台, C2日志可视化, EVTX分析, Go, Ruby工具, 实时处理, 指纹识别, 日志审计, 资产测绘