OneForAll工具:安装指南、使用方法及常见问题解决(超全)

news2024/9/21 18:38:34

引言

在网络安全领域,子域名收集是信息收集过程中非常重要的一步。OneForAll 是一款功能强大的子域名收集工具,能够帮助我们高效地进行子域名收集。本文将详细介绍 OneForAll 的安装和使用方法,并解决在使用过程中可能遇到的问题。


1. OneForAll 简介

介绍OneForAll 是由 shmilylty 在 Github 上开源的子域名收集工具。它具有强大的收集能力和灵活的处理功能,支持多线程操作,速度极快。

功能特点

  • 收集能力强大:利用证书透明度、常规检查、爬虫档案、DNS 数据集、DNS 查询、威胁情报平台、搜索引擎等多种方式收集子域。
  • 支持子域爆破:支持字典爆破、自定义 fuzz 模式,批量爆破和递归爆破。
  • 子域验证:自动解析子域 DNS,获取 title 和 banner,判断子域存活情况。
  • 子域接管:支持子域接管风险检查和自动接管(目前支持 Github)。
  • 处理功能强大:支持多种格式导出结果(rst、csv、tsv、json、yaml、html、xls、xlsx、dbf、latex、ods)。
  • 速度极快:利用多线程和异步多协程技术,收集速度达到10000pps。

2. 安装环境

介绍:安装 OneForAll 需要 Python 3.8 以上版本和 pip3 包管理工具。

检查环境步骤

  • 检查 Python 版本:使用命令 python -Vpython --version 确认 Python 版本。
  • 检查 pip 版本:使用命令 pip3 -Vpip3 --version 确认 pip 版本(Python 3.4 以上版本已内置 pip)。

3. OneForAll 的安装与使用

步骤

  1. 下载 OneForAll 文件:将文件部署在本地。

  2. 切换路径:打开 CMD 窗口,将执行文件路径切换到 OneForAll 程序所在路径。

    cd D:\Oneforall\OneForAll-master
    
  3. 利用pip安装的库:

    pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    
  4. 运行 OneForAll 程序:输入命令启动 OneForAll。

    python oneforall.py
    

4. 使用 OneForAll 收集子域名

单个目标子域收集

python oneforall.py --target example.com run

例子:

拿小迪的网站进行扫描:

使用命令:python3 oneforall.py --target xiaodi8.com run

查看结果:

在这里插入图片描述

结果查看:

在这里插入图片描述

批量目标子域收集

python oneforall.py --targets domains.txt run

注意:扫描结果将存放于 oneforall\results 文件夹中。


5. 使用过程中出现的问题及解决方案

在使用 OneForAll 的过程中,可能会遇到一些问题。以下是常见问题及详细解决方案:

问题1:ImportError: cannot import name ‘sre_parse’ from ‘re’

成因:高版本的 Python 中 re 模块没有 sre_parse 模块。

解决方案

  1. 使用较低版本的 Python:建议使用 Python 3.8 版本,因为较低版本的 Python 兼容性更好。

  2. 修改 exrex.py 文件

    • 找到 Python 安装目录下的 Lib\site-packages\exrex.py 文件。

    • 如果文件不存在或内容不正确,可以在 Python 安装目录下找到另一个 exrex.py 文件,并将其复制到 Lib\site-packages 目录下。

    • 修改 exrex.py 文件,确保其内容如下:

      try:
          from re import sre_parse
      except ImportError:
          import re._parser as sre_parse
      
    • 保存文件并重新运行 OneForAll。

问题2:ModuleNotFoundError: No module named ‘fire’、‘tenacity’、‘requests’

成因:缺少所需模块。

解决方案

  1. 安装缺少的模块:使用 pip 安装报错信息中提示的缺少模块。

    pip install fire
    pip install tenacity
    pip install requests
    
  2. 处理安装错误:如果安装模块时出现错误,例如:

    ERROR: Could not find a version that satisfies the requirement dns
    ERROR: No matching distribution found for dns
    
    • 使用 pip install opencv-python 命令进行安装(如果一次不成功,多试几次)。
    • 如果依然报错,可能是网络问题,尝试更换下载源。

更换下载源

  • 暂时切换镜像源

    pip install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple/
    
  • 永久切换镜像源

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
    
  • 常用镜像源

    • 豆瓣:http://pypi.douban.com/simple/
    • 中科大:https://pypi.mirrors.ustc.edu.cn/simple/
    • 清华:https://pypi.tuna.tsinghua.edu.cn/simple/
    • 阿里云:https://mirrors.aliyun.com/pypi/simple/

低版本 Python 更换镜像源

  • 在当前用户目录下新建 pip 文件夹,再新建 pip.ini 文件。

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
    
  • 保存文件后,重新运行 pip install 命令。

特殊情况处理

  • 安装 dns 包时如果依然报错,使用以下命令:

    pip install dnspython
    

问题3:运行 OneForAll 对某个站点进行子域收集后,结果文件为空

成因

  1. 目标站点没有子域名。
  2. OneForAll 默认自动验证子域,只有有效子域才会导出。

解决方案

  1. 导出所有发现的子域

    • 使用 --valid=None 参数,指定导出所有发现的子域。

      python oneforall.py --target example.com run --valid=None
      
  2. 不验证子域有效性

    • 使用 --verify=False 参数,指定不验证子域的有效性。

      python oneforall.py --target example.com run --verify=False
      

问题4:No matching distribution found for requests==2.28.1

在这里插入图片描述

成因: 这个镜像源中没有requests库的2.08.1

解决方案: 但是根据提示最新的有2.27.1,所以的话只需要将requestment.txt文件中的reqests的2.28.1改成最新的2.27.1(根据实际情况)即可


6. OneForAll 下载地址

链接

  • gitee 地址:https://gitee.com/shmilylty/OneForAll.git
  • Github 地址shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具 (github.com)
  • 自带 Python 3.9 的版本:链接

总结

通过本文的介绍,大家可以清晰明了地掌握 OneForAll 的安装和使用方法。信息收集是网络安全测试中至关重要的一步,使用 OneForAll 工具可以大大提高子域名收集的效率和准确性。

不懂得欢迎来评论区提问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机找回删除的通讯录号码,2个方法,让你不再烦恼

在数字化的浪潮中,我们的手机通讯录如同一张张精心编织的社会网络图谱,每一串数字背后都蕴藏着一段故事或一个重要的联系。然而,生活总会面临小插曲,总有些时候会不慎将通讯录遗失。不用过多担心,本文将会提供一些方法…

Facebook:数字时代的社交瑰宝

在当今数字化飞速发展的时代,社交媒体已经成为人们日常生活中不可或缺的一部分,而Facebook作为其中的领军者,不仅连接了全球数十亿的用户,更深刻地改变了人们的社交方式和生活方式。本文将探讨Facebook如何成为数字时代的社交瑰宝…

Early Convolutions Help Transformers See Better(NeurIPS 2021, Meta)

paper:Early Convolutions Help Transformers See Better 出发点 本文的出发点是解决 ViT 模型在优化性方面的问题。作者假设问题主要出现在 ViT 的早期视觉处理部分,即 "patchify" 过程,这是通过一个大的步幅和大核卷积来实现的…

Linux入门攻坚——28、php、mysql基础

httpdphp:是在httpd中启用模块,不同的工作模式,使用的模块不同 modules httpd:prefork --> libphp5.so httpd:event or worker --> libphp5-zts.so php:引入zend engine后,分为…

算法实验3:贪心算法的应用

实验内容 &#xff08;1&#xff09;活动安排问题 设有n个活动的集合E{1, 2, …, n}&#xff0c;其中每个活动都要求使用同一资源&#xff0c;而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi&#xff0c;且si <f…

# Redis 入门到精通(五)-- redis 持久化(3)

Redis 入门到精通&#xff08;五&#xff09;-- redis 持久化&#xff08;3&#xff09; 一、redis 持久化–AOF 自动重写配置 1、AOF 自动重写方式–自动重写触发条件设置 auto-aof-rewrite-min-size size auto-aof-rewrite-percentage percent2、AOF 自动重写方式-- 自动重…

如何在Orcale首页定位到The Java® Virtual Machine Specification页面?

目标地址&#xff1a;https://docs.oracle.com/javase/specs/jls/se8/html/index.html 1. 在Orcale首页菜单栏中选择 Resources ⇒ Java Downloads 2. 往下滑&#xff0c;找到 Online Documentation 选项&#xff0c;点进去 3. 点击 Specifications 下的 Language VM 选项 5…

USB3.0接口——(5)Host数据传输模型

USB3.0接口系列&#xff1a; USB3.0接口——&#xff08;1&#xff09;基础知识 USB3.0接口——&#xff08;2&#xff09;数据结构 USB3.0接口——&#xff08;3&#xff09;协议层&#xff08;包格式&#xff09; USB3.0接口——&#xff08;4&#xff09;生产消费者模型…

IOC、DI<5> Unity、AOP

Unity.InterceptionExtension.ICallHandler实现一个操作日志记录功能 其它跟上一次一样 <?xml version"1.0" encoding"utf-8" ?> <configuration><configSections><section name"unity" type"Microsoft.Practice…

【Harmony】SCU暑期实训鸿蒙开发学习日记Day1

关于ArkTS和ArkUI&#xff0c;基础语法请看&#x1f449;官方开发手册 系统学习后&#xff0c;聊聊几个点&#xff0c;面向刚学习这门语言的小白&#xff0c;用于巩固和回顾&#x1f60b; 目录 类型推断应用 函数相关 布局方式 线性布局 堆叠布局 网格布局 弹性布局 …

C#进阶-基于.NET Framework 4.x框架实现ASP.NET WebForms项目IP拦截器

在这篇文章中&#xff0c;我们将探讨如何在 ASP.NET WebForms 中实现IP拦截器&#xff0c;以便在 ASMX Web 服务方法 和 HTTP 请求 中根据IP地址进行访问控制。我们将使用自定义的 SoapExtension 和 IHttpModule 来实现这一功能&#xff0c;并根据常用的两种文本传输协议&#…

jmeter之变量随机参数化以及解决多线程不会随机变化

参考链接&#xff1a; https://www.cnblogs.com/Testing1105/p/12743475.html jmeter 使用random函数多线程运行时数据不会随机变化&#xff1f;_jmeter 线程组循环执行时 变量不变-CSDN博客 1、如下图所示&#xff0c;需要对请求参数 autor 和phone进行随机参数化 2、目前有…

2024大模型十大趋势

2024大模型十大趋势 关键要点一、机器外脑时代的智慧探索二、机器外脑、创意生成和情感陪伴三、大模型驱动的新未来&#xff1a;AI带来创意转化与机遇四、人物-行为-场景一体化&#xff1a;未来人工智能的新范式五、未来数字内容生产的基础设施六、共创、共建、共享智能美好未来…

Linux - 冯-诺依曼体系结构、初始操作系统

目录 冯•诺依曼体系 结构推导 内存提高效率的方法 数据的流动过程 体系结构相关知识 初始操作系统 定位 设计目的 操作系统之上之下分别有什么 管理精髓&#xff1a;先描述&#xff0c;再组织 冯•诺依曼体系 结构推导 计算机基本工作流程图大致如下&#xff1a; 输入设备&a…

删除windows系统里磁盘的恢复分区

说下我的情况 我买了块固态磁盘&#xff0c;插上主板&#xff0c;发现它自带了系统&#xff0c;这样我开机就会转到这块磁盘&#xff0c;即使在boot里改变也不行&#xff0c;后面我格式化了对应的盘符&#xff0c;但在磁盘管理里&#xff0c;发现有个EFI系统分区和恢复分区存在…

初识并发编程

并发编程的目的是 为 了 让 程序运行得更快&#xff0c;但是&#xff0c;并不是启 动 更多的 线 程就能 让 程序最大限度地并发执 行。在 进 行并 发编 程 时 &#xff0c;如果希望通 过 多 线 程 执 行任 务让 程序运行得更快&#xff0c;会面临 非常多的挑 战 &#xff0c;比…

【Django+Vue3 线上教育平台项目实战】登录功能模块之短信登录与钉钉三方登录

文章目录 前言一、几个关键概念1.HTTP无状态性2.Session机制3.Token认证4.JWT 二、通过手机号验证码登录1.前端短信登录界面2.发送短信接口与短信登录接口3.Vue 设置interceptors拦截器4. 服务端验证采用自定义中间件方式实现5. 操作流程及效果图如下&#xff1a; 三、通过第三…

编程从零基础到进阶(更新中)

题目描述 依旧是输入三个整数&#xff0c;要求按照占8个字符的宽度&#xff0c;并且靠左对齐输出 输入格式 一行三个整数&#xff0c;空格分开 输出格式 输出它们按格式输出的效果&#xff0c;占一行 样例输入 123456789 -1 10 样例输出 123456789-1 10 #include "stdio.…

昇思25天学习打卡营第七天|应用实践/热门LLM及其他AI应用/基于MobileNetv2的垃圾分类

心得 本课程主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入&#xff0c;对图像中的垃圾物体进行检测&#xff0c;并且将检测结果图片保存到文件中。 这个AI是我觉很不错的一个想法。比较解决实际的痛点&#xff0c;就是作为普通人来讲&#xff0c;不可能像专…

「安全知识」叉车超速的危害引发的后果是这样的……

在繁忙的工业环境中&#xff0c;叉车作为不可或缺的物流工具&#xff0c;其安全性直接关系到生产效率和员工生命安全。然而&#xff0c;当叉车驾驶员忽视速度限制&#xff0c;超速行驶时&#xff0c;一系列潜在的危险便悄然滋生。本文将讲解叉车超速的危害以及解决措施&#xf…