h8mail:一款邮件泄露情报与密码泄露狩猎的开源工具

2026-08-08 15:21 👁️ 43 阅读

在数据安全事件响应中,一个常被低估的环节是"邮箱是否已经出现在已知泄露库中"。安全人员拿到的可能只是一份员工邮箱列表、一个可疑发件人地址,或者一段包含大量邮箱的日志。要从数十亿条泄露记录里确认这些邮箱是否暴露、关联的密码是什么,靠手工逐个去 Have I Been Pwned 等网站查是不现实的。h8mail 就是为解决这个具体问题而生的命令行工具——它把邮件开源情报(Email OSINT)和密码泄露狩猎(Password Breach Hunting)整合到一个统一的 Python 工具里,支持调用在线 API,也支持扫描本地的泄露库。

项目托管在 GitHub(khast3x/h8mail),采用 BSD 3-Clause 许可证,目前已进入 2.5.x 稳定阶段,被 BlackArch Linux、Tsurugi DFIR、CSI Linux、Trace Labs OSINT VM 等安全发行版收录。


h8mail 解决什么问题

传统泄露查询的痛点是分散:Have I Been Pwned 告诉你邮箱出现在哪些泄露事件里,Hunter.io 能反查关联邮箱,Snusbase、Dehashed、IntelX 等付费服务能拿到明文密码和哈希,本地的 Breach Compilation、Collection #1 等泄露库则是另一种检索方式。每个源都要单独登录、单独调接口、单独解析结果。

h8mail 的做法是把这些渠道统一封装成一个 CLI:

  • 一条命令同时查多个在线服务

  • 一条命令同时扫多个本地泄露文件

  • 结果聚合后输出到终端、CSV 或 JSON

  • 支持"追逐"关联邮箱——从一个目标出发,自动把 Hunter.io 返回的关联邮箱加入待查队列,形成持续搜索

这种"聚合 + 自动化"的能力,正是它在渗透测试和事件响应工具箱里站稳脚跟的原因。


核心能力

h8mail 的功能可以分成几类:

多服务集成。目前支持的服务包括:

  • Have I Been Pwned(v3):查询邮箱涉及哪些泄露事件

  • Hunter.io:查询关联邮箱数量,私有 API 可拿到明文关联邮箱

  • Snusbase:明文密码、哈希、盐值、用户名、IP,速度快

  • Leak-Lookup:泄露事件数量与明文凭据

  • Emailrep.io:邮箱声誉、社交媒体关联

  • Scylla:明文密码、哈希、用户名、IP、域名

  • IntelX:明文凭据、用户名、IP、域名、比特币钱包、IBAN

  • BreachDirectory:明文密码、哈希、盐值、用户名、域名

  • Dehashed:明文凭据、哈希、用户名、IP、域名

其中标"API key required"的服务需要用户自行申请密钥,免费公共服务则可以直接调用。

本地泄露库扫描。h8mail 对本地泄露数据的支持是其重要特色:

  • 兼容 "Breach Compilation" 种子文件,通过 -bc 参数指定种子文件夹路径,利用种子内附的 query.sh 脚本进行查询

  • 兼容 Collection #1 等明文泄露

  • 支持直接扫描 .txt.gz 压缩泄露文件,使用多进程并行处理

  • 支持"宽松模式"(--loose),可以搜 "john.smith""evilcorp" 这样的关键词,而不限于完整邮箱格式

邮箱模式匹配。支持正则表达式识别邮箱,可以从其他工具的输出中直接提取邮箱地址作为目标,支持文件路径通配符和多个参数。

关联邮箱追逐(Chasing)。通过 -ch 参数指定每个目标要追逐的关联邮箱数量,h8mail 会用 Hunter.io 返回的关联邮箱持续扩充目标列表,形成链式搜索。这是 h8mail 区别于普通泄露查询工具的关键能力。

输出与选项

  • 输出到 CSV 文件(-o)或 JSON 文件(-j

  • --hide 参数:只显示密码前 4 个字符,适合演示场景

  • --skip-defaults (-sk):跳过 HaveIBeenPwned 和 HunterIO 的默认检查,适合纯本地扫描

  • --loose:禁用邮箱模式识别,用空格作为模式分隔符进行宽松搜索


安装

h8mail 2.0 之后只依赖 Python 的 requests 模块,安装非常轻量。

通过 pip 安装(推荐)

pip3 install h8mail

从源码安装

cd h8mail/
python setup.py install
h8mail -h

Docker 方式

docker run -ti kh4st3x00/h8mail -h

生成配置文件模板

h8mail --gen-config

这会生成 h8mail_config.ini 文件,你在其中填入各个服务的 API 密钥即可。


基本使用

单个目标查询

h8mail -t target@example.com

批量目标 + 配置文件 + 输出到 CSV

h8mail -t targets.txt -c config.ini -o pwned_targets.csv

targets.txt 每行一个邮箱,config.ini 中包含 API 密钥,-o 指定输出文件。

本地 Breach Compilation 扫描 + 命令行传密钥

h8mail -t targets.txt -bc ../Downloads/BreachCompilation/ \
  -k "snusbase_url=$snusbase_url,snusbase_token=$snusbase_token"

纯本地扫描(不调用任何 API)

h8mail -t targets.txt -bc ../Downloads/BreachCompilation/ -sk

-sk 参数跳过 HaveIBeenPwned 和 HunterIO 的在线检查,只在本地泄露库里检索。

扫描本地 .gz 压缩泄露文件

h8mail -t targets.txt -gz /tmp/Collection1/ -sk

本地明文泄露 + 关联邮箱追逐

h8mail -t admin@evilcorp.com -lb /tmp/4k_Combo.txt -ch 10 -k "hunterio=ABCDE123"

这条命令会:在 /tmp/4k_Combo.txt 里扫 admin@evilcorp.com → 通过 Hunter.io 拿到关联邮箱 → 把前 10 个关联邮箱加入队列继续查。


输出结果示例

h8mail 的终端输出层次清晰,以 Trickest 文档给出的样例为例:

>> alice@example.com
├── hibp - compromised in: LinkedIn, Dropbox, Canva
├── emailrep - reputation: none, blacklisted: false
└── hunter.io (public) - related emails found: 4
>> bob@example.com
├── hibp - compromised in: Adobe
└── local file - line: bob@example.com:Su5f****
[+] Found 6 results, writing to exposure.json

可以看到,对每个目标,h8mail 汇总了来自不同服务的结果:HIBP 告诉你涉及哪些泄露事件,Emailrep 给声誉评估,Hunter.io 给关联邮箱,本地文件扫描能直接命中明文凭据(密码默认隐藏大部分字符,除非不加 --hide)。


典型应用场景

事件响应。当企业发生安全事件,怀疑一批员工邮箱被波及时,安全团队可以用 h8mail 批量查询这批邮箱在已知泄露库中的暴露情况,快速评估影响范围。

渗透测试。在授权范围内,测试目标组织的邮箱域名下有哪些账号已经出现在公开泄露中——这些账号往往还在复用当时的弱密码,是入侵的高概率入口。配合 -ch 追逐关联邮箱,可以发现目标组织更多员工邮箱。

个人安全自查。个人用户可以用 --loose 模式搜自己的用户名或邮箱前缀,看看自己在哪些泄露中"上榜"。

威胁狩猎。结合本地的大规模泄露库(Breach Compilation 约 30 亿条、Collection #1 约 27 亿条),用 h8mail 的多进程扫描能力,可以在本地私密地完成大批量查询,而不把目标邮箱暴露给第三方服务。


使用边界与合规要求

h8mail 是强大的情报工具,也是典型的"双重用途"工具。项目作者在文档中明确标注"Use responsibly",并强调工具用于安全研究。

使用 h8mail 必须满足以下前提:

  • 授权范围:只查询你拥有合法权限的邮箱——你自己的邮箱、你所在组织在渗透测试授权范围内的邮箱、事件响应中由客户授权的邮箱

  • 合规依据:企业环境下应有书面授权、规则指令(Rules of Engagement),并符合当地法律法规

  • 禁止用途:不得用于未经授权查询他人凭据、不得用于社工攻击的前期侦察、不得将查询结果用于任何非法目的

  • 数据处置:查询得到的明文密码、哈希等敏感数据必须按保密要求存储和销毁,避免二次泄露

安全团队在使用 h8mail 做渗透测试时,应在最终的报告中明确说明查询范围、使用的数据源、以及发现的暴露凭据,并给出具体的修复建议(强制改密、启用多因素认证、注销已泄露会话等)。


与其他工具的关系

h8mail 不是孤立的,它的生态里有不少互补项目:WhatBreach(Ekultek)、HashBuster(s0md3v)、BaseQuery(g666gle)、LeakLooker(woj-ciech)、Scavenger(ndinfosecguy)、pwndb(davidtavarez)等。每个工具侧重不同:有的专注泄露文件解析,有的专注特定服务查询,有的提供 Web 界面。h8mail 的优势在于"统一入口 + 多源聚合 + 关联追逐",适合作为命令行工作流的一环,与其他工具组合使用。


结语

h8mail 的价值不在于它发明了新的泄露数据源,而在于它把分散的、需要逐个登录的服务和本地庞大的泄露库,统一到一个轻量、脚本化、可自动化的命令行工具里。对于安全研究人员、渗透测试人员、事件响应工程师来说,它解决了"如何快速、批量、隐私地确认一批邮箱的泄露暴露面"这个具体问题。

如果你正在搭建安全测试工具箱,或者需要在事件响应中快速评估一批邮箱的风险状况,h8mail 值得加入你的工具集。安装只需一行 pip3 install h8mail,配置文件模板通过 h8mail --gen-config 生成,从安装到第一次查询不超过十分钟。

但请记住:能力越大,责任越大。h8mail 的所有查询都应在明确的授权范围内进行,查询结果作为敏感数据妥善处置。它是防御者的放大镜,不应成为攻击者的望远镜。

项目地址:github.com/khast3x/h8mail

许可证:BSD 3-Clause