OneForAll - 功能强大的子域收集工具
OneForAll,是 shmilylty 在 Github 上开源的子域收集工具,目前版本为 v0.4.3。
收集能力强大,利用证书透明度收集子域、常规检查收集子域、利用网上爬虫档案收集子域、利用DNS数据集收集子域、利用DNS查询收集子域、利用威胁情报平台数据收集子域、利用搜索引擎发现子域,在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持自动排除搜索,全量搜索,递归搜索。
支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判断泛解析并处理。
支持子域验证,默认开启子域验证,自动解析子域DNS,自动请求子域获取title和banner,并综合判断子域存活情况。
支持子域爬取,根据已有的子域,请求子域响应体以及响应体里的JS,从中再次发现新的子域。
支持子域置换,根据已有的子域,使用子域替换技术再次发现新的子域。
支持子域接管,默认开启子域接管风险检查,支持子域自动接管(目前只有Github,有待完善),支持批量检查。
处理功能强大,发现的子域结果支持自动去除,自动DNS解析,HTTP请求探测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导出格式有txt, csv, json。
速度极快,收集模块使用多线程调用,爆破模块使用massdns,DNS解析速度每秒可解析350000以上个域名,子域验证中DNS解析和HTTP请求使用异步多协程,多线程检查子域接管风险。
体验良好,各模块都有进度条,异步保存各模块结果。
使用
OneForAll基于Python 3.6.0开发和测试,OneForAll需要高于Python 3.6.0的版本才能运行。安装Python环境可以参考Python 3 安装指南。运行以下命令检查Python和pip3版本:
python -V
pip3 -V
如果你看到类似以下的输出便说明Python环境没有问题:
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
安装步骤(git 版)
下载
由于该项目处于开发中,会不断进行更新迭代,下载时请使用git clone克隆最新代码仓库,国内推荐使用码云进行克隆比较快:
git clone https://gitee.com/shmilylty/OneForAll.git
或者:
git clone https://github.com/shmilylty/OneForAll.git
安装
通过pip3安装OneForAll的依赖
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help
更新
执行以下命令更新项目(可保存对/config/setting.py和/config/api.py的修改):
git stash # 暂存本地的修改
git fetch --all # 拉取项目更新
git pull # 下载覆盖
git stash pop # 释放本地修改
安装步骤(docker 版)
首先下载并编辑配置文件,添加自己的api和个性化设置,并保留原始文件结构
config
├── api.py
├── log.py
└── setting.py
拉取镜像并执行,其中~/.config替换为你自己配置文件所在文件夹的路径
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config oneforall --target example.com run
参数直接加在指令末尾,结果会输出在本地目录~/results,如需保存到其他位置,可以自行修改。
使用演示
如果你是通过pip3安装的依赖则使用以下命令运行示例:
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
我们以python3 oneforall.py --target example.com run命令为例,OneForAll在默认参数正常执行完毕会在results目录生成相应结果:
oneforall
example.com.csv是每个主域下的子域收集结果。
all_subdomain_result_1583034493.csv是每次运行OneForAll收集到子域的汇总结果,包含example.com.csv,方便在批量收集场景中获取全部结果。
result.sqlite3是存放每次运行OneForAll收集到子域的SQLite3结果数据库,其数据库结构如下图:
OneForAll
其中类似example_com_origin_result表存放每个模块最初子域收集结果。
其中类似
example_com_resolve_result表存放对子域进行解析后的结果。
其中类似example_com_last_result表存放上一次子域收集结果(需要收集两次以上才会生成)。
其中类似example_com_now_result表存放现在子域收集结果,一般情况关注这张表就可以了。
OneForAll 作为一个命令行工具,它的所有参数如下:
NAME
oneforall.py - OneForAll帮助信息
SYNOPSIS
oneforall.py COMMAND | --target=TARGET <flags>
DESCRIPTION
OneForAll是一款功能强大的子域收集工具
Example:
python3 oneforall.py version
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./domains.txt run
python3 oneforall.py --target example.com --valid None run
python3 oneforall.py --target example.com --brute True run
python3 oneforall.py --target example.com --port small run
python3 oneforall.py --target example.com --fmt csv run
python3 oneforall.py --target example.com --dns False run
python3 oneforall.py --target example.com --req False run
python3 oneforall.py --target example.com --takeover False run
python3 oneforall.py --target example.com --show True run
Note:
参数alive可选值True,False分别表示导出存活,全部子域结果
参数port可选值有'default', 'small', 'large', 详见config.py配置
参数fmt可选格式有 'csv','json'
参数path默认None使用OneForAll结果目录生成路径
ARGUMENTS
TARGET
单个域名(二选一必需参数)
TARGETS
每行一个域名的文件路径(二选一必需参数)
FLAGS
--brute=BRUTE
s
--dns=DNS
DNS解析子域(默认True)
--req=REQ
HTTP请求子域(默认True)
--port=PORT
请求验证子域的端口范围(默认只探测80端口)
--valid=VALID
只导出存活的子域结果(默认False)
--fmt=FMT
结果保存格式(默认csv)
--path=PATH
结果保存路径(默认None)
--takeover=TAKEOVER
检查子域接管(默认False)
◆ 总结
OneForAll 收集能力强大、支持子域爆破、支持子域验证、支持子域爬取、支持子域置换、支持子域接管、处理功能强大、速度极快、体验良好,是一款集百家之长,功能强大的全面快速子域收集工具。
OneForAll - 功能强大的子域收集工具的更多相关文章
- 功能强大的PDF实用工具
PDF实用工具(PDFTool)是北京博信施科技有限有限公司研制开发的一款专门提供对PDF文件进行编辑.加工的处理软件.本软件具有对PDF文件进行分割.结合.加密.解密.添加水印.设定有效期限等多种功 ...
- 功能强大的Xcode辅助工具Faux Pas:帮你找到各种隐形的bug
本文转载至 http://www.cocoachina.com/industry/20140804/9307.html Faux Pas(Beta版下载地址)是一个Xcode辅助工具,用以检查Xcod ...
- 一款功能强大的TCP/UDP工具---flynet
前言 前段时间做某个项目,由于涉及到tcp/udp方面的知识比较多,于是就索性趁热打铁,写个工具来强化相关知识.另外由于并非十分擅长Golang,所以也顺便再了解下Golang吧. 简介 flynet ...
- ProcessOn:功能强大的在线作图工具(HTML5)
ProcessOn是一款专业作图人员的社交网络,这里汇聚很多业界专家.学者,同时他们分享的作品又形成一个庞大的知识图库,你在学习专业知识的同时还可以结交一些志同道合的新朋友. ProcessOn核心设 ...
- 工具推荐:ATSCAN,功能强大的Perl脚本扫描器
工具推荐:ATSCAN,功能强大的Perl脚本扫描器 使用perl语言编写的开源的扫描器,功能丰富强大,除了基本的tcp和udp端口扫描之外,还可以搜索wordpress.joomla等网站并进行口令 ...
- Postman - 功能强大的 API 接口请求调试和管理工具
Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口.前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fi ...
- [推荐] kylinPET是一款功能强大的性能测试工具
[推荐] kylinPET是一款功能强大的性能测试工具 官方网站: http://www.kylinpet.com/
- WebLech是一个功能强大的Web站点下载与镜像工具
WebLech是一个功能强大的Web站点下载与镜像工具.它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为.WebLech有一个功能控制台并采用多线程操作. http://sour ...
- Fibratus:一款功能强大的Windows内核漏洞利用和跟踪工具
今天给大家介绍的是一款名叫Fibratus的开源工具,广大研究人员可以使用这款功能强大的工具来进行Windows内核漏洞利用.挖掘与跟踪. Fibratus这款工具能够捕捉到绝大多数的Windows内 ...
- 三款功能强大代码比较工具Beyond compare、DiffMerge、WinMerge
我们经常会遇到需要比较同一文件的不同版本,特别是代码文件.如果人工去对比查看,势必费时实力还会出现纰漏和错误,因此我们需要借助一些代码比较的工具来自动完成这些工作.这里介绍3款比较流行且功能强大的工具 ...
随机推荐
- 【YashanDB知识库】oracle dblink varchar类型查询报错记录
问题单:Oracle DBLINK查询崖山DB报错 oracle服务器上ODBC安装 unixodbc安装:yum -y install unixODBC mysql 配置安装对应版本的odbc: m ...
- webpack笔记-webpack初识与构建工具发展(一)
为什么需要构建工具? 转换 ES6 语法 转换 JSX CSS 前缀补全/预处理器 压缩混淆 图片压缩 前端构建演变之路 ant + YUI Tool grunt gulp.fis3 webpack. ...
- JAVAEE——tomcat安装
一.下载 1.网址:Tomcat官网 选择版本:点击左边Download下的which version,根据Supported Java Versions来选择合适的Tomcat版本 下载软件:点击左 ...
- 如何用VMWARE创建一个Linux虚拟机
序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们都是需要接触Linux服务器的,一般部署应用都是部署在Linux服务器上的~ 但一般的服务器要么需要购买,要么只是公司里的,那么有没有免费的L ...
- 优化 Go 语言数据打包:性能基准测试与分析
优化 Go 语言数据打包:性能基准测试与分析 场景:在局域网内,需要将多个机器网卡上抓到的数据包同步到一个机器上. 原有方案:tcpdump -w 写入文件,然后定时调用 rsync 进行同步. 改造 ...
- duxapp:基于Taro使用模块化开发,提升开发效率
duxapp是基于Taro二次开发的模块化框架 使用这个框架,结合框架提供的UI库和工具库,能帮助你快速且高质量的完成项目,且能实现同时开发小程序.H5.APP(React Native),并且保证各 ...
- 【赵渝强老师】Docker Swarm集群的数据持久化
如果Docker Swarm集群中运行了mysql.nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失. 有什么方法可以解决swarm集群中运行的服务能够 ...
- kali安装和升级
实验介绍: kali集成了世界上所有优秀的渗透测试工具 一:在VMware上安装 这里只详细介绍kali在VMware的安装,u盘和物理机上的安装不做详解 在kali官网下载kali镜像iso文件 下 ...
- 了解final关键字在Java并发编程领域的作用吗?
在Java并发编程领域,final关键字扮演着一个至关重要的角色.虽然很多同学熟悉final用于修饰变量.方法和类的基本用法,但其在并发环境中的应用和原理却常常被忽视.final关键字不仅仅是一个简单 ...
- 一张图带你了解.NET终结(Finalize)流程
简介 "终结"一般被分为确定性终结(显示清除)与非确定性终结(隐式清除) 确定性终结主要 提供给开发人员一个显式清理的方法,比如try-finally,using. 非确定性终结主 ...