WhatBreach
Ekultek/WhatBreach加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023年,一个包含5亿LinkedIn用户邮箱的数据包在暗网流传。如果你是一名安全研究员,想要快速查明自己或目标邮箱在哪些泄露事件中曝光过,手动去 Have I Been Pwned、Dehashed、WeLeakInfo 等平台逐一查询不仅费时,还需要管理多个账户和API Key。
WhatBreach 正是为解决这一痛点而生:它将多个泄露情报数据源整合到一个命令行工具中,输入一个邮箱地址(或批量文件),即可一键查出该邮箱在所有已知数据泄露事件中的曝光记录——包括泄露来源、泄露时间、甚至直接下载公开的泄露数据库。
WhatBreach 由独立安全研究者 Ekultek 开发维护,GitHub 累计收获约 1,700 颗星,221 个 Fork,被标记为 archived 状态(已于 2022 年停止活跃维护)。
该项目诞生于 2018 年左右,正值数据泄露事件高发期:LinkedIn、Dropbox、MyFitnessPal 等大型平台相继被曝数据泄露,用户邮箱与密码被大量公开。安全研究者和渗透测试工程师迫切需要一款能够跨平台聚合查询泄露情报的工具,而非在多个网站之间来回切换。
WhatBreach 的核心价值在于聚合——它对接了以下数据源:
| 数据源 | 功能 | 是否需要付费 |
|---|---|---|
| Have I Been Pwned (HIBP) | 查询邮箱在已知数据泄露中的曝光记录 | 是($3.50/月) |
| Dehashed | 查询邮箱关联的数据库泄露链接 | 免费(有限制) |
| WeLeakInfo | 扩展泄露查询范围 | 免费注册有限额 |
| Hunter.io | 域名邮箱发现与验证 | 免费token有配额 |
| Pastebin (via HIBP) | 查询邮箱在粘贴板中的曝光 | 随HIBP |
| databases.today | 下载公开泄露数据库 | 免费 |
| EmailRep.io | 查询邮箱相关的公开档案 | 免费 |
WhatBreach 提供完整的命令行交互界面,支持单邮箱查询和批量文件导入。
# 查询单个邮箱
python whatbreach.py -e user@example.com
# 从文件批量查询(每行一个邮箱)
python whatbreach.py -l emails.txt
执行后,工具会依次调用各数据源 API,汇总结果后以表格形式输出:
Breach/Paste: | Database/Paste Link:
LinkedIn | https://www.dehashed.com/search?query=LinkedIn
Dropbox | https://www.dehashed.com/search?query=Dropbox
MyFitnessPal | https://www.dehashed.com/search?query=MyFitnessPal
# 同时查询 WeLeakInfo(扩大搜索范围)
python whatbreach.py -e user@example.com -wL
# 下载 Pastebin 上的泄露粘贴记录
python whatbreach.py -e user@example.com -dP
# 下载公开泄露数据库(如有)
python whatbreach.py -e user@example.com -d
# 通过 Hunter.io 搜索同域名下的其他邮箱
python whatbreach.py -e user@example.com -sH
# 邮箱可投递性验证(通过 Hunter.io)
python whatbreach.py -e user@example.com -vH
# 请求限流(防止 HIBP 封禁)
python whatbreach.py -e user@example.com --throttle 2
工具内置了常见临时邮箱域名(如 mailinator.com、guerrillamail.com 等)的黑名单,遇到十分钟邮箱时会主动提示并询问是否继续,帮助用户避免浪费查询配额。
WhatBreach 采用清晰的插件化架构,每个数据源对应一个独立的 Hook 类,统一继承 Hooker 接口,调用方式一致,便于扩展。
WhatBreach/
├── whatbreach.py # 入口文件
├── whatbreach/
│ └── main.py # 主逻辑:参数解析、Hook 调度、结果聚合
├── lib/
│ ├── cmd.py # 命令行参数解析(argparse)
│ ├── settings.py # 全局配置、Banner、API Token 读取
│ └── formatter.py # 终端彩色输出(info/warn/error)
├── hookers/ # 各数据源插件
│ ├── hibp_hook.py # Have I Been Pwned
│ ├── dehashed_hook.py # Dehashed
│ ├── weleakinfo_hook.py # WeLeakInfo
│ ├── hunter_io_hook.py # Hunter.io
│ ├── databasestoday_hook.py
│ ├── emailrep_io_hook.py
│ └── snusbase_hooker.py
└── requirements.txt # 依赖:arrow, requests, beautifulsoup4
仅依赖三个标准库级别的包:
整体代码量适中,无重型 ML/AI 依赖,纯 Python 脚本,部署门槛极低。
Have I Been Pwned 的免费 API 已于 2020 年关闭,现在需要每月支付 $3.50 才能获取 Key。如果用户不配置 HIBP Key,工具的查询能力将大幅下降。此外,多个第三方数据源(WeLeakInfo、dehashed)也可能随时变更 API 或关闭服务,项目处于 archived 状态,无法保证持续可用。
WhatBreach 查询的是真实的数据泄露记录,查询他人邮箱可能涉及隐私法规(如 GDPR)。该工具仅供授权的安全测试和教育研究使用,未经授权查询他人邮箱属于违法行为。
--download 选项尝试从 databases.today 下载公开泄露数据库,下载的数据库文件可能体积较大(数GB),且涉及敏感数据,下载和持有此类数据在多数司法管辖区均受严格限制。
WhatBreach 代表的并非一个孤立工具,而是一类 OSINT 自动化聚合工具 的典型范式。从行业趋势看:
git clone https://github.com/Ekultek/WhatBreach.git
cd WhatBreach
pip install -r requirements.txt
在 ~/.whatbreach/whatbreach.cfg 或环境变量中配置各平台 API Token:
# HIBP API Key(必需,$3.50/月)
export HIBP_API_KEY="your_hibp_key"
# Hunter.io 免费 Token
export HUNTER_API_KEY="your_hunter_key"
# 查询单个邮箱
python whatbreach.py -e your-email@example.com
# 批量查询 + 下载 Paste
python whatbreach.py -l target_emails.txt -dP
总结:WhatBreach 是一款功能完整、代码轻量的邮箱泄露情报工具,适合安全研究者和渗透测试工程师在授权场景下使用。但由于项目已归档且依赖多个第三方付费/不稳定 API,生产环境中若需长期稳定运行,建议评估替代方案(如直接对接 HIBP API 或迁移至 SpiderFoot 等活跃维护的平台)。