GitHub API侦察实战:使用github-subdomains发现隐藏子域名

【免费下载链接】github-subdomains Find subdomains on GitHub. 【免费下载链接】github-subdomains 项目地址: https://gitcode.com/gh_mirrors/gi/github-subdomains

在网络安全和域名管理领域,发现目标域名的隐藏子域名是一项关键任务。github-subdomains 作为一款强大的GitHub子域名侦察工具,能够通过GitHub API高效搜索并提取指定域名的相关子域名信息,为安全测试人员和域名管理员提供重要支持。

为什么选择github-subdomains进行子域名侦察?

子域名侦察是信息收集阶段的重要环节,而GitHub作为全球最大的代码托管平台,存储了海量包含域名信息的配置文件、代码片段和文档。github-subdomains通过精准的GitHub API搜索和智能解析,能够快速发现传统方法难以获取的隐藏子域名,帮助用户全面掌握目标域名的网络架构。

github-subdomains工具运行界面展示 图:github-subdomains工具运行界面,显示对snapchat.com的子域名扫描结果

快速安装github-subdomains的两种方法

方法一:使用go install一键安装

go install github.com/gwen001/github-subdomains@latest

方法二:从源码仓库克隆安装

git clone https://gitcode.com/gh_mirrors/gi/github-subdomains
cd github-subdomains
go install

配置GitHub Token的详细步骤

使用github-subdomains需要GitHub Token进行API认证,支持三种Token配置方式:

  1. 单Token直接指定
github-subdomains -t YOUR_GITHUB_TOKEN -d target.com
  1. 多Token逗号分隔
export GITHUB_TOKEN=token1,token2,token3
github-subdomains -d target.com
  1. Token文件批量加载: 在工具目录创建.tokens文件,每行一个Token:
token1
token2
token3

然后直接运行:

github-subdomains -d target.com

⚠️ 注意:Token需要具备public_repo权限,建议使用多个Token以避免API速率限制。

基础使用命令与参数解析

基本扫描命令

github-subdomains -d example.com -t YOUR_TOKEN

核心参数说明

  • -d:指定目标域名(必填)
  • -t:GitHub Token(必填)
  • -o:输出文件路径,默认保存为<domain>.txt
  • -e:启用扩展模式,搜索<dummy>example.com格式的子域名
  • -k:当所有Token都被限制时退出程序
  • -raw:仅输出子域名结果,不显示额外信息

高级使用示例

# 扩展模式扫描并保存结果
github-subdomains -d example.com -t YOUR_TOKEN -e -o example_subdomains.txt

# 静默模式输出纯子域名列表
github-subdomains -d example.com -t YOUR_TOKEN -raw

工具工作原理与核心代码解析

github-subdomains的工作流程主要分为四个阶段:

  1. GitHub API搜索:通过构造特定搜索关键词,在GitHub代码库中查找包含目标域名的文件。核心实现位于main.gogithubSearch函数,该函数负责发送API请求并处理返回结果。

  2. 代码文件获取:对搜索到的文件URL进行处理,转换为原始文件地址并下载内容。关键代码在main.gogetCode函数中实现。

  3. 子域名提取:使用正则表达式从代码内容中提取子域名。正则表达式定义在main.go,支持标准和扩展两种匹配模式。

  4. 结果去重与输出:对提取的子域名进行去重处理,并保存到指定文件。去重逻辑通过main.goinArray函数实现。

实战案例:使用github-subdomains发现Snapchat子域名

从工具预览图中可以看到,通过执行命令github-subdomains -d snapchat.com,工具成功发现了多个Snapchat的子域名,包括:

  • api.snapchat.com
  • app.snapchat.com
  • business.snapchat.com
  • chat.snapchat.com

这些结果展示了工具在实际应用中的效果,能够帮助安全测试人员快速获取目标域名的子域名信息,为后续渗透测试提供重要基础。

提高子域名发现效率的实用技巧

  1. 使用多Token轮换:通过配置多个GitHub Token,可以有效避免API速率限制,提高扫描效率。工具会自动管理Token的启用和禁用状态。

  2. 结合其他工具使用:将github-subdomains的输出结果作为其他子域名枚举工具(如amass、sublist3r)的输入,进行交叉验证和补充。

  3. 定期更新扫描:GitHub上的代码和配置文件会不断更新,定期运行github-subdomains可以发现新添加的子域名。

  4. 使用扩展模式:启用-e参数可以发现更多潜在的测试环境或内部系统子域名,这些子域名往往安全性较低。

常见问题与解决方案

Q:工具提示"token not found"怎么办?

A:确保正确配置了GitHub Token,可以通过-t参数指定、环境变量或.tokens文件三种方式之一提供Token。

Q:扫描结果很少或没有发现子域名?

A:尝试使用扩展模式(-e参数),或检查Token是否具有足够权限。另外,某些域名可能在GitHub上公开的信息较少。

Q:工具运行一段时间后变慢?

A:这可能是由于GitHub API速率限制导致,建议增加更多Token,或使用-k参数在Token全部受限后退出,稍后再试。

github-subdomains作为一款专注于GitHub子域名侦察的工具,凭借其高效的API利用和精准的子域名提取能力,成为安全从业者的得力助手。通过本文介绍的安装配置方法和使用技巧,您可以快速掌握这款工具,提升子域名侦察的效率和成功率。

【免费下载链接】github-subdomains Find subdomains on GitHub. 【免费下载链接】github-subdomains 项目地址: https://gitcode.com/gh_mirrors/gi/github-subdomains

Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐