内容
<div align="center">
<img src="docs/logo.svg" alt="marq" width="320">
### 您的通用网络助手
在安全领域提问,获取合适的工具和当前专业知识来回答问题 — 无论您选择本地还是前沿模型。
[](https://github.com/rhaist/marq/actions/workflows/ci.yml)
</div>
```text
"对该支付API进行威胁建模。" → 架构
"将我们的渗透测试发现映射到ISO 27001和SOC 2。" → GRC + 标准
"这个恶意软件样本到底在做什么?" → 恶意软件
"对 *.acme.com 运行授权的渗透测试。" → 进攻
"我们的GDPR + 美国法律下的违规通知时钟?" → 法规
"构建勒索软件事件运行手册。" → 事件响应 + 恢复能力
```
**约80种安全工具 + 约73种专家剧本(当前2026标准),在一个可审计的二进制文件中。** 您带来模型;marq带来工具和知识。
## 开始
```bash
# 获取marq(预构建镜像 — 或从源代码构建:docker build -t marq .)
docker pull ghcr.io/rhaist/marq && docker tag ghcr.io/rhaist/marq marq
```
不需要Docker Desktop — **OrbStack** (macOS)或 **Podman / Colima** (Linux)同样可以运行镜像([`docs/SETUP.md`](docs/SETUP.md))。
### 完全本地运行 — 推荐
您自己的无审查模型,在您的机器上:无需云,无拒绝,无数据离开主机。通过 [Pi](https://pi.dev/) 驱动 [llama.cpp](https://github.com/ggml-org/llama.cpp):
```bash
# 1. 模型 — 完整的标志很重要:--reasoning-format 保持思维链
# 在回复中,--jinja 使工具调用解析(参见 docs/SETUP.md §2a)
llama-server -hf HauhauCS/Gemma4-12B-QAT-Uncensored-HauhauCS-Balanced:Q4_K_M \
--host 127.0.0.1 --port 8080 -ngl 99 --ctx-size 65536 --jinja \
--reasoning-format deepseek \
-fa on -ctk q8_0 -ctv q8_0 \
--temp 0.6 --top-p 0.9 --top-k 64 --min-p 0.05 --repeat-penalty 1.1
# 2. marq 在一个长期运行的容器中绑定到您的 workspace
install -m 0755 pi/marq ~/.local/bin/marq && marq up ~/work
# 3. 一次性Pi配置 — llama.cpp提供商 + marq的系统提示 + 技能。
# 没有SYSTEM.md,一个小型模型会讲述而不是驱动marq。→ docs/SETUP.md §4
ln -sf "$PWD/pi/SYSTEM.md" ~/.pi/agent/SYSTEM.md
# 然后运行 `pi`
```
然后直接与它对话: _"设置扫描范围为 scanme.nmap.org 并运行快速 nmap,"_ 或 _"加载 nis2-dora 技能 — 我们的违规时钟是多少?"_ 完整的本地演练(Pi 提供商,技能,调整)→ [`docs/SETUP.md`](docs/SETUP.md#4-run-with-a-local-model-pi--the-marq-skill).
### 或回退到前沿模型
对于最重的推理(架构,GRC,事件响应报告),指向前沿MCP客户端的marq:
```bash
claude mcp add marq -- docker run --rm -i \
--security-opt no-new-privileges:true --cap-drop ALL \
--cap-add NET_RAW --cap-add NET_ADMIN --cap-add NET_BIND_SERVICE \
-v marq-audit:/var/log/marq -v marq-work:/work -e MARQ_OPERATOR=marq marq
```
任何MCP客户端都有效(Codex,Claude Desktop)→ [`docs/CLIENTS.md`](docs/CLIENTS.md).
(权限仅为SYN扫描所需;完整的配置包括 [`mcp.json.example`](mcp.json.example).)
> **授权使用.** 咨询/知识是开放的;扫描和利用是仅限授权并审计记录的 — [`docs/SECURITY.md`](docs/SECURITY.md).
---
## 您获得的内容
- **执行** — 约80个封装的Kali工具(侦察,网页,AD/内部网络,利用,凭证破解,恶意软件静态分析,OSINT),每个工具都经过审计记录和沙盒隔离;发现结果渲染到 `findings.md` / `.csv` (带有可选的CVSS + CWE)。
- **知识** — 约73个 `load_skill` 剧本,涵盖14个领域,根据当前(2026)标准进行网络研究,告诉模型 _如何_ 使用工具和 _什么_ 在没有工具的情况下:进攻,恶意软件,威胁情报,安全运营,架构,GRC,标准和欧盟/美国法规,CISO,红/紫队,恢复能力,人类因素,DevSecOps/隐私。
- **可审计设计** — 每个外部工具调用都通过一个通道:一个追加的,`fsync` 的审计日志,一个超时和一个输出上限。文件访问被沙盒隔离到 `/work`+`/tmp`,镜像以非root用户运行(推荐的运行参数也丢弃所有Linux权限 + `no-new-privileges`)。
<details>
<summary><b>完整的工具套件</b> — 基于Kali的约80个工具(点击展开)</summary>
| 类别 | 工具 |
| :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **侦察 / 网络** | `nmap` · `masscan` · `naabu` · `dnsx` · `dnsrecon` · `subfinder` · `httpx_probe` · `dns_lookup` · `whois_lookup` · `ssh_audit` · `fping_sweep` · `snmp_walk` · `snmp_check` · `snmp_brute` · `smtp_user_enum` · `smtp_test` · `asnmap` · `cdncheck` · `censys_search` |
| **OSINT — 组织/域名** | `theharvester` · `spiderfoot` · `shodan_host` · `shodan_search` · `gitleaks` · `trufflehog` · `gau_urls` · `exif_metadata` |
| **OSINT — 人员** | `sherlock` · `maigret_username` · `holehe_email` · `h8mail_breach` · `phoneinfoga` |
| **Web应用** | `nuclei` · `nikto` · `feroxbuster` · `katana` · `ffuf` · `gobuster_dir` · `arjun` · `whatweb` · `wafw00f` · `cmseek` · `wpscan` · `testssl` · `dalfox` · `sqlmap` · `jwt_tool` · `trivy` · `interactsh` · `paramspider` · `sstimap` |
| **利用** | `donut` · `hydra` · `searchsploit` |
| **AD / 内部网络** | `impacket_secretsdump` · `impacket_kerberoast` · `impacket_asreproast` · `impacket_psexec` · `impacket_wmiexec` · `impacket_ntlmrelayx` · `netexec` · `certipy_find` · `bloodhound_collect` · `evil_winrm` · `enum4linux` · `smb_enum` · `ldap_search` · `responder` · `nbtscan` |
| **凭证** | `john` · `hashcat` · `hash_identify` |
| **恶意软件研究** (静态) | `capa` · `yara_scan` · `olevba` · `bin_headers` |
| **文件** (沙盒隔离 `/work`,`/tmp`) | `list_dir` · `read_file` · `write_file` |
| **发现结果 & 作业** | `report_finding` · `render_report` · `list_jobs` · `job_status` |
| **知识** | `load_skill` |
| **逃生通道** (可选) | `run_shell` |
</details>
<details>
<summary><b>工作原理</b> — 一个注册表,两个前端(点击展开)</summary>
```
MCP 客户端 ──stdio JSON-RPC──▶ marq serve ┐
终端代理(Pi) ──bash──▶ pi/marq shim ─┤ 两者都击中同一个注册表
(docker exec) │
▼
registry.All() ── 一个工具列表
├─ 侦察 nmap, naabu, dnsx, masscan…
├─ OSINT theHarvester, spiderfoot, shodan, gitleaks…
├─ 人员 sherlock, maigret, holehe, phoneinfoga…
├─ 网页 nuclei, katana, feroxbuster, sqlmap…
├─ 利用 donut, hydra, searchsploit
├─ 内部网络 impacket, netexec, certipy, bloodhound, enum4linux…
├─ 凭证 john, hashcat, name-that-hash
├─ 恶意软件 capa, yara_scan, olevba, bin_headers
├─ 文件 read/write/list (沙盒隔离 /work)
└─ 额外 report_finding, render_report, list_jobs, load_skill
│
runner.Run ──▶ audit.jsonl (每个调用)
load_skill ──▶ 技能库(markdown,~73个剧本 / 14个领域)
```
每个执行工具都通过 `internal/runner/runner.go::Run` — 审计日志,超时和输出截断的单一通道。
</details>
---
## 文档
| 文档 | 内容 |
| :------------------------------------- | :------------------------------------------------------- |
| [`docs/SETUP.md`](docs/SETUP.md) | 每个操作系统的安装(macOS 和 Debian),两种运行模式 |
| [`docs/CLIENTS.md`](docs/CLIENTS.md) | 选择一个客户端/模型 — Claude Code,Codex,Pi + llama.cpp |
| [`docs/USAGE.md`](docs/USAGE.md) | 每个工具,环境变量,API 密钥,读取审计日志 |
| [`docs/SECURITY.md`](docs/SECURITY.md) | 法律/伦理基准,防护栏模型,强化 |
## 许可证
**GNU AGPLv3** — 见 [`LICENSE`](LICENSE). © 2026 marq 贡献者。免费软件;运行修改后的版本作为网络服务,您必须为用户提供其源代码。对于授权的安全测试和教育,**不提供保修** — 请负责任地使用。