Nicholas-Kloster/VisorGoose

GitHub: Nicholas-Kloster/VisorGoose

针对政府域名的多源 AI 基础设施发现工具,通过 CT 日志、Shodan、DNS 三路并行侦察暴露在公网的 Ollama 等 AI 服务并检测相关漏洞风险。

Stars: 1 | Forks: 1

[![Claude Code 友好](https://img.shields.io/badge/Claude_Code-Friendly-blueviolet?logo=anthropic&logoColor=white)](https://claude.ai/code) # VisorGoose **针对政府网络的多源 AI 基础设施发现工具。** VisorGoose 使用三个并行的输入源来发现政府 TLD 上暴露的 AI 服务(Ollama、Open WebUI):证书透明度日志、Shodan 和 DNS 解析。灵感来源于 [CISA 的 Untitled Goose Tool](https://github.com/cisagov/untitledgoosetool) —— 为 AI 基础设施 OSINT 进行了重新定位。 [NuClide](https://nuclide-research.com) AI-LLM-Infrastructure-OSINT 工具包的一部分。 ## 与 Claude Code 配合使用 Claude Code 可以驱动 VisorGoose 扫描,解释探测结果,并将发现链接到披露报告或漏洞利用路径中。 ``` Run `visorgoose scan --tld go.id --vpn-country id` and analyze the output. For each node flagged with TAKEOVER or CVE-2025-63389, describe the full exploitation chain: what an attacker can do, what evidence to capture as proof, and what the disclosure should include. ``` ``` I have a visorgoose-state.json with 40 nodes. Group them by sector and org_country. For government nodes with account_takeover == true, draft a disclosure email to ID-CERT with a structured finding summary. ``` ## 功能介绍 | 来源 | 方法 | 填补的空白 | |--------|--------|-------------| | **CT logs** (crt.sh) | `%.go.id` 证书透明度查询 | 发现 Shodan 从未扫描过的政府子域名 | | **Shodan** | `port:11434 hostname:".go.id"` | 实时的、已建立索引的 Ollama 实例 | | **DNS** | CT 主机名的 A 记录解析 | 连接 主机名 → IP | 收集完成后,将对每个 IP 进行以下探测: - **Ollama** (端口 11434):模型、系统提示、CVE-2025-63389、云代理接管 - 标签:`TAKEOVER`、`CVE-2025-63389`、`CLOUD`、`RAG`、`DISTILLED` ## 安装 ``` go install github.com/Nicholas-Kloster/visorgoose@latest ``` 或者从源码构建: ``` git clone https://github.com/Nicholas-Kloster/visorgoose cd visorgoose go build -o visorgoose . ``` ## 用法 ### 密度扫描 —— 节点集群分布在哪里? ``` export SHODAN_API_KEY=your_key visorgoose density ``` ### 全面政府网络扫描 ``` visorgoose scan --shodan-key $SHODAN_API_KEY --report report.md ``` ### 聚焦单一 TLD ``` visorgoose scan --tld .go.id --rotate-every 5 ``` ### 直接探测已知 IP ``` visorgoose probe 103.107.245.11 103.156.110.80 visorgoose probe 16.64.116.67 --json ``` ### 与上一次扫描进行对比 ``` visorgoose diff --prev visorgoose-state-2026-04-01.json ``` ### 从已保存的状态生成报告 ``` visorgoose report --out findings.md ``` ## VPN 防护 默认强制使用 VPN。VisorGoose 在扫描前会检查 Mullvad 状态,并可选择在探测批次之间轮换出口中继。 ``` # Mullvad 宕机时自动连接 visorgoose scan --auto-vpn # 每 5 次探测轮换出口中继 visorgoose scan --rotate-every 5 # 绕过 VPN 检查(不推荐) visorgoose scan --no-vpn ``` 路由使用阻断归因的出口:美国目标经由 NL/Amsterdam(荷兰/阿姆斯特丹)路由,中国目标经由 SE/Stockholm(瑞典/斯德哥尔摩)路由,依此类推。 ## 政府 TLD 涵盖 25 种模式:`.gov` `.mil` `.go.id` `.gov.br` `.gov.tw` `.gouv.fr` `.gob.mx` `.go.jp` `.gov.in` `.gov.au` `.gov.uk` `.gc.ca` `.gob.es` `.gov.cn` `.gov.za` `.go.kr` `.gov.sg` `.go.th` `.gob.ar` `.gov.my` `.gov.ph` `.gov.pk` `.gov.vn` `.gov.ng` `.gov.eg` ## 输出 状态以 JSON 格式持久化保存(`visorgoose-state.json`),包含首次发现/最近发现的时间戳,用于纵向追踪。报告采用 Markdown 格式,包含一个发现结果表格以及每个节点的详细信息。 ## 配套工具 - [aimap](https://github.com/Nicholas-Kloster/aimap) —— 深度 AI 服务指纹识别工具(36 种服务,26 个枚举器) - [AI-LLM-Infrastructure-OSINT](https://github.com/Nicholas-Kloster/AI-LLM-Infrastructure-OSINT) —— 案例研究仓库 ## 伦理与范围 VisorGoose 是一款以被动优先的发现工具。CT 日志查询和 DNS 解析是被动的。Ollama 探测(读取 `/api/tags`、`/api/version`)是对公开暴露服务的只读枚举。 主动漏洞利用(CVE-2025-63389 系统提示注入、云账户接管)需要明确的书面授权。VisorGoose 会测试这些漏洞,但不会进行利用。 发现的结果应披露给受影响的组织及其国家 CERT。 _NuClide Research · [nuclide-research.com](https://nuclide-research.com)_
标签:AI基础设施, C2日志可视化, CISA项目, CVE-2025-63389, DNS解析, ESC4, EVTX分析, Go语言, HTTP/HTTPS抓包, LLM评估, Mr. Robot, Mullvad VPN, Ollama, Open WebUI, OSINT, RAG安全, Red Canary, SOC工具, 互联网暴露面, 人工智能, 大模型安全, 子域名枚举, 安全合规, 实时处理, 密码管理, 开源项目, 态势感知, 指纹识别, 插件系统, 政府TLD, 政府网络安全, 无线安全, 日志审计, 未授权访问, 漏洞发现, 漏洞披露, 用户模式Hook绕过, 程序破解, 系统安全, 网络代理, 网络安全, 证书透明度, 资产测绘, 防守视角, 隐私保护