OneForAll 子域名收集工具以下内容带有个人主观看法不一定适用于所有场景欢迎交流指正。写在前面信息收集往往是安全测试里最容易被低估、却最能拉开差距的一步。子域名收集尤其如此你掌握的攻击面越完整后续的漏洞发现和风险评估才越有依据。OneForAll 把搜索引擎、证书透明度日志、DNS 查询、API 接口和爆破枚举这些来源聚合到了一套流程里减少了大量重复劳动。对安全测试人员来说这相当于一个可以快速启动的信息收集脚手架。OneForAll 是一款功能强大的子域名收集工具旨在帮助安全测试人员和网络管理员全面发现目标域名的所有子域名为后续的安全评估和漏洞测试提供基础支持。一、概述OneForAll 集成了多种子域名发现方法包括搜索引擎查询、DNS 枚举、API 调用等能够高效地获取目标域名的子域名信息并支持结果的导出和分析。核心功能功能说明多源子域名收集支持从搜索引擎Google、Bing 等、证书透明度日志、DNS 记录查询、API 接口Shodan、Censys 等以及爆破枚举等多种来源收集子域名确保尽可能全面地发现目标域名的子域名。智能结果处理自动对收集到的子域名进行有效性验证排除无效或不存在的子域名提高结果的准确性。支持按 IP 地址、响应状态码等进行分类统计。灵活的输出格式支持 CSV、JSON、TXT 等多种输出格式满足不同场景下的使用需求方便进一步分析或导入到其他工具中。自定义配置提供丰富的配置选项可调整线程数、超时时间、是否使用爆破等。支持自定义字典文件提高发现隐藏子域名的概率。二、安装与配置安装环境准备OneForAll 基于 Python 开发安装前需确保系统已安装以下环境Python建议 3.6 及以上版本pipPython 包管理工具一般随 Python 默认安装安装步骤方式一通过 GitHub 仓库安装克隆 GitHub 仓库进入项目目录安装依赖库配置 API 密钥可选开始使用步骤 1克隆仓库gitclone https://github.com/shmilylty/OneForAll.git步骤 2进入目录cdOneForAll步骤 3安装依赖pipinstall-rrequirements.txt方式二直接下载源码安装若无法使用git也可从 GitHub 仓库页面直接下载源码压缩包解压后进入解压目录执行上述pip install -r requirements.txt命令安装依赖库。配置 API 密钥可选OneForAll 支持使用多种 API 接口来获取子域名信息。为了获得更全面的结果建议配置相关 API 密钥打开 OneForAll 目录下的config/api_config.yaml文件根据文件中的注释填写相应的 API 密钥信息如 Shodan 的 API Key、Censys 的 API ID 和 Secret 等保存文件即可完成配置[!TIP]配置 API 密钥可以大幅提升子域名收集的全面性尤其是对于一些搜索引擎和威胁情报平台的数据。三、基本使用方法简单扫描示例使用 OneForAll 进行子域名扫描的基本命令格式如下python3 oneforall.py--targetexample.com run参数说明--target指定要扫描的目标域名run执行扫描操作执行上述命令后OneForAll 会自动从多种来源收集example.com的子域名信息并在扫描完成后显示结果。指定输出格式通过--fmt参数指定输出格式python3 oneforall.py--targetexample.com--fmtcsv run常见的输出格式包括csv、json、txt等。保存结果到文件使用--output参数将扫描结果保存到指定文件python3 oneforall.py--targetexample.com--outputresult.csv run执行后扫描结果将保存到result.csv文件中。四、高级功能与参数详解子域名爆破OneForAll 支持使用字典进行子域名爆破以发现更多隐藏的子域名python3 oneforall.py--targetexample.com--bruteTrue run默认使用内置字典文件。若需要使用自定义字典可通过--wordlist参数指定python3 oneforall.py--targetexample.com--bruteTrue--wordlist/path/to/wordlist.txt run限制扫描范围通过--level参数限制扫描的子域名层级python3 oneforall.py--targetexample.com--level2run上述命令将只扫描二级子域名如sub.example.com不扫描更深层级的子域名。多目标扫描使用--targets参数指定包含多个域名的文件实现批量扫描python3 oneforall.py--targets/path/to/targets.txt run其中targets.txt文件应包含一行一个的目标域名。启用 API 收集若已配置 API 密钥可通过--api参数启用 API 收集功能python3 oneforall.py--targetexample.com--apiTrue run启用后OneForAll 会使用配置的 API 接口获取子域名信息提高扫描的全面性。调整线程数和超时时间调整线程数提高扫描速度python3 oneforall.py--targetexample.com--thread50run设置请求超时时间单位秒python3 oneforall.py--targetexample.com--timeout10run常用参数速查表参数说明示例值--target单个目标域名example.com--targets多个目标域名文件targets.txt--fmt输出格式csv/json/txt--output输出文件路径result.csv--brute是否启用爆破True/False--wordlist自定义字典路径/path/to/wordlist.txt--level子域名层级2/3--api是否启用 API 收集True/False--thread扫描线程数50--timeout请求超时时间秒10五、实战案例案例一全面扫描单个目标需求对example.com进行全面的子域名扫描包括 API 查询和爆破并将结果保存为 JSON 格式。python3 oneforall.py--targetexample.com--apiTrue--bruteTrue--fmtjson--outputexample_result.json run执行流程开始扫描API 接口获取子域名字典爆破结果去重与验证输出 JSON 文件案例二批量扫描多个目标需求对多个目标域名进行批量扫描并将结果统一保存到一个 CSV 文件中。步骤 1创建目标域名文件targets.txtexample1.com example2.com example3.com步骤 2执行批量扫描python3 oneforall.py--targetstargets.txt--fmtcsv--outputbatch_result.csv run扫描完成后所有目标域名的子域名信息将汇总到batch_result.csv文件中。案例三深度扫描特定层级子域名需求扫描example.com的三级子域名如sub.sub.example.com并使用自定义字典进行爆破。python3 oneforall.py--targetexample.com--level3--bruteTrue--wordlistcustom_words.txt run其中custom_words.txt是包含自定义子域名前缀的字典文件。六、注意事项[!WARNING]法律合规在使用 OneForAll 进行子域名扫描时务必确保获得目标系统所有者的明确授权。未经授权的扫描行为可能违反法律法规引发法律风险。[!CAUTION]扫描频率控制频繁的扫描请求可能会触发目标网站的防护机制如 WAF导致 IP 被封禁。建议合理控制扫描频率避免对目标系统造成过大压力。[!IMPORTANT]结果验证尽管 OneForAll 会对收集到的子域名进行有效性验证但扫描结果仍可能存在误报或漏报情况。对于重要的子域名信息建议进行人工验证确保结果的准确性。[!TIP]API 使用限制若使用 API 接口进行子域名收集需注意各 API 提供商的使用限制和配额。过度使用可能导致 API 密钥被封禁或限制访问。[!NOTE]更新工具OneForAll 会不断更新和优化定期检查 GitHub 仓库及时更新工具以获取新功能和漏洞修复。总结思考OneForAll 是一款很实用的子域名收集工具但我更愿意把它定位成第一轮批量收集入口而不是最终答案。结合自己的使用体验我大概会这样看它优势多源聚合、输出格式灵活、支持 API 和爆破、配置项丰富适合快速铺开信息收集面局限结果质量依赖数据源、API 配额、字典质量和网络环境仍然可能存在误报和漏报建议不要只依赖单一工具。实际工作中可以把它和 Amass、Subfinder、httpx、nuclei 等工具组合使用再对关键子域名做人工验证心态工具是放大器不是替代品。它放大的是你的效率也会放大你的错误配置和越界风险