当前位置: 首页 > news >正文

OneForAll 使用手册

OneForAll 使用手册

一、概述

OneForAll 是一款功能强大的子域名收集工具,旨在帮助安全测试人员和网络管理员全面发现目标域名的所有子域名,为后续的安全评估和漏洞测试提供基础支持。它集成了多种子域名发现方法,包括搜索引擎查询、DNS 枚举、API 调用等,能够高效地获取目标域名的子域名信息,并支持结果的导出和分析。

核心功能

  1. 多源子域名收集:支持从多种来源收集子域名,包括但不限于搜索引擎(Google、Bing 等)、证书透明度日志、DNS 记录查询、API 接口(如 Shodan、Censys 等)以及爆破枚举等方式,确保尽可能全面地发现目标域名的子域名。
  2. 智能结果处理:自动对收集到的子域名进行有效性验证,排除无效或不存在的子域名,提高结果的准确性。同时,支持对子域名进行分类统计,如按 IP 地址、响应状态码等进行分组,方便用户快速了解子域名的分布情况。
  3. 灵活的输出格式:支持将结果以多种格式输出,如 CSV、JSON、TXT 等,满足不同场景下的使用需求。用户可以根据需要选择合适的输出格式,以便进一步分析或导入到其他工具中使用。
  4. 自定义配置:提供丰富的配置选项,允许用户根据实际需求调整收集策略,如设置线程数、超时时间、是否使用爆破等。此外,还支持自定义字典文件,用于子域名爆破,提高发现隐藏子域名的概率。

二、安装与配置

安装环境准备

OneForAll 基于 Python 开发,安装前需确保系统已安装 Python 环境(建议 Python 3.6 及以上版本),同时安装pip包管理工具(一般 Python 安装时会默认安装)。

安装步骤

  1. 通过 GitHub 仓库安装
    • 打开终端(Linux 或 macOS 系统)或命令提示符(Windows 系统),使用git命令克隆 OneForAll 的 GitHub 仓库:

    bash

    git clone https://github.com/shmilylty/OneForAll.git
    
     
    • 进入克隆后的目录:

    bash

    cd OneForAll
    
     
    • 使用pip安装依赖库:

    bash

    pip install -r requirements.txt
    
  2. 直接下载源码安装
    • 若无法使用git,也可从 GitHub 仓库页面直接下载源码压缩包,解压后进入解压目录,执行上述pip install -r requirements.txt命令安装依赖库。

配置 API 密钥(可选)

OneForAll 支持使用多种 API 接口来获取子域名信息,如 Shodan、Censys 等。为了获得更全面的结果,建议配置相关 API 密钥:

  1. 打开 OneForAll 目录下的config/api_config.yaml文件。
  2. 根据文件中的注释,填写相应的 API 密钥信息,如 Shodan 的 API Key、Censys 的 API ID 和 Secret 等。
  3. 保存文件即可完成 API 密钥的配置。

三、基本使用方法

简单扫描示例

使用 OneForAll 进行子域名扫描的基本命令格式如下:

bash

python3 oneforall.py --target example.com run

其中,--target参数指定要扫描的目标域名,run表示执行扫描操作。执行上述命令后,OneForAll 会自动从多种来源收集example.com的子域名信息,并在扫描完成后显示结果。

指定输出格式

OneForAll 支持多种输出格式,可通过--fmt参数指定:

bash

python3 oneforall.py --target example.com --fmt csv run

上述命令将扫描结果以 CSV 格式输出,常见的输出格式还包括jsontxt等。

保存结果到文件

使用--output参数可以将扫描结果保存到指定文件:

bash

python3 oneforall.py --target example.com --output result.csv run

执行后,扫描结果将保存到result.csv文件中。

四、高级功能与参数详解

子域名爆破

OneForAll 支持使用字典进行子域名爆破,以发现更多隐藏的子域名:

bash

python3 oneforall.py --target example.com --brute True run

默认情况下,OneForAll 会使用内置的字典文件进行爆破。若需要使用自定义字典,可通过--wordlist参数指定:

bash

python3 oneforall.py --target example.com --brute True --wordlist /path/to/wordlist.txt run

限制扫描范围

可通过--level参数限制扫描的子域名层级:

bash

python3 oneforall.py --target example.com --level 2 run

上述命令将只扫描二级子域名(如sub.example.com),不扫描更深层级的子域名(如sub.sub.example.com)。

多目标扫描

若需要同时扫描多个目标域名,可使用--targets参数指定包含多个域名的文件:

bash

python3 oneforall.py --targets /path/to/targets.txt run

其中,targets.txt文件应包含一行一个的目标域名。

启用 API 收集

若已配置 API 密钥,可通过--api参数启用 API 收集功能:

bash

python3 oneforall.py --target example.com --api True run

启用后,OneForAll 会使用配置的 API 接口获取子域名信息,提高扫描的全面性。

调整线程数和超时时间

通过--thread参数可以调整扫描线程数,提高扫描速度:

bash

python3 oneforall.py --target example.com --thread 50 run

使用--timeout参数可以设置请求超时时间(单位:秒):

bash

python3 oneforall.py --target example.com --timeout 10 run

五、实战案例

案例一:全面扫描单个目标

需求:对example.com进行全面的子域名扫描,包括 API 查询和爆破,并将结果保存为 JSON 格式。
命令:

bash

python3 oneforall.py --target example.com --api True --brute True --fmt json --output example_result.json run

执行该命令后,OneForAll 会先通过 API 接口获取子域名信息,再使用字典进行爆破,最后将结果以 JSON 格式保存到example_result.json文件中。

案例二:批量扫描多个目标

需求:对多个目标域名进行批量扫描,并将结果统一保存到一个 CSV 文件中。
步骤:

  1. 创建一个文本文件targets.txt,包含要扫描的多个域名,每行一个域名,例如:

plaintext

example1.com
example2.com
example3.com

  1. 执行以下命令进行批量扫描:

bash

python3 oneforall.py --targets targets.txt --fmt csv --output batch_result.csv run

扫描完成后,所有目标域名的子域名信息将汇总到batch_result.csv文件中。

案例三:深度扫描特定层级子域名

需求:扫描example.com的三级子域名(如sub.sub.example.com),并使用自定义字典进行爆破。
命令:

bash

python3 oneforall.py --target example.com --level 3 --brute True --wordlist custom_words.txt run

其中,custom_words.txt是包含自定义子域名前缀的字典文件。

六、注意事项

  1. 法律合规:在使用 OneForAll 进行子域名扫描时,务必确保获得目标系统所有者的明确授权。未经授权的扫描行为可能违反法律法规,引发法律风险。
  2. 扫描频率控制:频繁的扫描请求可能会触发目标网站的防护机制(如 WAF),导致 IP 被封禁。因此,在扫描过程中,建议合理控制扫描频率,避免对目标系统造成过大压力。
  3. 结果验证:尽管 OneForAll 会对收集到的子域名进行有效性验证,但扫描结果仍可能存在误报或漏报情况。对于重要的子域名信息,建议进行人工验证,确保结果的准确性。
  4. API 使用限制:若使用 API 接口进行子域名收集,需注意各 API 提供商的使用限制和配额。过度使用可能导致 API 密钥被封禁或限制访问。
  5. 更新工具:OneForAll 会不断更新和优化,定期检查 GitHub 仓库,及时更新工具,以获取新功能和漏洞修复。

相关文章:

  • 第九天:java注解
  • vue3路由跳转的三种方式
  • lidar和imu的标定(三)平面约束的方法
  • 无法运用pytorch环境、改环境路径、隔离环境
  • @Value,@ConfigurationProperties
  • Go 即时通讯系统:客户端与服务端 WebSocket 通信交互
  • lidar和imu的标定(一)Robust Real-time LiDAR-inertial Initialization
  • 2022—2025年:申博之路及硕士阶段总结
  • 4、数据标注的武林秘籍:Label-Studio vs CVAT vs Roboflow
  • Python编程基础(二)| 列表简介
  • SOC-ESP32S3部分:24-WiFi配网
  • Java八股文——Java基础「面向对象篇」
  • 【js逆向_AES】全国二手房指数数据爬取
  • SolidWorks软件的安装与卸载
  • 研读论文《Attention Is All You Need》(13)
  • 深入理解 C++11 中的 std::move —— 移动语义详解(小白友好版)
  • 3C All-in-One Toolbox:安卓手机的全能维护专家
  • Vehicle HAL(2)--Vehicle HAL 的启动
  • DDR5 ECC详细原理介绍与基于协议讲解
  • IEE754标准,double和int转换,在线计算器
  • 网页在线代理服务器/湖南seo推广多少钱
  • wordpress 主题 星球/外贸网站优化
  • 建设部人事教育司网站/郑州网站优化推广
  • wordpress日志存档/seo爱站网
  • 怎样看一个网站的浏览量/企业网络营销成功案例
  • 美食网站开发步骤/关键词优化的最佳方法