nuclide-research/tome

GitHub: nuclide-research/tome

tome 是一个 AI/ML 基础设施平台的 OSINT 挖掘引擎,通过内置规范化语料库提供平台档案查询、Shodan dork 生成和被动指纹识别能力。

Stars: 0 | Forks: 0

tome

技术型 OSINT 挖掘引擎。规范的 AI/ML 平台语料库。

release license go NuClide

功能安装说明命令平台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工具, 实时处理, 指纹识别, 日志审计, 资产测绘