gl0bal01/dorkhound
GitHub: gl0bal01/dorkhound
一款基于 Go 的 OSINT 工具,专为 TraceLabs CTF 和失踪人员调查设计,用于生成 Google Dork、直接档案 URL 并通过交互式仪表板管理调查线索。
Stars: 1 | Forks: 0
# dorkhound — TraceLabs CTF 的 OSINT 调查工具包
[](https://opensource.org/licenses/MIT)
[](https://go.dev/)
[](https://github.com/gl0bal01/dorkhound/actions/workflows/ci.yml)
[](https://github.com/gl0bal01/dorkhound)
[](https://www.tracelabs.org/)
[](https://github.com/gl0bal01/dorkhound)
[](https://goreportcard.com/report/github.com/gl0bal01/dorkhound)
[](https://pkg.go.dev/github.com/gl0bal01/dorkhound)
dorkhound 生成 340 多条 OSINT dork 查询、直接档案 URL 和反向图片搜索链接,涵盖 25 个类别,旨在加速失踪人员调查和 TraceLabs CTF 比赛。你只需提供姓名(以及可选的邮箱、电话、用户名、照片或完整案件文件);dorkhound 将生成一个按排名排序的搜索 URL 和直接端点列表,你可以在交互式仪表板中打开并分类。单一二进制文件,零运行时依赖,跨平台。
## 安装
三种方式:
```
# 选项 1:go install
go install github.com/gl0bal01/dorkhound/cmd/dorkhound@latest
# 选项 2:download a pre-built binary
# 见:https://github.com/gl0bal01/dorkhound/releases
# 选项 3:build from source
git clone https://github.com/gl0bal01/dorkhound.git
cd dorkhound
make build
```
要求:Go 1.25+(仅限选项 1 和 3)。
## 快速开始
```
# 简单:仅 name
dorkhound --name "Jane Doe"
# 来自 YAML 的丰富示例
dorkhound --case examples/full.yaml --dashboard
# TraceLabs 提交草稿
dorkhound --case case.yaml --export tracelabs -o submission.md
```
## TraceLabs CTF 工作流
1. **接收简报** — 主办方提供姓名、大致年龄、最后已知位置和照片 URL。
2. **填充案件文件** — 复制 `examples/tracelabs.yaml`,填写四个字段,保存为 `case.yaml`。
3. **启动仪表板** — `dorkhound --case case.yaml --dashboard`。本地 Web UI 将在你的浏览器中打开。
4. **分类** — 使用过滤条聚焦于高信号类别(图片、用户名、直接档案)。仪表板会在会话之间将备注和证据字段持久化到 localStorage。
5. **以此展开** — 当你发现新的账号、邮箱或电话号码时,将它们添加到 `case.yaml` 并重新运行。每个新的标识符都会显著扩展 dork 语料库。
6. **导出** — `dorkhound --case case.yaml --export tracelabs -o submission.md` 生成一个适用于 TraceLabs flag 提交的检查清单。
仪表板的“批量打开”按钮会按限流分组打开 URL,以避免搜索引擎 CAPTCHAS(可通过 `--batch` 和 `--batch-pause` 配置)。
## 功能
- 涵盖 25 个类别的 340+ dorks:社交、记录、金融、位置、论坛、人员数据库、邮箱、电话、用户名、缓存、文档、约会、市场、图片、gravatar、github、学术、直接档案、twitter、reddit、筹款、telegram、车辆、加密货币、nuclei
- Twitter/X 审计:每条 Twitter dork 都会生成 `site:twitter.com OR site:x.com` 以及 nitter 镜像、两个域名的 Wayback Machine 捕获、X 联合端点和 X 高级搜索 URL,用于免登录侦察
- Reddit 审计:`old.reddit.com` 与 `reddit.com` 并用、RSS feeds、`about.json` 档案端点以及第三方搜索索引器
- 针对 20+ 平台的直接 URL dorks(Telegram、Keybase、Twitter/X、Mastodon、Bluesky、GitHub、Reddit old/new、Steam、Twitch、Last.fm、SoundCloud、Medium、Dev.to、Dribbble、Flickr、About.me、Linktree 等)——无需搜索引擎
- 跨 Google Lens、Yandex(人脸识别最佳)、TinEye、Bing Visual Search、PimEyes、SauceNAO、IQDB、KarmaDecay 的反向图片搜索——传入 `--photo-url` 即可激活
- GitHub OSINT:按邮箱搜索 commits、`.keys` / `.gpg` 泄露探测、public-events API、gists
- Gravatar 查询:MD5 哈希邮箱 → 头像、档案 JSON、档案页面
- 失踪人员登记处:NamUs、CharleyProject、DoeNetwork、NCMEC(美国)、MissingPeople(英国)、Interpol 通告
- Nuclei v2 集成:通过 `-tags osint` 在 600+ 站点进行用户名枚举
- 预检 HTTP 检查器:对直接 URL dorks 进行 HEAD 探测,并在操作员分类之前丢弃死链
- 交互式仪表板,支持 localStorage 状态持久化、每条结果的备注和证据字段、过滤条、限流“批量打开”、键盘快捷键
- TraceLabs 提交格式导出
- 导出格式:discord、json、csv、clipboard、tracelabs
- 区域过滤器:US、CA、UK、AU、RU、FR、DE、AT、NL
- 交互式引导提示模式 (`-i`)
- Dork 去重:合并各生成器之间的冲突,优先级最高的胜出
## 标志
运行 `dorkhound --help` 查看完整的标志参考。最常用的标志:
| 标志 | 描述 |
|------|-------------|
| `--name` / `-n` | 全名(“First Last”) |
| `--case` | YAML 或 JSON 案件文件的路径 |
| `--emails` | 邮箱地址,逗号分隔 |
| `--phones` | 电话号码,逗号分隔 |
| `--usernames` | 用户名/账号,逗号分隔 |
| `--photo-url` | 用于反向图片搜索的照片 URL |
| `--location` / `-l` | 最后已知位置 |
| `--dashboard` | 启动带备注和过滤器的本地 Web 仪表板 |
| `--export` | 输出格式:discord、json、csv、clipboard、tracelabs |
| `--category` | 类别过滤器(参见 `--list-categories`) |
| `--region` | 区域过滤器(参见 `--list-regions`) |
| `--open` | 在默认浏览器中打开所有 URL |
| `--batch` / `--batch-pause` | 限流批量打开(默认每 30 秒 10 个以避免 CAPTCHAS) |
| `--delay` | 设置 `--open` 时标签页之间的延迟(默认 2000ms) |
| `--noise-filter` | 追加噪声抑制运算符(如 `-site:pinterest.com`) |
| `--preflight` | 输出前丢弃失效的直接 URL dorks |
| `--nuclei` | 针对用户名运行 nuclei OSINT 模板 |
| `--stats` | 打印 dork 数量细分并退出 |
| `-i` / `--interactive` | 引导提示模式 |
## 仪表板键盘快捷键
| 键 | 操作 |
|-----|--------|
| `/` | 聚焦过滤条 |
| `Esc` | 清除过滤 |
| `j` / `k` | 下一个 / 上一个结果 |
| `x` | 标记当前结果已审阅 |
| `d` | 在浏览器中打开当前 URL |
| `n` | 编辑当前结果的备注 |
| `?` | 显示帮助覆盖层 |
## Nuclei 集成
安装 nuclei 二进制文件和 OSINT 模板:
```
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
nuclei -update-templates
```
启用 nuclei 运行 dorkhound:
```
dorkhound --name "Jane Doe" --usernames "jdoe42" --nuclei
# 自定义 tags 和 timeout
dorkhound --name "Jane Doe" --usernames "jdoe42" --nuclei --nuclei-tags osint --nuclei-timeout 5m
```
Nuclei 会探测每个用户名对应的 600+ 站点,并将结果附加到类别 `nuclei` 下。如果未找到二进制文件,将打印警告,其余 dorks 正常返回。
## 预检死链过滤器
对查询为直接 HTTP(S) URL 的每个 dork(人员数据库查询、Wayback、HIBP、nuclei 匹配 URL 等)执行 HTTP HEAD 请求探测,并丢弃任何返回 4xx/5xx 或连接失败的项。搜索引擎包装的 dorks 将原样传递——探测 `google.com/search?q=...` 无论结果数量如何总是返回 200。
```
dorkhound --name "Jane Doe" --emails "jane@example.com" --preflight
```
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `--preflight` | false | 启用预检探测 |
| `--preflight-timeout` | 5s | 每个请求的超时时间 |
| `--preflight-concurrency` | 8 | 最大并行探测数 |
| `--preflight-rate` | 250ms | 每个工作进程的冷却时间 |
## 反向图片搜索
```
dorkhound --name "Jane Doe" --photo-url "https://example.com/jane.jpg" --category image
```
生成 Google Lens、Yandex(人脸识别最佳)、TinEye、Bing Visual Search、PimEyes、SauceNAO、IQDB 和 KarmaDecay 的直接 URL dorks。无需凭据——操作员打开每个链接即可。
## TraceLabs 提交格式
```
dorkhound --name "Jane Doe" --emails "jane@example.com" --usernames "jdoe42" \
--photo-url "https://example.com/jane.jpg" --export tracelabs -o submission.md
```
生成一个 `# TraceLabs Submission — ` Markdown 文档,其中包含案件头部、按类别分组的线索以及提交工作流检查清单。
## 区域
| 代码 | 站点 |
|------|-------|
| `us` | Spokeo, Whitepages, TruePeopleSearch, FastPeopleSearch, BeenVerified |
| `ca` | Canada411, CanadaPeopleSearch, WhitePages.ca |
| `uk` | 192.com, FindMyPast, BT Phone Book, UKElectoralRoll |
| `au` | WhitePages AU, PeopleFinder AU, ReverseAustralia |
| `ru` | VK, OK.ru, Yandex People, NumBuster |
| `fr` | PagesBlanches |
| `de` | DasTelefonbuch, Telefonbuch.de |
| `at` | Herold.at, DasTelefonbuch.at |
| `nl` | DeTelefoongids, WhitePages.nl, Numberway.nl |
## 导出格式
| 格式 | 描述 |
|--------|-------------|
| `discord` | 按类别分组的 Markdown,可直接粘贴到 Discord |
| `json` | 包含区域信息的完整案件元数据 + 结果 |
| `csv` | 列:label, category, region, priority, query, url |
| `clipboard` | 复制到系统剪贴板的 Discord 格式 |
| `tracelabs` | TraceLabs CTF 提交检查清单 |
## Shell 补全
```
# Bash(当前 session)
source <(dorkhound completion bash)
# Bash(persist)
dorkhound completion bash > /etc/bash_completion.d/dorkhound
# Zsh
dorkhound completion zsh > "${fpath[1]}/_dorkhound"
# Fish
dorkhound completion fish > ~/.config/fish/completions/dorkhound.fish
# PowerShell
dorkhound completion powershell > dorkhound.ps1
```
或使用 `make completion-install` 为当前 Shell 自动安装。
## 示例案件文件
`examples/` 目录包含可即用的模板:
| 文件 | 使用场景 |
|------|-------------|
| `examples/minimal.yaml` | 最低需求——仅姓名。最简单的案件。 |
| `examples/full.yaml` | 每个字段都有内联注释说明。复制并替换值。 |
| `examples/tracelabs.yaml` | TraceLabs CTF 起始模板。从简报中填写四个字段即可开始。 |
| `examples/advanced.yaml` | 已有线索时,进行带类别过滤器的定向调查。 |
## 案件文件参考
```
name: "John Doe"
aliases: ["JD", "Johnny"]
dob: "1990-01-15"
age: 34
location: "Seattle, WA"
description: "Red hair, tattoo on left arm"
associates: ["Jane Smith", "Bob Johnson"]
emails: ["john@example.com"]
phones: ["+1-555-000-0000"]
usernames: ["jdoe42"]
photo_url: "https://example.com/john.jpg"
photo_path: "/local/path/to/photo.jpg"
region: "us"
categories: ["social", "records"]
engine: "google"
```
## 贡献
欢迎提交 Pull Request。请保持新的 dork 模板专注于 OSINT 用例。提交前运行 `make lint`。
## 许可证
[MIT](LICENSE)
标签:BSD, ESC4, ESC8, EVTX分析, Google Dorks, Go语言, OSINT, TraceLabs, URL生成器, 二进制发布, 寻人调查, 库, 应急响应, 开源工具, 搜索语法, 数据可视化, 数据挖掘, 日志审计, 社会工程学, 程序破解, 网络安全, 调查工具, 逆向图片搜索, 隐私保护