GitHub API侦察实战:使用github-subdomains发现隐藏子域名
GitHub API侦察实战:使用github-subdomains发现隐藏子域名
在网络安全和域名管理领域,发现目标域名的隐藏子域名是一项关键任务。github-subdomains 作为一款强大的GitHub子域名侦察工具,能够通过GitHub API高效搜索并提取指定域名的相关子域名信息,为安全测试人员和域名管理员提供重要支持。
为什么选择github-subdomains进行子域名侦察?
子域名侦察是信息收集阶段的重要环节,而GitHub作为全球最大的代码托管平台,存储了海量包含域名信息的配置文件、代码片段和文档。github-subdomains通过精准的GitHub API搜索和智能解析,能够快速发现传统方法难以获取的隐藏子域名,帮助用户全面掌握目标域名的网络架构。
图: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配置方式:
- 单Token直接指定:
github-subdomains -t YOUR_GITHUB_TOKEN -d target.com
- 多Token逗号分隔:
export GITHUB_TOKEN=token1,token2,token3
github-subdomains -d target.com
- 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的工作流程主要分为四个阶段:
-
GitHub API搜索:通过构造特定搜索关键词,在GitHub代码库中查找包含目标域名的文件。核心实现位于main.go的
githubSearch函数,该函数负责发送API请求并处理返回结果。 -
代码文件获取:对搜索到的文件URL进行处理,转换为原始文件地址并下载内容。关键代码在main.go的
getCode函数中实现。 -
子域名提取:使用正则表达式从代码内容中提取子域名。正则表达式定义在main.go,支持标准和扩展两种匹配模式。
-
结果去重与输出:对提取的子域名进行去重处理,并保存到指定文件。去重逻辑通过main.go的
inArray函数实现。
实战案例:使用github-subdomains发现Snapchat子域名
从工具预览图中可以看到,通过执行命令github-subdomains -d snapchat.com,工具成功发现了多个Snapchat的子域名,包括:
- api.snapchat.com
- app.snapchat.com
- business.snapchat.com
- chat.snapchat.com
这些结果展示了工具在实际应用中的效果,能够帮助安全测试人员快速获取目标域名的子域名信息,为后续渗透测试提供重要基础。
提高子域名发现效率的实用技巧
-
使用多Token轮换:通过配置多个GitHub Token,可以有效避免API速率限制,提高扫描效率。工具会自动管理Token的启用和禁用状态。
-
结合其他工具使用:将github-subdomains的输出结果作为其他子域名枚举工具(如amass、sublist3r)的输入,进行交叉验证和补充。
-
定期更新扫描:GitHub上的代码和配置文件会不断更新,定期运行github-subdomains可以发现新添加的子域名。
-
使用扩展模式:启用
-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利用和精准的子域名提取能力,成为安全从业者的得力助手。通过本文介绍的安装配置方法和使用技巧,您可以快速掌握这款工具,提升子域名侦察的效率和成功率。
更多推荐


所有评论(0)