gl0bal01/dorkhound

GitHub: gl0bal01/dorkhound

一款基于 Go 的 OSINT 工具,专为 TraceLabs CTF 和失踪人员调查设计,用于生成 Google Dork、直接档案 URL 并通过交互式仪表板管理调查线索。

Stars: 1 | Forks: 0

# dorkhound — TraceLabs CTF 的 OSINT 调查工具包 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Go Version](https://img.shields.io/github/go-mod/go-version/gl0bal01/dorkhound)](https://go.dev/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/395bb90c7f041104.svg)](https://github.com/gl0bal01/dorkhound/actions/workflows/ci.yml) [![OSINT Tool](https://img.shields.io/badge/OSINT-Tool-blue)](https://github.com/gl0bal01/dorkhound) [![TraceLab CTF](https://img.shields.io/badge/TraceLab-CTF-red)](https://www.tracelabs.org/) [![Google Dorks](https://img.shields.io/badge/Google-Dorks-green)](https://github.com/gl0bal01/dorkhound) [![Go Report Card](https://goreportcard.com/badge/github.com/gl0bal01/dorkhound)](https://goreportcard.com/report/github.com/gl0bal01/dorkhound) [![Go Reference](https://pkg.go.dev/badge/github.com/gl0bal01/dorkhound.svg)](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生成器, 二进制发布, 寻人调查, 库, 应急响应, 开源工具, 搜索语法, 数据可视化, 数据挖掘, 日志审计, 社会工程学, 程序破解, 网络安全, 调查工具, 逆向图片搜索, 隐私保护