Atlas / Skills / ikooky / velric-agent

velric-agentCAUTION

skills/ikooky/velric-agent

Agent 自主渗透测试工具: SPA/MPA 接口枚举、运行时流量捕获、权限树还原、参数矩阵合并。

Verdict
CAUTION
Grade
B
Trust score
89 /100
Version
1
Hosts
2 documented
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Agent 自主渗透测试工具包 —— 让 Agent 独立完成 Web 应用的攻击面测绘。覆盖 SPA/MPA 的后端接口枚举、无头浏览器运行时流量录制、前端权限树重建与多样本参数矩阵聚合,提供 CLI 与 MCP server 双形态,可被任何 MCP 客户端直接驱动。仅用于已授权的安全测试。

功能

静态分析

  • harvest_static — SPA bundle 全量收割:抓取入口页 → 解析 webpack/Vite chunk manifest → 迭代下载全部 lazy chunk(不只 HTML 里引用的)→ 提取 API 路径、前端路由、其他路径。产出 api_static.txt / routes.txt / paths_other.txt / chunkmap.txt / js/。
  • extract_routes — 对已下载的 js/ 目录重新执行接口/路由提取(改了正则策略后重跑用)。
  • spider_mpa — MPA 爬虫:同源受限 BFS,抽取 ` 表单(真实端点+参数名)、内联 ajax URL、可达页面清单。产出 forms.txt / links.txt / api_inline.txt`。

运行时捕获

  • capture_runtime — 无头 Chromium 驱动 SPA,document-start 注入 hook(fetch/XHR/WS 全录制),过三道客户端门禁(渲染门/拦截器门/内容门),遍历路由记录真实 METHOD + URL + body + 响应样本。产出 runtime_api.json / api_merged.txt。

结构还原

  • build_perm_tree — 从收割的 JS 里解析 userRouteAuth 权限模块,解析 webpack 别名(x=o.KEY),按 code 前缀推断层级,生成全量放行的菜单/权限 stub。产出 permissions_all_stub.json / role_permissions_stub.json / permissions_tree.json 等。

参数合并

  • merge_params — 合并多份运行时录制样本,按端点聚合字段(body/query 区分),标注置信度(≥2 样本一致=high,单样本=medium)。单一样本永远不会被当成必填/可选的结论。

网络探测

  • dns_resolve — A/AAAA/CNAME 解析(≤50 hosts)。
  • http_probe — 单 URL 探测:状态码/标题/Server/尺寸/sha256,支持自定义 header、cookie、代理。

安装

要求 Node ≥ 22;capture_runtime 需要系统 Chromium(--chromium 或 VELRIC_CHROMIUM 指定)。

npm install -g velric-agent
# 或免安装运行
npx -y velric-agent 

CLI 用法

velric-agent dns-resolve example.com
velric-agent http-probe https://target/
velric-agent harvest https://target/ /tmp/recon
velric-agent extract-routes /tmp/recon/js /tmp/recon
velric-agent spider https://target/ /tmp/recon --cookie "session=..."
velric-agent runtime https://target/ /tmp/recon --chromium /usr/bin/chromium --wait 6000 --per-route 4000
velric-agent perm-tree /tmp/recon/js /tmp/recon
velric-agent merge-params /tmp/recon/param_samples.json /tmp/recon
ve
Read from source at commit 534a4beac6d6OBSERVED · 2026-10-13
02

Install

Commands as the repository documents them. They are shown, not run.

npm install -g velric-agent
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
cursormentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: velric-recon
description: Authorized web-app reconnaissance with velric-agent. Use when the task needs API surface discovery (endpoints, routes, params) on an authorized SPA or MPA target — static bundle harvest, headless runtime capture, or permission-tree rebuilding. Tools are stateless: each call takes explicit arguments and writes artifacts under a caller-supplied output_root.
metadata:
  version: "1"
---

# velric-agent recon

Stateless recon toolset for **authorized** targets. One CLI and one MCP server,
same core. Every tool call is independent: arguments in, work done, artifacts
under the caller's `output_root`, nothing remembered.

## Route the target first

Pick the entry tool from what the user supplied:

- **SPA** (empty shell + JS chunks): `harvest_static` first — it downloads the
  full chunk corpus and emits `api_static.txt` / `routes.txt`.
- **MPA** (server-rendered forms, no endpoint bundle): `spider_mpa` — forms
  with parameters are the real endpoints.
- **Live runtime surface** (methods/bodies a static pass cannot see):
  `capture_runtime` after static; needs a Chromium executable.
- **Enterprise admin with code-gated menus**: `build_perm_tree` over the
  harvested `js/` corpus to rebuild permissive menu stubs.
- **Single host sanity check**: `dns_resolve`, then `http_probe`.
- **Parameter field sets**: record samples (the runtime capture detail or any
  source), then `merge_params` — never conclude required/optional from one
  sample.

## Workflow

1. Classify: SPA or MPA? (`http_probe` the entry; look at content type and
   whether the HTML is a shell with `<script src>` chunks.)
2. Static first — it is the safety net when runtime is blocked:
   `harvest_static` (SPA) or `spider_mpa` (MPA).
3. Runtime to recover methods/bodies: `capture_runtime` with the entry URL;
   pass `routes` from the static `routes.txt` for deeper coverage.
   - Larger production SPAs (Grafana, dashboards, admin consoles) boot their
     first API burst **seconds** after the document loads: raise the wait
     (`capture_runtime` `waitMs` / CLI `--wait 6000-8000`, `perRouteMs` /
     `--per-route 4000-6000`) or the capture reports few/zero calls.
   - Custom API prefixes (Algolia `/1/indexes/`, SaaS `/v2/`, `/internal/`
     variants) are not matched by the default pattern: pass an explicit
     `apiPattern` (MCP) / `--api-pattern '<re>'` (CLI) to record them.
4. If module pages stay blank behind permission gates: `build_perm_tree`, feed
   its stubs back into `capture_runtime` via `stubs`, re-run.
5. Merge parameters: collect `param_samples.json` entries, `merge_params`.
6. Report honestly: counts, uncovered modules, and which pass produced what.

## Boundaries

- Recon only: enumerate paths, methods, params, routes. No exploitation.
- Defeat of the three client gates (render/interceptor/content) uses client-side
  stubs and mock responses only; outbound requests are recorded as-is.
- Empty data / blank tables under stubs are expected — do not pivot to real
  credential attempts.
- Every conclusion names its source pass (static / runtime / merged) and its
  coverage limits.

## Read only the relevant reference

- Gate theory, stub tiers, and per-target tuning:
  [references/three-gates.md](references/three-gates.md)
- Artifact inventory and merge semantics:
  [references/artifacts.md](references/artifacts.md)
05

Trust audit

CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (6 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (3)

HIGHNetwork egress · net.tls_off · CWE-200, CWE-319
src/adapters/http.ts:49
connect: { rejectUnauthorized: false },
Why it matters. certificate verification is disabled
Fix. leave verification on
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/domain.test.ts:76
expect(() => new Function(script)).not.toThrow();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
undici, @modelcontextprotocol/client, @types/node, @types/write-file-atomic, typescript, vitest
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-13 · audit v0.4.1 · source sha 534a4beac6d6full audit observations/trust-audit/skill/ikooky__velric-agent.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-13534a4beac6d6CAUTIONB89first audit
07

Questions

What does the velric-agent skill do?

Agent 自主渗透测试工具: SPA/MPA 接口枚举、运行时流量捕获、权限树还原、参数矩阵合并。

Is velric-agent safe to install?

With care. The audit graded it B (89/100) and found 3 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can velric-agent access on my machine?

The audit observed that it reaches the network. Each of those is consistent with what it says it does. Secrets in the source: none found.

Which assistants does velric-agent work with?

Its documentation mentions claude-code and cursor. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (534a4beac6d6), read on 2026-10-13. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement