SuperAPI AI 工具集

hunt-grpc

安全与审计

查看项目

更新于 10-27 02:31

技能介绍

hunt-grpc 是一个面向 gRPC 服务的安全测试技能资料,定位为教学或经授权的安全评估用途。资料开头明确要求:使用者必须获得系统所有者明确、书面的许可,禁止未授权使用;在运行任何探测、利用、更改、持久化、数据提取或尝试获取凭据的命令前,必须通过强制确认关卡——让用户在对话中说明确切目标 URL、IP、账户或资源,确认书面授权与允许范围,展示具体命令及预期效果,并等待明确确认。未确认前应保持只读,仅提供防御性指导,并优先使用沙箱、一次性虚拟机或受控实验室。

主要能力按阶段组织:第一阶段为指纹与端口发现,使用 nmap 扫描常见 gRPC 端口,用 openssl 检查 ALPN 是否协商 h2,并通过向任意路径发送 HTTP/2 POST 观察 grpc-status 尾随头判断是否为 gRPC 服务。第二阶段为通过反射枚举服务,使用 grpcurl list/describe 列出并描述注册服务和方法,可导出服务目录进行筛选;反射关闭时仍可通过猜测方法名或使用泄露的 .proto 重建描述符集后以 -protoset 调用。第三阶段为无认证方法调用测试,针对敏感方法发送无认证元数据请求,并区分 gRPC 状态码 OK、Unauthenticated(16)、PermissionDenied(7)、Unimplemented(12)、InvalidArgument(3) 的含义。第四阶段为认证与信任边界绕过,包括伪造 alg=none JWT、测试后端信任代理注入的 x-user-id、x-tenant-id 等身份头,并强调必须分别验证直连后端端口与经公共代理转发两种情况。第五阶段为 proto 文件与 schema 发现,尝试探测代理暴露的描述符或 swagger 路径,并在代码托管平台搜索 proto 定义,再用 protoc 重建描述符集。第六阶段为 gRPC-Web、grpc-gateway 与 Connect 的 JSON 转码攻击,说明如何构造带长度前缀的 gRPC-Web 帧、调用 grpc-gateway 的 REST 映射路由以及 Connect 协议的普通 JSON 请求。第七阶段涉及 HTTP/2 Rapid Reset DoS(CVE-2023-44487),资料明确 DoS 在绝大多数项目中不在授权范围,必须获得明确书面许可并约定目标与时间窗口,且强调 ghz/h2load 是负载基准工具而非 rapid-reset 测试工具,不能用来证明该漏洞。

工具方面列出 grpcurl、grpcui、protoc 与 protoscope、buf,以及仅限授权场景的 rapidresetclient,并说明其用途。资料还提供漏洞链表示例,将反射开启、无认证管理方法、代理未剥离身份头、可枚举 id 的 IDOR、转码路由重新暴露内部 RPC、明文 h2c、proto 泄露等与影响级别对应。验证部分强调误报纪律:以 grpc-status 是否为 0 判断成功,不能仅凭响应非空;反射与健康端点常为有意公开,不应单独报告为缺少认证;需区分“无认证”与“该方法本就不需要认证”,通过认证前后状态差异证明问题;说明代理与后端可达性的区别;对盲测场景建议使用带外交互确认;DoS 需授权且需版本可验证。资料同时列出相关技能如 hunt-idor、hunt-api-misconfig、hunt-auth-bypass、hunt-tls-network、hunt-ssrf、cloud-iam-deep。适用场景为经授权的 gRPC 服务安全评估与教学实验;限制是必须书面授权、命令示例为历史工具形态需核对所选版本帮助与 schema、HTTP 状态/内容类型不能单独证明有效 gRPC 帧、真实用户迭代与秘密请求不可作为默认证明。