Nicholas-Kloster/VisorGraph
GitHub: Nicholas-Kloster/VisorGraph
一款基于 Go 和 gVisor 沙箱的高性能基础设施侦察引擎,在零信任沙箱保护下实现大规模攻击面发现与被动内部拓扑泄露。
Stars: 0 | Forks: 0
高性能、沙箱化的 Google 规模基础设施测绘。
## 🚀 超强特性 ### ⚡ 大规模并发 (Go 引擎) VisorGraph 的引擎采用响应式 Goroutine Worker Pool 构建,突破了 Python GIL 的限制。 - **扩展性:** 高效管理 **10,000+ 并发 Worker**。 - **控制力:** 原生支持 **速率限制** (`-rps`),防止 IP 被封禁和触发 WAF。 - **实时性:** 输出 **JSONL 流**,用于实时图谱更新和轻松实现工具链式调用。 ### 🛡️ 原生 OCI 沙箱 **VisorGraph 是首个实现原生 OCI 兼容沙箱的开源侦察工具。** - **防护盾:** 主动探测(TLS、HTTP、L7 握手)通过 **gVisor (`runsc`)** 进行编程式编排。 - **零信任侦察:** 不受信任的已发现端点被隔离在沙箱“气泡”中,保护研究人员免受 SSRF、恶意回调和漏洞攻击载荷的威胁。 ### 🧠 漏洞情报 VisorGraph 直接集成了 **Google Go 漏洞数据库 (OSV)**。 - **精准度:** 自动指纹识别基于 Go 的基础设施(Ollama、vLLM、LocalAI 等)。 - **智能分析:** 执行实时可达性分析,在已发现的二进制文件中识别 *真正可利用* 的 CVE。 ## 🏗️ 架构 | 组件 | 技术 | 职责 | | :--- | :--- | :--- | | **引擎** | Go 1.22 + Goroutines | 高速任务编排 | | **防护盾** | gVisor (`runsc`) | 原生 OCI 沙箱 | | **大脑** | Google OSV API | 精准的漏洞情报 | | **图谱** | 基于指针的 Graph | 快速的关系映射与去重 | ``` cmd/visorgraph/ CLI entrypoint internal/ engine/ Dispatcher + fixed-point loop (goroutine pool + inFlight atomic) graph/ RWMutex pointer graph — UpsertNode is atomic check+insert probe/ ProbeFunc registry: ct_logs, tls_clienthello, http_head, ... vulncheck/ OSV REST API + govulncheck integration sandbox/ MITM/intercept detection + gVisor runsc OCI harness exposure/ Rule-based exposure classifier (legacy/mgmt/accidental/intended) stream/ Thread-safe JSONL encoder l7/ Raw TCP probe ladder + cloud-provider signature matching budget/ Hard caps: cost, wallclock, /24, ASN types/ Seed, Node, Edge, Finding — typed string enums throughout ``` ## 🛠️ 安装与设置 VisorGraph 以单一静态二进制文件的形式分发。无需 `pip install`,无需 `venv`,零运行时依赖。 ``` # Clone 仓库 git clone https://github.com/Nicholas-Kloster/VisorGraph cd VisorGraph # 自动化环境设置(安装 gVisor 和 Go deps) make setup-deps # 构建 6.7MB 静态 binary make build ``` ## 📊 用法 **高速发现:** ``` ./bin/visorgraph -domain target.com -workers 1000 -rps 50 ``` **安全的主动侦察 (沙箱化):** ``` ./bin/visorgraph -ip 1.2.3.4 -sandbox-check ``` **实时链式调用:** ``` ./bin/visorgraph -domain example.com | grep "finding" > findings.jsonl ``` ## 🔍 真实案例:以未经身份验证的 Prometheus 作为内部拓扑 Oracle 这就是 VisorGraph 能做到而端口扫描器做不到的事情。 **输入:** 一个在 80 或 443 端口上没有开放端口的单一 IP。 ``` ./bin/visorgraph -ip 34.18.94.178 -no-stream ``` **VisorGraph 的发现:** Prometheus 探测器在 `:9090` 端口上检测到了一个未经身份验证的 Prometheus 实例。从那里开始,Prometheus API 成为了一个**被动 oracle** —— 没有向任何内部 IP 发送数据包: ``` [service] 34.18.94.178 service: prometheus 2.22.2 scrape_targets_count: 197 lifecycle_enabled: true ← /-/quit and /-/reload exposed (DoS vector) k8s_namespaces: ars, ars-v2, ars-core-api-reports, iam, external-secrets, falcon-kac, falcon-system, kube-system, monitoring, common ingress_domains: a112.appranix.net, a112-signin.appranix.net, a112-monitoring.appranix.net, a112-external-hooks.appranix.net exposure_reason: unauthenticated Prometheus monitoring plane exposed to internet; /-/quit and /-/reload DoS endpoints active; leaks topology of 195 internal endpoints across RFC-1918 space [domain] a112.appranix.net ← org attributed: Appranix (cloud BCDR vendor) [domain] a112-signin.appranix.net [domain] a112-monitoring.appranix.net [domain] a112-external-hooks.appranix.net [domain] appranix.net ← discovered via TLS SAN follow-on probe ``` **在不触及任何内部 IP 的情况下泄露的内部拓扑:** - K8s API server:`10.30.0.17:443` - 跨 `10.30.0.x` + `10.30.15.x` 的 17 个 GKE 节点 —— kubelet 只读端口 `:10255` 全部开启 - Pod 网络:`10.194.x.x` —— Istio sidecar mesh + Spring Boot actuators - Cassandra 集群:`10.21.x.x`(独立的 VPC) - ZooKeeper:与 Cassandra 位于同一子网 - 完整的容器清单:60+ 个命名服务,包括多云发现 Worker (AWS/Azure/GCP)、IAM、保护控制器、Hazelcast、Redis、PostgreSQL 每服务池 **调用链:** `IP` → Prometheus oracle → 内部拓扑 + 入口主机名 → TLS 后续跟进 → 父域名 → **单次运行中的组织归属**。 这是一类 nmap 完全会错过的发现。每当 VisorGraph 遇到 IP 或域名时,Prometheus 探测器就会自动运行 —— 无需任何标志。 ## ⚙️ 标志 | 标志 | 默认值 | 描述 | | :--- | :--- | :--- | | `-ip` | — | 种子 IP 地址 | | `-domain` | — | 种子 FQDN | | `-workers` | 256 | Goroutine 池大小 | | `-rps` | 0 (无限制) | 所有探测的最大请求数/秒 | | `-no-active` | false | 禁用主动探测(仅被动模式) | | `-sandbox-check` | false | 在扫描前检测 MITM/拦截 | | `-no-stream` | false | 抑制 JSONL 流;仅输出最终图谱 | ## 🤝 安全与道德 VisorGraph 是为安全研究人员和基础设施工程师构建的。原生沙箱旨在保护**用户**,但引擎的高速意味着您应始终尊重目标系统的 `Rate Limit` 及其服务条款。 ## 📜 许可证 MIT License。由 **Nicholas Kloster** 构建。标签:ASM, EVTX分析, Go Vuln DB, Go语言, gVisor, OSV, Vercel, 图引擎, 基础设施映射, 子域名收集, 安全侦察, 实时处理, 密码管理, 插件系统, 数据展示, 数据统计, 无线安全, 日志审计, 时序数据库, 沙箱, 程序破解, 端口扫描, 红队, 网络安全, 网络安全审计, 隐私保护