Subdominator配置教程:API密钥管理与环境变量设置完全指南
【免费下载链接】SubdominatorSubDominator helps you discover subdomains associated with a target domain efficiently and with minimal impact for your Bug Bounty项目地址: https://gitcode.com/gh_mirrors/su/Subdominator
Subdominator是一款高效的子域名枚举工具,专为漏洞赏金猎人设计,能帮助你轻松发现目标域名关联的子域名,且对目标影响极小。本文将详细介绍如何配置API密钥和环境变量,让Subdominator发挥最佳性能。
核心配置文件解析
Subdominator的配置系统主要依赖两个核心文件,它们共同管理API密钥和运行时参数:
provider-config.yaml:API密钥管理中心
这个YAML格式的配置文件是所有第三方服务API密钥的存储中心。当你首次运行Subdominator时,系统会自动在默认路径创建该文件:
~/.config/Subdominator/provider-config.yaml文件采用"服务名: [密钥列表]"的结构,支持为同一服务配置多个密钥(自动轮询使用):
censys: [your_censys_id:your_censys_secret] shodan: [your_shodan_api_key] securitytrails: [your_securitytrails_api_key]settings.py:环境变量与运行时参数
src/subdominator/core/settings.py定义了Subdominator的所有环境变量和运行时参数。通过SUBDOMINATOR_前缀的环境变量,你可以灵活覆盖默认设置,例如:
class RuntimeSettings(BaseSettings): model_config = SettingsConfigDict(env_prefix="SUBDOMINATOR_", extra="ignore") timeout: float = 20.0 # 环境变量: SUBDOMINATOR_TIMEOUT retries: int = 3 # 环境变量: SUBDOMINATOR_RETRIES concurrency: int = 8 # 环境变量: SUBDOMINATOR_CONCURRENCY proxy: str | None = None # 环境变量: SUBDOMINATOR_PROXY # 更多参数...Subdominator Logo - 高效子域名枚举工具
快速上手:API密钥配置步骤
步骤1:定位配置文件
使用以下命令快速找到配置文件路径:
subdominator --show-config-path输出示例:
/home/user/.config/Subdominator/provider-config.yaml步骤2:编辑配置文件
用文本编辑器打开配置文件,为需要的服务添加API密钥:
nano $(subdominator --show-config-path)步骤3:常用服务配置示例
以下是几个常用服务的配置格式:
Censys(需要ID和密钥):
censys: [your_id:your_secret]Shodan(单个API密钥):
shodan: [your_api_key]SecurityTrails(单个API密钥):
securitytrails: [your_api_key]多个密钥(自动轮询使用):
shodan: [key1, key2, key3]
步骤4:验证配置
通过列出资源命令验证配置是否生效:
subdominator --list-resources在输出中,标记*的服务表示需要API密钥,配置成功后这些服务将被激活。
高级配置:环境变量设置
环境变量提供了一种无需修改配置文件即可临时或永久调整Subdominator行为的方式。
常用环境变量
| 环境变量 | 作用 | 示例 |
|---|---|---|
| SUBDOMINATOR_TIMEOUT | 设置请求超时时间(秒) | export SUBDOMINATOR_TIMEOUT=30 |
| SUBDOMINATOR_RETRIES | 设置请求重试次数 | export SUBDOMINATOR_RETRIES=5 |
| SUBDOMINATOR_PROXY | 配置HTTP代理 | export SUBDOMINATOR_PROXY=http://proxy:8080 |
| SUBDOMINATOR_CONCURRENCY | 设置并发数 | export SUBDOMINATOR_CONCURRENCY=16 |
临时生效方式
在命令前直接添加环境变量:
SUBDOMINATOR_TIMEOUT=30 subdominator -d example.com永久生效方式
将环境变量添加到shell配置文件(~/.bashrc或~/.zshrc):
echo 'export SUBDOMINATOR_CONCURRENCY=16' >> ~/.bashrc source ~/.bashrc配置验证与故障排除
检查API密钥有效性
使用健康检查命令验证API配置是否正常:
subdominator --health-check查看资源状态
使用详细输出模式运行枚举,检查各服务是否正常工作:
subdominator -d example.com -v在输出中,你可以看到每个服务的执行状态和发现的子域名数量。
Subdominator命令行输出示例,显示子域名枚举结果
常见问题解决
服务未激活:确保配置文件中服务名称与src/subdominator/core/provider_config.py中定义的名称一致。
密钥被拒绝:检查密钥是否正确,部分服务需要先注册账户才能使用API。
配置文件权限:确保配置文件有正确的读写权限:
chmod 600 $(subdominator --show-config-path)
最佳实践与注意事项
密钥安全管理
- 权限控制:确保配置文件只有你自己可读写(
chmod 600) - 备份策略:定期备份配置文件,避免密钥丢失
- 密钥轮换:按照服务提供商建议定期轮换API密钥
性能优化配置
根据目标和网络环境调整以下参数获得最佳性能:
- 并发数:网络良好时可提高到16-32(
SUBDOMINATOR_CONCURRENCY=32) - 超时时间:对响应慢的服务可适当增加(
SUBDOMINATOR_TIMEOUT=30) - 重试次数:不稳定网络环境下增加重试(
SUBDOMINATOR_RETRIES=5)
资源选择策略
使用--include-resources和--exclude-resources参数灵活选择枚举资源:
# 只使用指定资源 subdominator -d example.com -ir censys,shodan,securitytrails # 排除特定资源 subdominator -d example.com -er facebook,github通过合理配置API密钥和环境变量,Subdominator将成为你子域名枚举工作中高效可靠的工具。记住,正确的配置不仅能提高枚举效率,还能避免不必要的API调用限制和错误。
【免费下载链接】SubdominatorSubDominator helps you discover subdomains associated with a target domain efficiently and with minimal impact for your Bug Bounty项目地址: https://gitcode.com/gh_mirrors/su/Subdominator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考