mlab-sh/mlab-cli

GitHub: mlab-sh/mlab-cli

Stars: 1 | Forks: 0

# mlab-cli `mlab` is the official command-line client for the [mlab.sh](https://mlab.sh) threat-intelligence platform and its companion CVE API at [vuln.mlab.sh](https://vuln.mlab.sh). It lets you scan domains, look up IPs, analyse files, inspect SSL certificates, check cryptocurrency addresses, and search the CVE database — all from a single keyboard-driven tool with pretty terminal output or raw JSON for scripting. $ mlab scan domain example.com $ mlab cve detail CVE-2024-3094 $ mlab limits ## Installation ### Homebrew (macOS & Linux) brew tap mlab-sh/mlab-cli https://github.com/mlab-sh/mlab-cli brew install mlab ### From a release archive Download the right tarball for your platform from the [releases page](https://github.com/mlab-sh/mlab-cli/releases) and drop the binary into a directory on your `PATH`: tar xzf mlab-darwin-arm64.tar.gz sudo mv mlab /usr/local/bin/ Pre-built archives are published for: - `mlab-darwin-arm64` — macOS Apple Silicon - `mlab-darwin-amd64` — macOS Intel - `mlab-linux-amd64` — Linux x86_64 (glibc) - `mlab-linux-arm64` — Linux aarch64 (glibc) ### From source git clone https://github.com/mlab-sh/mlab-cli cd mlab-cli cargo install --path . Requires Rust 1.74+. ## Authentication The mlab.sh endpoints require an API key. Generate one from your account at and run: mlab login The key is stored in `~/.mlab/conf.yml`. You can verify it with: mlab whoami The CVE endpoints on `vuln.mlab.sh` are public and require no authentication. ## Commands ### `mlab scan` — launch a scan | Sub-command | Endpoint | Description | |---|---|---| | `scan domain ` | `POST /api/v1/scan/domain` | Launch a full domain scan, poll until completion, render the report | | `scan ip ` | `GET /api/v1/scan/ip` | Geo, ASN and threat intel for an IPv4/IPv6 address | | `scan file ` | `POST /api/v1/upload/file` | Upload a file (≤ 10 MB) for analysis | | `scan crypto
` | `GET /api/v1/scan/crypto` | Threat intel for a blockchain address (`--chain eth/btc/...`) | Common flags: - `--json` — emit raw JSON (good for piping into `jq`) - `--no-follow` (domain only) — fire the scan and exit immediately ### `mlab status` — check progress mlab status domain example.com ### `mlab results` — fetch finished results mlab results domain example.com mlab results file ### `mlab ssl` — SSL certificate details mlab ssl example.com ### `mlab limits` — quota inspection 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 search (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 All `cve` commands accept `--json`. The detail view shows CVSS score & vector, EPSS probability, CISA KEV status, weaknesses (CWE) and references. ## Global flags | Flag | Description | |---|---| | `--hostname ` | Override the mlab.sh API host (default `https://mlab.sh`) | | `--cve-hostname ` | Override the CVE API host (default `https://vuln.mlab.sh`) | Useful for self-hosted deployments or staging environments. ## Configuration file `~/.mlab/conf.yml`: hostname: https://mlab.sh api_key: You can edit it by hand; `mlab login` will rewrite it. ## Examples Scan a domain and dump the JSON report into a file: mlab scan domain example.com --json > example.json List the 5 highest-scoring CVEs published last week: mlab cve latest --json | jq '.cves | sort_by(-.cvss_score) | .[:5] | .[].id' Quick check that you have crypto quota left: mlab limits crypto --raw ## Releases Tagged commits (`v*`) trigger a GitHub Actions build that produces: - Static-TLS binaries for the four supported targets, packaged as `.tar.gz` - A GitHub Release with auto-generated notes and the tarballs attached - An auto-bumped [`Formula/mlab.rb`](Formula/mlab.rb) committed back to `main`, so `brew upgrade mlab` picks the new version up on the next refresh To cut a release: # bump version in Cargo.toml, commit, then: git tag v0.2.0 git push origin v0.2.0 You can also trigger the workflow manually from the Actions tab. ## License Apache-2.0 — see [LICENSE](LICENSE).
标签:通知系统