6.7 KiB
6.7 KiB
LLM Key Hunter
全网泄露 LLM API Key 搜索 & 验证工具 — 覆盖国际 + 中国 LLM 平台。
架构
llm-key-hunter/
├── llm-key-hunter.sh # 主入口,参数解析 + pipeline 调度
├── verify.sh # Key 验证模块 — 25 个 provider 调 API 确认 live
├── scan.sh # TruffleHog 深度扫描模块 — 扫 org/user 全 history
├── gist.sh # GitHub Gist 扫描模块 — 公开 gist 是泄露重灾区
├── patterns.conf # 正则指纹库 — 所有 LLM provider 的 key 格式
└── results/ # 输出目录
支持的 LLM Provider
国际平台
| Provider | Key 格式 | 验证 Endpoint |
|---|---|---|
| OpenAI | sk-... / sk-proj-... |
api.openai.com/v1/models |
| Anthropic | sk-ant-... |
api.anthropic.com/v1/models |
| Google Gemini | AIza... |
generativelanguage.googleapis.com |
| HuggingFace | hf_... |
huggingface.co/api/whoami-v2 |
| Groq | gsk_... |
api.groq.com/openai/v1/models |
| Replicate | r8_... |
api.replicate.com/v1/account |
| Together AI | 64-char hex | api.together.xyz/models |
| Mistral | 32-char alnum | api.mistral.ai/v1/models |
| Cohere | 40-char alnum | api.cohere.ai/v1/models |
| DeepSeek | sk- + 32 hex |
api.deepseek.com/v1/models |
| Perplexity | pplx-... |
api.perplexity.ai |
| OpenRouter | sk-or-... |
openrouter.ai/api/v1/models |
| Azure OpenAI | 32-char hex | (降级到 OpenAI 验证) |
中国平台
| Provider | Key 格式 | 验证 Endpoint | Auth |
|---|---|---|---|
| 火山引擎 Ark | UUID [0-9a-f]{8}-... |
ark.cn-beijing.volces.com/api/v3/models |
Bearer |
| 火山 Coding Plan | UUID (同上) | ark.cn-beijing.volces.com/api/coding/v1/models |
Bearer |
| 智谱 AI (ChatGLM) | APIKey.APISecret (dot) |
open.bigmodel.cn/api/paas/v4/models |
Bearer |
| 阿里云 DashScope | sk- + 32 chars |
dashscope.aliyuncs.com/compatible-mode/v1/models |
Bearer |
| Kimi (Moonshot) | sk- + 48 chars |
api.moonshot.cn/v1/models |
Bearer |
| MiniMax | 40+ char alnum | api.minimaxi.com/v1/models |
Bearer |
| 腾讯混元 | AKID... 或 alnum |
api.hunyuan.cloud.tencent.com/v1/models |
Bearer |
| 百度千帆 | 20-32 char alnum | qianfan.baidubce.com/v2/models |
Bearer |
| 讯飞星火 (Spark) | UUID:APISecret |
spark-api.xf-yun.com/v1/chat/completions |
HMAC |
| 讯飞星辰 (Coding Plan) | 32+ char alnum | maas-coding-api.cn-huabei-1.xf-yun.com/v2 |
Bearer |
| 零一万物 (01.AI) | sk- + 48 chars |
api.lingyiwanwu.com/v1/models |
Bearer |
| 阶跃星辰 (StepFun) | sk- + 48 chars |
api.stepfun.com/v1/models |
Bearer |
| 硅基流动 (SiliconFlow) | sk- + 48 chars |
api.siliconflow.cn/v1/models |
Bearer |
注: 豆包 (Doubao) 通过火山引擎 Ark 平台,key 格式同 VolcanoArk。 讯飞星火使用 HMAC 签名认证,无法简单 Bearer 验证,仅做格式校验。 讯飞星辰 Coding Plan 使用 OpenAI 兼容协议,Bearer auth,可直接验证。
快速开始
# 设置 GitHub token
export GH_TOKEN="ghp_your_token_here"
# 完整 pipeline: 广搜 → 提取 → 验证 (覆盖所有平台)
./llm-key-hunter.sh full -t ghp_xxx -v
# 只做 GitHub 全局广搜
./llm-key-hunter.sh broad -t ghp_xxx
# 深度扫描指定 org (trufflehog)
./llm-key-hunter.sh scan -o target-org -t ghp_xxx --deep
# 扫描公开 Gist
./llm-key-hunter.sh gist -t ghp_xxx
# 只验证已有候选 key
./llm-key-hunter.sh verify
# Raw 模式:跳过验证,只做正则匹配
./llm-key-hunter.sh full -t ghp_xxx --raw
Pipeline 流程
gh search code (广搜定位候选文件 — 60+ 查询覆盖国际+中国平台)
↓
candidates.json
↓
curl raw content (拉取文件内容)
↓
regex match (正则提取 key — 25 个 provider pattern)
↓
extracted_keys.txt
↓
API verify (逐个调 provider API 验证 — 25 个 verify 函数)
↓
live_keys.txt / dead_keys.txt
↓
trufflehog (对高价值目标深度补刀)
输出文件
总表
| 文件 | 说明 |
|---|---|
results/candidates.json |
广搜候选文件列表 |
results/extracted_keys.txt |
正则提取的候选 key |
results/live_keys.txt |
验证通过的 live key (总表) |
results/dead_keys.txt |
验证失败的 dead key |
results/verified_all.txt |
完整验证结果 |
results/trufflehog_results.json |
TruffleHog 深扫结果 |
results/gist_keys.txt |
Gist 扫描结果 |
按厂商分类的 Live Keys
验证通过的 key 会按厂商和地区分类存储:
results/live/
├── international/ # 国际平台
│ ├── openai.txt
│ ├── anthropic.txt
│ ├── google_gemini.txt
│ ├── huggingface.txt
│ ├── groq.txt
│ ├── deepseek.txt
│ └── ...
└── china/ # 中国平台
├── volcano_ark.txt # 火山引擎
├── zhipu_chatglm.txt # 智谱 AI
├── alibaba_dashscope.txt # 阿里云通义
├── kimi_moonshot.txt # Kimi
├── minimax.txt # MiniMax
├── tencent_hunyuan.txt # 腾讯混元
├── baidu_qianfan.txt # 百度千帆
├── iflytek_spark.txt # 讯飞星火
├── iflytek_coding_plan.txt # 讯飞星辰 Coding Plan
├── lingyiwanwu_01ai.txt # 零一万物
├── stepfun.txt # 阶跃星辰
└── siliconflow.txt # 硅基流动
每个文件格式: Provider|Key|SourceURL|Description
自定义正则模式
编辑 patterns.conf,格式为 Provider|Regex|Description:
MyProvider|mykey-[a-zA-Z0-9]{32}|Custom provider key
搜索查询覆盖
主脚本内置 60+ 条 GitHub code search 查询,覆盖:
- 文件类型:
.env,.py,.js,.ts,.sh,.cfg,.ini,.ipynb - 国际平台: OpenAI, Anthropic, Google, HuggingFace, Groq, Replicate 等
- 中国平台: 火山 Ark, 智谱, 阿里 DashScope, Kimi, MiniMax, 腾讯混元, 百度千帆, 讯飞, 零一万物, 阶跃星辰, 硅基流动
- 搜索策略: 既搜 key 前缀 (
sk-proj-,sk-ant-),也搜环境变量名 (ARK_API_KEY,DASHSCOPE_API_KEY),还搜 API endpoint URL
依赖
gh(GitHub CLI) — 必需curl— 必需jq— 必需trufflehog— scan 模式需要,自动安装
注意
- GitHub code search 每次最多 1000 条结果,脚本用 60+ 个查询变体覆盖
- 验证 key 会向 provider API 发真实请求,注意速率限制
--only-verified(trufflehog) 只输出实际验证通过的 key,误报率最低- 讯飞星火使用 HMAC 签名,无法简单验证,仅做格式校验
- 腾讯混元 key 格式灵活,可能有较高误报率