SuperAPI AI 工具集

hunt-metrics-exposure

安全与审计

查看项目

更新于 10-16 03:04

技能介绍

用途:针对使用现代可观测性框架(Go、.NET、Java、Node.js)的目标,排查被遗忘在鉴权之外的 /metrics、/health、/status 等端点。与业务数据泄露不同,指标泄露会暴露整体运行画像:使用的 AI 模型、活跃用户数、数据库连接耗尽情况、第三方服务依赖。

主要能力:

  1. 发现指标端点。设置 TARGET 后,对 metrics、health、status、ready、live、readyz、healthz、actuator/health、actuator/metrics、actuator/prometheus、Telescope、telescope、horizon、debug 等常见路径发起 curl 探测,输出 HTTP 状态码为 200 的路径及响应大小。命令示例:TARGET="https://target.com",循环中执行 curl --max-time 30 --connect-timeout 10 -sk -o /tmp/metrics_${ep}.txt -w "%{http_code}" "${TARGET}/${ep}"。
  2. 分析 Prometheus 指标。用 grep -c '^# HELP' 统计指标族数量;用 grep -i 检索 ai_/model/llm/openai/gemini/copilot(AI 模型使用)、db_pool/database/connection(数据库连接池)、stripe/openai/sendgrid/twilio/email(第三方依赖)、http_request/api_request/grpc_request(请求量与用户活跃)、circuit_breaker(熔断器状态)。
  3. 分析健康与状态端点。对 /actuator/health、/actuator/metrics、/actuator/env、/health、/api/health 使用 curl 加 python3 -m json.tool 格式化查看,/telescope/requests 可截取前 500 字节。

可获取的情报:ai_analyzer_output_total{model="gpt-5-mini"} 等标签揭示所用 AI 模型与用量;db_pool_idle_connections 揭示连接池规模与耗尽风险;circuit_breaker_state{client="stripe"} 揭示第三方依赖及健康状态;clinical_copilot_sse_active 揭示特定功能的实时用户数;http_requests_total 揭示请求量、高峰时段;app_version/build_info 揭示部署版本与构建时间。

使用方式与验证:确认 /metrics 返回以 # HELP 或 # TYPE 开头的 Prometheus 文本格式,或 /actuator/health 返回含组件状态的 JSON。若端点仅返回 {"status":"ok"},属误报(最小健康检查)。若 /actuator/env 或 /actuator/configprops 暴露,则升级为 CRITICAL(环境变量泄露)。

后续利用方向:AI 模型使用指标可转向 hunt-llm-ai;连接池过载指标指向 DoS 攻击面;Stripe/邮件熔断器状态形成依赖映射;可结合 hunt-schema-enumeration 构建完整目标画像。

限制与误报:仅暴露请求计数的 /metrics 属信息性;Spring Boot Actuator /actuator/metrics 本身为监控而设计,仅在泄露敏感数据(标签中含用户名、内网 IP)时才报告;无认证的 JMX 只有在可写(MBean 调用)时才算严重,只读 JMX 属信息性;/health、/status、/ready 设计上可公开,需确有内部数据泄露。