Web 攻击面测绘工具集 -- velric-agent
ikooky
ikooky
Web安全工具库
2026年11月6日 09:41
河南
去阅读
===================================
免责声明
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,大家都要把工具当做病毒对待,在虚拟机运行。如有侵权请联系删除。个人微信:ivu123ivu
这一篇不讲打法,讲一个很小的问题: 侦察的结果怎么才能被别人验证 。安全圈的工具这几年越堆越多,脚本一抓一大把,真正稀缺的是「我说这里有问题,你照着这条命令再跑一遍,也能看到同样结果」。
velric-agent 就是冲着这件事做的。一个 无状态的 Web 攻击面测绘工具集 ,同一套代码给你两个出口:命令行,以及一个能挂进 Agent 的 MCP server。没有界面,没有数据库,产物全是文件。
第一次装完打开,会觉得有点空—— 没有侧边栏,没有仪表盘 ,只有一份命令清单。这可能就是它的态度:一个侦察工具不该有主页,它应该是一段可以被调用、被复算、被塞进别人流水线里的东西。
| 形态 | 怎么用 | 适合 |
|---|---|---|
| CLI | 一条命令一个动作,产物落到指定目录 | 手动排查、写进 CI、复跑验证 |
| MCP server | stdio 常驻,把 67 个工具挂给 Agent | 让 Agent 自己决定下一步查什么 |
67
工具契约
18
管道阶段
17.6k
行 TypeScript
版本 0.1.0,MIT 协议,Node 22 起。源码里 103 个 TS 文件、23 个测试文件。作者把 MCP 注册清单也一起提交了( server.json ,名字是 io.github.ikooky/velric-agent ),意味着它打算被当成标准 MCP 服务分发,而不是又一个私有脚本。
02 · REAL RUN
我在本机跑了一遍
npm install 加 tsc 编译,一共约 35 秒 ,然后我在本机起了个静态站点当靶子( 127.0.0.1:8099 ),放了几个人造文件:一个 .env 、一个 .git/HEAD 、一个登录表单、一个后台目录。全程本地,没有碰任何外部目标。
先看命令清单。一屏五十多条,从子域枚举到请求走私差分都在这。
— velric-agent help 的真实输出,本机终端截取
顺手说个不完美的地方: 命令名一长,右侧说明列就歪了 , perm-tree 、 auto 那几行挤成一坨。0.1.0 的粗糙感就在这种细节里,不影响用,但看得出赶工。
然后是敏感路径扫描。字典 68 条,全跑完 1.7 秒 。
— paths 命令:68 次探测、5 条命中,每条带状态码与响应指纹
这张图里有三个细节值得单独说。第一,它先做了一次 软 404 校准 ,把随机路径的响应记成基线(这里 404、335 字节),后面凡是长得跟基线一样的,一律不算命中——不然一堆站点会把任意路径都返回 200,扫出来的全是假阳性。第二,每条命中都附了一个 signature ,里面是状态码、Content-Type、响应体的 sha256、字节数、行数。第三,输出目录必须是绝对路径,我一开始给相对路径,直接被一个 invalid\_output\_root 挡了回来。
再看一键管道。这一步最能说明它的设计。
— auto 管道的前七个阶段,含两条如实记录的失败
注意第二条和第六条: subdomains 因为目标是 IP 直接 fail, capture\_runtime 因为我没装 Chromium 也 fail。它没有假装成功,也没有整条管道崩掉,而是 逐阶段记账、能跑的继续跑 。整条流水 15 秒走完,留下 15 条阶段记录、一份报告、两个证据 blob。
最后是报告。这是我最想给你看的东西。
— 管道自动生成的 report.md,摘要第一行写着「确认发现 0 个」
「确认发现:0 个。线索:2 个。」
它明明扫到了 .env 和 .git/HEAD ,却不肯把它们记成「确认」。因为一条发现要升级成确认,得有 可复现的验证动作 ,而这次我没有给出任何验证——所以两条都标成线索,还各自挂了一句 proof (unproven) ,直译过来是「当成线索,别当成结论」。这种自己给自己降级的工具不多见。
03 · DESIGN
三个不太一样的选择
线索和确认,分开记
绝大多数扫描器只输出一个「漏洞列表」,严重程度靠模板标签拍。velric 把结论分了两层: 没验证过的叫线索,验证过的才叫确认 。验证类工具是另一批命令——匿名与带凭证双探、录制流量按低权身份重放、参数差分、GraphQL 授权对比。它们跑出来的东西才具备升级资格。
证据是内容寻址的
这次跑完,目录里多了两个 .bin ,文件名不是 evidence-1 ,而是一串 sha256。好处很实际:同一个响应被两条不同发现引用时, 存一次就够了,也不会被悄悄改掉 。你把这个哈希拿去对,对不上就是被动过。证据绑定还有版本冲突拒绝和导出,整套东西是当成档案在管的。
断点续跑靠一个 JSON
没有数据库、没有服务端状态,所有进度都在 checkpoint.json 里,一条阶段一条时间戳。重跑时标记 ok 的直接跳过,加 --fresh 从头再来。 一个目录就是一次完整的 run ,拷走、压缩、丢给别人复算,都不依赖任何环境。这也是它敢叫自己「无状态」的底气。
04 · SURFACE
67 个工具,按需给
67 个工具全塞给模型,上下文先炸一半。所以它做了 按条件注册 :契约清单永远是完整的 67 条,但对外暴露多少,看环境变量。
三种注册档
full 档 67 个,目录完整
lean 档 63 个,隐藏 4 个内部簿记工具
白名单 VELRIC\_TOOLS 显式指定,覆盖上面两档
被 lean 档藏起来的四个是 asset\_graph 、 exploration\_graph 、 traffic\_query 、 finding\_retest 。它们由管道和 hunt 循环在进程内自己消费,不需要模型伸手。这个判断挺清醒: 工具不是越多越好,是越少误用越好 。
按用途粗分,它大致是这么几堆。
| 层次 | 数量 | 代表 |
|---|---|---|
| 资产与指纹 | 十余个 | 子域枚举、子域变形、端口、WAF 与安全头 |
| 静态侦察 | 十个左右 | bundle 收割、爬虫、路径字典、sourcemap |
| 运行时 | 五六个 | 无头浏览器录制、权限树、参数矩阵 |
| 验证 | 最厚的一堆 | 鉴权面测绘、越权重放、CORS、JWT、GraphQL |
| 平台 | 十来个 | 资产图、探索图、证据库、复测、导出 |
| 编排 | 五六个 | 一键管道、批量、run 对比、hunt 循环 |
05 · MCP
挂进 Agent 的两种吃法
配一段就行,任何支持 MCP 的客户端都能接。
mcp.json
{
\"mcpServers\": {
\"velric-agent\": {
\"command\": \"npx\",
\"args\": [\"-y\", \"velric-agent@latest\", \"mcp\"]
}
}
}
除了工具,它还挂了两个 resource( driver-playbook 和 workflow-guide )和一个 prompt。意思很明白: 方法论不占工具位 ,需要的时候再读,不必挤在工具列表里骗上下文。走 Agent 路线的那套 hunt 循环还带了三个硬停条件:轮次、花费、时长,超了直接停,不让你第二天早上发现账单一万块。
NOTE
默认请求重试 3 次。打真实目标时记得配 --rps 限速,否则一个慢站点会把重试放大成三倍流量。
如果你只是偶尔扫一个站, 它偏重了 ——十几条命令、五六个产物目录、还要自己备浏览器,不如直接开代理手工点。但如果你的活是 持续盯一批站点、结果要交给别人复核 ,那它的形态就对了:一次 run 一个目录,证据可校验,报告自己会降级,换台机器照样复算。
网盘下载链接(一定要在虚拟机运行):
后台回复:20261106获取下载链接,仅一天有效
·今 日 推 荐·
| --- |
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论