byfranke/sheep-analyze-cli
GitHub: byfranke/sheep-analyze-cli
这是一个命令行客户端,利用Sheep API对IP、域名、哈希等威胁指标进行AI驱动的分析,并提供结构化输出用于安全自动化。
Stars: 0 | Forks: 0
# Sheep Analyze 命令行工具
用于 Sheep API 的命令行客户端,专注于威胁指标 (IOC) 分析:IP、域名、文件哈希、URL 和 CVE。每个请求都经过威胁情报增强,并由 Sheep AI 模型响应,提供人类可读的叙述和适合 SOAR 的结构化负载。
**更多信息:** [分析网页](https://byfranke.com/pages/analyze.html) | [Sheep 文档](https://github.com/byfranke/sheep)
## 安装说明
### 前置条件
- Python 3.7 或更高版本
- pip
### 快速安装
```
curl -fsSL https://byfranke.com/analyze-cli-install | bash
```
### 从源代码安装
```
git clone https://github.com/byfranke/sheep-analyze-cli
cd sheep-analyze-cli
chmod +x analyze-cli.py setup.py install.sh
bash install.sh
python3 setup.py
```
安装程序会创建两个符号链接:`analyze`(规范名称)和 `analyze-cli`(为向后兼容保留的旧别名)。您可以根据喜好选择使用任何一个 — 下面的所有示例都使用 `analyze`。
## 配置
### 加密设置(推荐)
```
python3 setup.py
```
向导将:
- 询问您的 [API 令牌](https://sheep.byfranke.com/pages/store)
- 设置用于加密的主密码
- 将加密的令牌存储在 `~/.analyze/config.ini`
- 将解密的令牌缓存到 `/tmp`(模式为 `0600`,限定于当前 shell 会话),这样您每个终端只需输入一次主密码
### 一次性设置
```
analyze --token "YOUR_TOKEN" 185.220.101.45
```
或者通过环境变量:
```
export SHEEP_API_TOKEN="YOUR_TOKEN"
analyze 185.220.101.45
```
旧版变量 `ANALYZE_API_TOKEN` 仍被接受,但会显示弃用警告,并将在 v1.5 版本中移除。`SHEEP_API_TOKEN` 是所有其他 Sheep CLI 使用的同一个变量。
**存储:** 令牌使用 PBKDF2-SHA256(600,000 次迭代)加密,具有每次安装的随机盐值和 Fernet (AES-128 + HMAC-SHA256)。
**从 analyze-cli 1.2 升级:** 新的配置目录是 `~/.analyze/`。如果 `~/.analyze-cli/config.ini` 文件存在,CLI 仍会读取它,因此您可以无需重新运行设置即可升级。当您想要迁移时,请随时重新运行 `python3 setup.py`。
## 用法
### 基本用法
```
analyze 185.220.101.45 # IP (auto-detected)
analyze example.com # Domain
analyze d41d8cd98f00b204e9800998ecf8427e # MD5 hash
analyze https://suspicious-site.com/m # URL
analyze CVE-2021-44228 # CVE
```
### 使用的 Sheep 模型
每个 `/analyze` 调用均由 **Sheep Hunter** 模型提供服务。CLI 在此处不提供模型选择器。分析在设计上是有主见的,因此延迟、深度和计费在所有调用中保持一致。如果您需要更轻量级的 Scout 模型或更强大的 Sage 模型,请使用 `/ask` 接口(参见 [Sheep Ask CLI](https://github.com/byfranke/sheep-ask-cli)),那里暴露了模型选择器。
### 输出格式
```
analyze 8.8.8.8 # Pretty (default)
analyze 8.8.8.8 --output json # JSON, for automation / SOAR
analyze 8.8.8.8 --output table # Tabular summary
analyze 8.8.8.8 --output stix # STIX 2.1 Bundle (MISP / OpenCTI / TheHive)
```
美观输出会显示判定结果、置信度、提供服务的 Sheep 模型、执行摘要、关键发现、提取的 IoC、MITRE ATT&CK 技术、建议和参考文献。
### STIX 2.1 互操作性
`--output stix` 选项会在标准输出上生成 STIX 2.1 Bundle(OASIS 规范),可以直接输入到任何支持 STIX 的工具:MISP、OpenCTI、TheHive、Cortex Analyzers、ThreatConnect、Anomali 或您自己的 TAXII 集合。其映射关系为:
- **Identity** SDO — 标识生产者("Sheep AI")。
- **Indicator** SDO — 每个 IOC 一个,包含真实的 STIX 模式(`[ipv4-addr:value = '…']`, `[domain-name:value = '…']`, `[file:hashes.'SHA-256' = '…']`, `[url:value = '…']`)。
- **Vulnerability** SDO — 用于 CVE 目标,带有指向 NVD 的 `external_references`。
- **AttackPattern** SDO — 每个 MITRE ATT&CK 技术一个,带有指向 ATT&CK 注册表的 `external_references`。
- **Relationship** SDO — 将次要 IoC 和 ATT&CK 技术连接回主要指标(`related-to`)。
- **Note** SDO — 建议的操作,附加到主要指标。
- 判定结果(`malicious` / `suspicious` / `benign` / `inconclusive`)呈现为 STIX `indicator-type-ov` 标签。
- 置信度(0-100)传播到 Indicator / Vulnerability 的 `confidence` 字段。
快速管道到文件示例:
```
analyze 8.8.8.8 --output stix > ioc.json
# 通过 misp-stix-converter 推送至 MISP,通过其 STIX2 连接器推送至 OpenCTI,
# 通过 Cortex 推送至 TheHive 5,或使用 curl 推送至任何 TAXII 2.1 服务器。
```
Bundle 由 Sheep API 在服务端构建(通过 `/api/ai/analyze` 上的 `?format=stix` 查询参数),并通过同一调用流式返回。CLI 无需安装任何 STIX 依赖项 — Sheep 是该格式的唯一真相来源,每个客户总是获得相同的规范映射。
### 套餐和配额
```
analyze plan
```
显示您的套餐名称、状态、周期结束时间、您的套餐允许使用的模型,以及当前的令牌使用量/剩余预算。
### 会话管理
```
analyze --logout
```
仅清除当前终端缓存的解密令牌。下次调用时将再次提示输入主密码。
### 维护
```
analyze --help # Show help
analyze --version # Show version
analyze --setup # Re-run the interactive setup wizard
analyze --update # Pull the latest version from GitHub
```
## 常见错误
1. **API 令牌缺失** — 使用 `python3 setup.py`、`--token` 标志或 `SHEEP_API_TOKEN` 环境变量配置您的令牌。新令牌可在 https://sheep.byfranke.com/pages/store 获取。
2. **HTTP 401 — 认证失败** — 令牌缺失、过期或已吊销。使用新令牌重新运行 `python3 setup.py`。
3. **HTTP 403 — 套餐未涵盖此请求** — 在 https://sheep.byfranke.com/pages/store 升级。
4. **HTTP 429 — 超出速率限制** — 等待一分钟。如果经常发生,请升级您的套餐。
5. **连接错误** — 检查您的互联网连接。
6. **无效的 IOC 类型** — 确保 IOC 格式正确,或让自动检测器处理。
## 贡献
1. Fork 仓库
2. 创建功能分支
3. 进行更改
4. 运行测试
5. 提交拉取请求
## 安全考虑
- **切勿将 API 令牌提交**到版本控制。
- 使用设置向导(加密)或 `SHEEP_API_TOKEN` 安全存储令牌。
- 对配置文件保持限制性权限:
chmod 600 ~/.analyze/config.ini
- 会话令牌缓存位于 `/tmp/analyze-cli-sess--`,模式为 `0600`,限定于您当前的 shell 会话。运行 `analyze --logout` 可以提前清除它。
## 捐赠支持
此工具通过社区支持维护。帮助保持其活跃:
[](https://buy.byfranke.com/b/8wM03kb3u7THeIgaEE)
从终端进行 IOC 分析,由 Sheep API 驱动。
版本 2.2 | byFranke 2026
**更多信息:** [分析网页](https://byfranke.com/pages/analyze.html) | [Sheep 文档](https://github.com/byfranke/sheep)
## 安装说明
### 前置条件
- Python 3.7 或更高版本
- pip
### 快速安装
```
curl -fsSL https://byfranke.com/analyze-cli-install | bash
```
### 从源代码安装
```
git clone https://github.com/byfranke/sheep-analyze-cli
cd sheep-analyze-cli
chmod +x analyze-cli.py setup.py install.sh
bash install.sh
python3 setup.py
```
安装程序会创建两个符号链接:`analyze`(规范名称)和 `analyze-cli`(为向后兼容保留的旧别名)。您可以根据喜好选择使用任何一个 — 下面的所有示例都使用 `analyze`。
## 配置
### 加密设置(推荐)
```
python3 setup.py
```
向导将:
- 询问您的 [API 令牌](https://sheep.byfranke.com/pages/store)
- 设置用于加密的主密码
- 将加密的令牌存储在 `~/.analyze/config.ini`
- 将解密的令牌缓存到 `/tmp`(模式为 `0600`,限定于当前 shell 会话),这样您每个终端只需输入一次主密码
### 一次性设置
```
analyze --token "YOUR_TOKEN" 185.220.101.45
```
或者通过环境变量:
```
export SHEEP_API_TOKEN="YOUR_TOKEN"
analyze 185.220.101.45
```
旧版变量 `ANALYZE_API_TOKEN` 仍被接受,但会显示弃用警告,并将在 v1.5 版本中移除。`SHEEP_API_TOKEN` 是所有其他 Sheep CLI 使用的同一个变量。
**存储:** 令牌使用 PBKDF2-SHA256(600,000 次迭代)加密,具有每次安装的随机盐值和 Fernet (AES-128 + HMAC-SHA256)。
**从 analyze-cli 1.2 升级:** 新的配置目录是 `~/.analyze/`。如果 `~/.analyze-cli/config.ini` 文件存在,CLI 仍会读取它,因此您可以无需重新运行设置即可升级。当您想要迁移时,请随时重新运行 `python3 setup.py`。
## 用法
### 基本用法
```
analyze 185.220.101.45 # IP (auto-detected)
analyze example.com # Domain
analyze d41d8cd98f00b204e9800998ecf8427e # MD5 hash
analyze https://suspicious-site.com/m # URL
analyze CVE-2021-44228 # CVE
```
### 使用的 Sheep 模型
每个 `/analyze` 调用均由 **Sheep Hunter** 模型提供服务。CLI 在此处不提供模型选择器。分析在设计上是有主见的,因此延迟、深度和计费在所有调用中保持一致。如果您需要更轻量级的 Scout 模型或更强大的 Sage 模型,请使用 `/ask` 接口(参见 [Sheep Ask CLI](https://github.com/byfranke/sheep-ask-cli)),那里暴露了模型选择器。
### 输出格式
```
analyze 8.8.8.8 # Pretty (default)
analyze 8.8.8.8 --output json # JSON, for automation / SOAR
analyze 8.8.8.8 --output table # Tabular summary
analyze 8.8.8.8 --output stix # STIX 2.1 Bundle (MISP / OpenCTI / TheHive)
```
美观输出会显示判定结果、置信度、提供服务的 Sheep 模型、执行摘要、关键发现、提取的 IoC、MITRE ATT&CK 技术、建议和参考文献。
### STIX 2.1 互操作性
`--output stix` 选项会在标准输出上生成 STIX 2.1 Bundle(OASIS 规范),可以直接输入到任何支持 STIX 的工具:MISP、OpenCTI、TheHive、Cortex Analyzers、ThreatConnect、Anomali 或您自己的 TAXII 集合。其映射关系为:
- **Identity** SDO — 标识生产者("Sheep AI")。
- **Indicator** SDO — 每个 IOC 一个,包含真实的 STIX 模式(`[ipv4-addr:value = '…']`, `[domain-name:value = '…']`, `[file:hashes.'SHA-256' = '…']`, `[url:value = '…']`)。
- **Vulnerability** SDO — 用于 CVE 目标,带有指向 NVD 的 `external_references`。
- **AttackPattern** SDO — 每个 MITRE ATT&CK 技术一个,带有指向 ATT&CK 注册表的 `external_references`。
- **Relationship** SDO — 将次要 IoC 和 ATT&CK 技术连接回主要指标(`related-to`)。
- **Note** SDO — 建议的操作,附加到主要指标。
- 判定结果(`malicious` / `suspicious` / `benign` / `inconclusive`)呈现为 STIX `indicator-type-ov` 标签。
- 置信度(0-100)传播到 Indicator / Vulnerability 的 `confidence` 字段。
快速管道到文件示例:
```
analyze 8.8.8.8 --output stix > ioc.json
# 通过 misp-stix-converter 推送至 MISP,通过其 STIX2 连接器推送至 OpenCTI,
# 通过 Cortex 推送至 TheHive 5,或使用 curl 推送至任何 TAXII 2.1 服务器。
```
Bundle 由 Sheep API 在服务端构建(通过 `/api/ai/analyze` 上的 `?format=stix` 查询参数),并通过同一调用流式返回。CLI 无需安装任何 STIX 依赖项 — Sheep 是该格式的唯一真相来源,每个客户总是获得相同的规范映射。
### 套餐和配额
```
analyze plan
```
显示您的套餐名称、状态、周期结束时间、您的套餐允许使用的模型,以及当前的令牌使用量/剩余预算。
### 会话管理
```
analyze --logout
```
仅清除当前终端缓存的解密令牌。下次调用时将再次提示输入主密码。
### 维护
```
analyze --help # Show help
analyze --version # Show version
analyze --setup # Re-run the interactive setup wizard
analyze --update # Pull the latest version from GitHub
```
## 常见错误
1. **API 令牌缺失** — 使用 `python3 setup.py`、`--token` 标志或 `SHEEP_API_TOKEN` 环境变量配置您的令牌。新令牌可在 https://sheep.byfranke.com/pages/store 获取。
2. **HTTP 401 — 认证失败** — 令牌缺失、过期或已吊销。使用新令牌重新运行 `python3 setup.py`。
3. **HTTP 403 — 套餐未涵盖此请求** — 在 https://sheep.byfranke.com/pages/store 升级。
4. **HTTP 429 — 超出速率限制** — 等待一分钟。如果经常发生,请升级您的套餐。
5. **连接错误** — 检查您的互联网连接。
6. **无效的 IOC 类型** — 确保 IOC 格式正确,或让自动检测器处理。
## 贡献
1. Fork 仓库
2. 创建功能分支
3. 进行更改
4. 运行测试
5. 提交拉取请求
## 安全考虑
- **切勿将 API 令牌提交**到版本控制。
- 使用设置向导(加密)或 `SHEEP_API_TOKEN` 安全存储令牌。
- 对配置文件保持限制性权限:
chmod 600 ~/.analyze/config.ini
- 会话令牌缓存位于 `/tmp/analyze-cli-sess-标签:AMSI绕过, CVE分析, IOC分析, IP分析, Linux安全, Python, Sigma 规则, SOAR, URL分析, 人工智能, 哈希分析, 域名分析, 威胁情报, 威胁情报工具, 威胁检测, 威胁类型识别, 威胁级别评估, 安全建议, 开发者工具, 无后门, 用户模式Hook绕过, 结构化负载, 网络安全, 网络调试, 自动化, 逆向工具, 隐私保护