mlab-sh/mlab-cli
GitHub: mlab-sh/mlab-cli
mlab.sh 威胁情报平台的官方命令行客户端,提供域名扫描、IP 查询、文件分析、SSL 检查、加密货币地址查询和 CVE 搜索等一体化终端工具。
Stars: 1 | Forks: 0
# mlab-cli
`mlab` 是 [mlab.sh](https://mlab.sh) 威胁情报平台及其配套 CVE API(位于 [vuln.mlab.sh](https://vuln.mlab.sh))的官方命令行客户端。
它允许你扫描域名、查询 IP、分析文件、检查 SSL 证书、检查加密货币地址以及搜索 CVE 数据库——所有这些都可以通过一个键盘驱动的工具完成,并提供美观的终端输出或用于脚本编写的原始 JSON。
```
$ mlab scan domain example.com
$ mlab cve detail CVE-2024-3094
$ mlab limits
```
## 安装说明
### Homebrew (macOS & Linux)
```
brew tap mlab-sh/mlab-cli https://github.com/mlab-sh/mlab-cli
brew install mlab
```
### 从发布归档文件安装
从[发布页面](https://github.com/mlab-sh/mlab-cli/releases)下载适合你平台的正确 tarball,并将二进制文件放入你 `PATH` 中的目录:
```
tar xzf mlab-darwin-arm64.tar.gz
sudo mv mlab /usr/local/bin/
```
为以下平台提供预构建归档:
- `mlab-darwin-arm64` — macOS Apple Silicon
- `mlab-darwin-amd64` — macOS Intel
- `mlab-linux-amd64` — Linux x86_64 (glibc)
- `mlab-linux-arm64` — Linux aarch64 (glibc)
### 从源码安装
```
git clone https://github.com/mlab-sh/mlab-cli
cd mlab-cli
cargo install --path .
```
需要 Rust 1.74+。
## 身份验证
mlab.sh 端点需要 API key。在 的账户中生成一个,然后运行:
```
mlab login
```
该密钥存储在 `~/.mlab/conf.yml` 中。你可以使用以下命令进行验证:
```
mlab whoami
```
`vuln.mlab.sh` 上的 CVE 端点是公开的,无需身份验证。
## 命令
### `mlab scan` — 启动扫描
| 子命令 | 端点 | 描述 |
|---|---|---|
| `scan domain ` | `POST /api/v1/scan/domain` | 启动全域名扫描,轮询直到完成,并渲染报告 |
| `scan ip ` | `GET /api/v1/scan/ip` | IPv4/IPv6 地址的地理位置、ASN 和威胁情报 |
| `scan file ` | `POST /api/v1/upload/file` | 上传文件(≤ 10 MB)进行分析 |
| `scan crypto ` | `GET /api/v1/scan/crypto` | 区块链地址的威胁情报(`--chain eth/btc/...`) |
常用标志:
- `--json` — 输出原始 JSON(适合通过管道传递给 `jq`)
- `--no-follow`(仅限域名)— 触发扫描并立即退出
### `mlab status` — 检查进度
```
mlab status domain example.com
```
### `mlab results` — 获取已完成的结果
```
mlab results domain example.com
mlab results file
```
### `mlab ssl` — SSL 证书详情
```
mlab ssl example.com
```
### `mlab limits` — 配额检查
```
mlab limits # show all (domain, ip, file, crypto)
mlab limits domain # one scan type
mlab limits ip --raw # raw number, easy to script
```
### `mlab cve` — CVE 搜索 (vuln.mlab.sh)
```
mlab cve search openssl --severity HIGH
mlab cve search "remote code execution" --date-start 2025-01-01 --exact
mlab cve detail CVE-2024-3094
mlab cve latest
```
所有 `cve` 命令都接受 `--json`。详细视图显示 CVSS 分数和向量、EPSS 概率、CISA KEV 状态、弱点 (CWE) 以及参考链接。
## 全局标志
| 标志 | 描述 |
|---|---|
| `--hostname ` | 覆盖 mlab.sh API 主机(默认为 `https://mlab.sh`) |
| `--cve-hostname ` | 覆盖 CVE API 主机(默认为 `https://vuln.mlab.sh`) |
对于自托管部署或预发环境非常有用。
## 配置文件
`~/.mlab/conf.yml`:
```
hostname: https://mlab.sh
api_key:
```
你可以手动编辑它;`mlab login` 将会重写它。
## 示例
扫描域名并将 JSON 报告转储到文件中:
```
mlab scan domain example.com --json > example.json
```
列出上周发布的评分最高的 5 个 CVE:
```
mlab cve latest --json | jq '.cves | sort_by(-.cvss_score) | .[:5] | .[].id'
```
快速检查你是否还有加密货币配额:
```
mlab limits crypto --raw
```
## 发布
带有标签的提交(`v*`)会触发 GitHub Actions 构建,该构建将生成:
- 针对四个受支持目标的 Static-TLS 二进制文件,打包为 `.tar.gz`
- 一个包含自动生成说明和附加 tarball 的 GitHub Release
- 自动提升版本的 [`Formula/mlab.rb`](Formula/mlab.rb) 提交回 `main`,
以便在下次刷新时通过 `brew upgrade mlab` 获取新版本
发布新版本:
```
# 更新 Cargo.toml 中的版本,提交,然后:
git tag v0.2.0
git push origin v0.2.0
```
你也可以从 Actions 选项卡手动触发该工作流。
## 许可证
Apache-2.0 — 参见 [LICENSE](LICENSE)。
标签:GitHub, Rust, 动态分析, 可视化界面, 威胁情报, 安全合规, 实时处理, 密码管理, 开发者工具, 漏洞查询, 网络代理, 网络信息收集, 网络流量审计, 通知系统