Zeyneell/Zcheck

GitHub: Zeyneell/Zcheck

Zcheck 是一款数据驱动、自我校验的异步邮箱 OSINT 工具,通过 690 多个站点排查邮箱关联的账号存在性,并以 canary 校验和自检机制抑制误报。

Stars: 0 | Forks: 0

# Zcheck **异步邮箱 → 账号 OSINT。** 给它一个邮箱地址;Zcheck 会告诉你那个人在哪些地方拥有账号 —— 类似 holehe 风格,但它是**数据驱动**且**自我校验**的,因此能够扩展到 690 多个站点,并且在网站发生变化时不会悄无声息地失效。 ``` ____ _ _ |_ /__ __| |_ ___ __ __ | |__ / / _/ _| ' \/ -_) _| / /| / / /___\__\__|_||_\___\__|_\_\|_\_\ OSINT ``` ## 为什么它与 holehe 不同 | | holehe | **Zcheck** | |---|---|---| | 站点 | 约 120 个邮箱检测源 | **3 个邮箱检测源 + 690 多个用户名站点** | | 添加站点 | 编写 Python 模块 | **编辑一个 JSON 条目**(或添加一个插件) | | 站点更改其响应 | 检查器静默失效 | **`update` 拉取修复;`doctor` 标记偏移;canary 抑制误报** | | 误报 | 信任模块 | **每次命中都会与一次性 canary 进行重新校验** | ## 工作原理 两个引擎支持一个运行器: 1. **邮箱检测源** —— 网站的“该邮箱是否已注册?” endpoint(注册/重置)。简单的配置以 JSON 形式存在于 [`email_sites.json`](src/zcheck/data/email_sites.json) 中;需要 CSRF token 或多步骤流程的配置则是 [`sites/plugins/`](src/zcheck/sites/plugins/) 中的 Python 插件。 2. **用户名扫描** —— 从邮箱的本地部分推导出用户名,并使用每个站点的 `e_code` / `e_string` / `m_string` 契约,将其与 **WhatsMyName** 数据集(690 多个站点)进行比对。**不**跟随重定向,因此重定向到通用页面不会被误认为是命中。 ### 绝不向您撒谎 —— 防止误报的三重保证 - **Canary 校验。** 扫描完成后,每个声称命中的站点都会使用一个*保证不存在*的标识符进行重新探测。如果它也“找到”了该标识符,则说明它是一个过度匹配的检测源,结果将被降级为 `unknown`。(在测试中,这曾在一次实际运行中抓到了 *Arch Linux GitLab*。) - **否定标记。** 用户名检查要求存在肯定标记**并且**缺少站点的“未找到”标记 —— 从而消除 soft-404。 - **`zcheck doctor`。** 自我测试:使用已知的正常对照组 + canary 探测每个检查器,并标记任何报告虚假账号的情况。将其接入 CI 以自动捕获偏移。 ### 自我更新 `zcheck update` 将数据集刷新到您的用户缓存中,该缓存优先于内置快照。当站点发生更改并且数据集在上游得到修复时,您**无需新版本发布**即可获得修复 —— 无需修改任何代码。 ## 安装 ``` git clone https://github.com/Zeyneell/Zcheck.git cd Zcheck python -m venv .venv .venv\Scripts\Activate.ps1 pip install -e . ``` 在 Windows 上,您也可以直接双击 **`Zcheck.bat`** —— 它会在首次运行时构建 venv 并进行安装,然后让您进入交互式菜单。 ## 用法 交互式菜单(与 Zloc 的感觉相同): ``` zcheck ``` 单次运行: ``` zcheck scan someone@example.com # email oracles + username sweep zcheck scan someone@example.com --mode email # just the email oracles zcheck scan someone@example.com -u customhandle # override the guessed username zcheck scan someone@example.com --nsfw --json out.json --csv out.csv zcheck sites # what Zcheck can check, by category zcheck doctor --cat coding # health-check a category zcheck update # refresh the site datasets ``` 实用标志:`--mode email|username|both`, `--only site,site`, `--cat cat,cat`, `--nsfw`, `--concurrency N`, `--timeout S`, `--no-canary`. ## 扩展 添加站点是数据操作,而不是编写代码 —— 有关邮箱检测源和用户名 schema,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。复杂的站点可以在 `sites/plugins/` 中使用一个小型 Python 插件(自动发现)。 ## 道德与范围 Zcheck 用于**授权的** OSINT、安全评估以及 CTF/研究。它只*读取*公开的账号存在性检测源 —— 它从不重置密码,从不向目标发送邮件,也从不进行登录。请勿在缺乏合法依据的情况下,将其用于骚扰、人肉或调查他人。 ## 致谢与许可 - 代码:**MIT**(见 [LICENSE](LICENSE))。 - 用户名数据集:由 Micah "WebBreacher" Hoffman 提供的 **WhatsMyName**,**CC BY-SA 4.0** —— 见 [DATA_SOURCES.md](DATA_SOURCES.md)。
标签:ESC4, Homebrew安装, OSINT, 异步编程, 数据驱动, 文档结构分析, 调试插件, 逆向工具, 邮箱侦查