7个版本
0.4.3 | 2024年7月13日 |
---|---|
0.4.1 | 2023年3月10日 |
0.3.5 | 2022年9月29日 |
0.3.3 | 2022年7月20日 |
在 命令行工具 中排名第 317
每月下载量 125
55KB
924 行
轻量、快速且安全的开发者电子邮件查找器。
👁️ 哲学
与 https://github.com/mxrch/GitFive 相反,git2mail 非常适合批量进攻性侦察或OSINT。它可以与多个令牌一起使用(不仅仅与一个账户相关联),以获取大量的电子邮件。
⚡ 性能
根据当前开发(单线程和同步请求),在一个大型的仓库 https://github.com/denoland/deno
- 在 不到一分钟 内分析了超过 11,750 次提交
- 找到 超过 760 封电子邮件
🚀 快速入门
- 根据您的要求,从 git2mail 版本 获取您的可执行文件
或者
-
安装 Rust
-
获取用于闪电般快速查询的优化构建
git clone https://github.com/exti0p/git2mail cd git2mail cargo build --release
或者,您可以直接安装其发布版本
git clone https://github.com/exti0p/git2mail cd git2mail cargo install --path .
或者,通过crates.io软件包安装
cargo install git2mail
然后
- 检查下面的 示例
- 扫描您的目标
📖 示例
🎯 以GitHub个人资料为目标
获取一些未经身份验证的提交或个人资料事件
./git2mail --url "$TARGET_URL"
请注意,URL参数可以是GitHub仓库URL或个人资料URL,例如
./git2mail --url https://github.com/denoland/deno
./git2mail --url https://github.com/denoland
使用特定的令牌进行身份验证并获取大量提交
./git2mail --url "$TARGET_URL" --token "$YOUR_TOKEN"
仓库URL必须遵循以下格式
git://github.com/some-user/my-repo[.git]
[email protected]:some-user/my-repo[.git]
https://github.com/some-user/my-repo[.git]
ssh://[email protected]/group/app[.git]
个人资料URL必须遵循以下格式
git://github.com/some-user
[email protected]:some-user
https://github.com/some-user
ssh://[email protected]/group
如果您有多个令牌,您可以自定义 tokens.example.json
以抓取大量提交
./git2mail --url "$TARGET_URL" --token-file "$YOUR_TOKEN_FILE"
使用占位符值
./git2mail --url https://github.com/denoland/deno --token-file /tmp/tokens.json
tokens.example.json
内容,位于项目根目录下
{
"0": "ghp_Pl8xhFwtqbxtoiia8fWwudtgO6EqOb2GdVSf",
"1": "ghp_kNxrCSGcajrOwtqbxtoiiaMQKkAjKA0WPVWP",
"2": "ghp_5Pht6hDRNWpuTJHcxCVwtqbxtoiiaI0vBxVB",
"3": "ghp_KUO6f0z13fwtqbxtoiiawtqbxtoiia0zQgcl",
"4": "ghp_ZYCsgDDDs3p3bLyBmmGwtqbxtoiia84ZmVMN",
"5": "ghp_ljP40my9r5VnHUywtwtqbxtoiia5Iq2HdSYt",
"6": "ghp_VAfWGNkwtqbxtoiiad430JF4PbOk9j3I4uj5",
"7": "ghp_Adwtqbxtoiiavdp3RznGdeGEuOzxwA0bkXDr",
"8": "ghp_GjFwtqbxtoiiawtqbxtoiiaHuQjkyY00SVHD",
"9": "ghp_uiQR88z5IgLLicvcx8wtqbxtoiiaQ705O1Nb"
}
在此模式下,您的结果将按个人资料存储,路径如下,从项目根目录开始:results/profile/$author
。如果定义了仓库,它将在 results/repository/$author_$repository
。
🏷️ 将元数据作为关键词
您想要搜索,例如,创建 nmap
相关工具的一些 Rust 开发者
./git2mail --query nmap --language Rust --token-file /tmp/tokens.json
您还可以通过这种方式限制扫描的仓库数量,例如
./git2mail --query nmap --language Rust --token-file /tmp/tokens.json --limit 5
在此模式下,您的结果将按查询存储,路径如下,从项目根目录开始:results/keyword/$query
。如果定义了语言,它将在 results/keyword/$query_$language
下。
🙋 它是如何工作的
git2mail 使用 GitHub 仓库的提交元数据来获取开发者的电子邮件。它浏览一个仓库并通过其提交抓取开发者的电子邮件。
此过程可以扩展到多个仓库,特别是通过自定义查询。后者可以使用 GitHub 元数据,如其语言。您还可以通过添加限制扫描的仓库数量来调整您的终端输出。
非认证用户的 GitHub API 请求限制为每小时 60 个请求。因此,如果您搜索如 ripgrep 这样的经典仓库,它目前有数千个提交,您最好使用 GitHub 或 GitHub App 账户,并按照此 GitHub API 文档 生成一个 每个账户 的令牌。请注意,您的令牌不需要访问您的任何仓库。因此,我决定强制使用令牌,因为非认证请求非常有限。请注意,速率限制是按 每个账户 每小时的请求数定义的。
请注意,一个令牌每小时可以请求 GitHub API 5000 次,这是您可以获取的提交数。如果您需要爬取更多提交,您最好获取多个令牌。为此,您可以使用临时电子邮件来创建多个账户。例如,要分析 Go 编程语言仓库,您至少需要 11 个令牌,因为在我编写此文档时,大约有 53,000 个提交可用。
此项目可以与其他 OSINT 工具结合使用。例如,您可以使用 git2mail 获取一些 Gmail 地址,然后使用 GHunt 对其中的一些进行进一步调查。
❗ 免责声明
一个人的电子邮件可以在提交中被伪造。
🔒 预防措施
通过启用这些 设置 来加强您的账户隐私
- ✔️ 保护我的电子邮件地址
- ✔️ 阻止暴露我的电子邮件的命令行推送
🎬 局限性
此项目仅限于 GitHub 仓库。
🏎️ 路线图
- 从 GitHub 仓库中,使用 GitHub 元数据和解析搜索提交和作者电子邮件
- 从 GitHub 关键字搜索中检索 GitHub 仓库 URL
- 妥善处理错误和限制或删除恐慌
- 通过
results/$language/$author
将电子邮件、语言和项目偏好关联起来,其中包含$author
电子邮件 - 支持更高级的参数(例如 cf. https://github.com/search/advanced)
💭 思考
- 模糊测试以找到我的代码漏洞
- 通过异步查询处理更快的请求?如果使用同一令牌执行太多请求,在 API 对令牌进行速率限制后,所有发送的请求都会被拒绝吗?如果是这样,异步可能不是好主意。或者,它只会接受请求,直到达到速率限制,就像同步请求一样?
💻 贡献
如果您想将您的石头带入建筑,请阅读并遵循CONTRIBUTING.md
。
⚖️ 许可证
本项目是免费软件,根据LGPL(GNU Lesser General Public License)第3版发布,或者(根据您的选择)任何后续版本。
依赖项
~9-25MB
~412K SLoC